Index: /lib/phpqrcode/22.png-errors.txt
===================================================================
--- /lib/phpqrcode/22.png-errors.txt	(revision 8542)
+++ /lib/phpqrcode/22.png-errors.txt	(revision 8542)
@@ -0,0 +1,670 @@
+2025-01-15 13:24:40: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+2025-01-15 13:26:17: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+2025-01-15 13:28:18: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+2025-01-15 13:30:41: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+2025-01-15 13:30:51: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode00adse-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode00adse-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode00adse-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:57:05: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode0dQuRu-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode0dQuRu-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode0dQuRu-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:44: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode13ohJT-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode13ohJT-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode13ohJT-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:01:50: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode18p0pp-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode18p0pp-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode18p0pp-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:36:59: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode1MjBRL-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode1MjBRL-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode1MjBRL-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:09:54: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode1Tawdr-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode1Tawdr-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode1Tawdr-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:08:47: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode2WtcxE-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode2WtcxE-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode2WtcxE-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:36:06: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode325R1U-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode325R1U-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode325R1U-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:02: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode3v0tCJ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode3v0tCJ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode3v0tCJ-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:32:40: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode4k4Gcz-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode4k4Gcz-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode4k4Gcz-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:57:31: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode5T5P0U-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode5T5P0U-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode5T5P0U-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:25: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode6Ri738-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode6Ri738-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode6Ri738-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:04:30: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode8zFBIp-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode8zFBIp-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode8zFBIp-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:53: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode9JWL2p-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode9JWL2p-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode9JWL2p-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:08:31: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocode9RDURF-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocode9RDURF-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocode9RDURF-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:43:18: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeA4YZtW-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeA4YZtW-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeA4YZtW-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:20: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeA6M9Lc-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeA6M9Lc-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeA6M9Lc-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:14:56: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeB3bqkw-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeB3bqkw-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeB3bqkw-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:01:36: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeBosIYJ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeBosIYJ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeBosIYJ-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:14:19: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeCXPaJE-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeCXPaJE-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeCXPaJE-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:25: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeCgM3j9-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeCgM3j9-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeCgM3j9-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:31:47: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeCsqLD1-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeCsqLD1-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeCsqLD1-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:14: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeDidIk0-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeDidIk0-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeDidIk0-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:34:13: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeDkKZoJ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeDkKZoJ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeDkKZoJ-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:19:36: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeDwvBt4-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeDwvBt4-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeDwvBt4-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:45:28: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeDykgat-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeDykgat-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeDykgat-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:43:05: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeE2Op90-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeE2Op90-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeE2Op90-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:26:25: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeEZTn07-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeEZTn07-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeEZTn07-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:12:51: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeF6SSFx-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeF6SSFx-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeF6SSFx-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:25:50: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeGT1Fff-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeGT1Fff-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeGT1Fff-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:44:45: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeHNsVz8-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeHNsVz8-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeHNsVz8-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:04:37: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeIXgAn3-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeIXgAn3-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeIXgAn3-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:35:53: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeIjeiD5-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeIjeiD5-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeIjeiD5-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:28:25: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeJVplI5-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeJVplI5-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeJVplI5-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:39:43: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeKASHOG-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeKASHOG-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeKASHOG-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:34:35: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeKFilCo-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeKFilCo-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeKFilCo-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:16: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeKd39SS-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeKd39SS-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeKd39SS-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:29:02: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeLCoQIC-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeLCoQIC-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeLCoQIC-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:15:02: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeLSQXvR-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeLSQXvR-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeLSQXvR-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:10: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeMT3HPq-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeMT3HPq-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeMT3HPq-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:29: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeNQMbHW-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeNQMbHW-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeNQMbHW-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:00: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeNbplOm-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeNbplOm-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeNbplOm-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:55:15: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeOQZw8g-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeOQZw8g-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeOQZw8g-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:18:58: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeOWx306-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeOWx306-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeOWx306-errors.txt	(revision 8542)
@@ -0,0 +1,132 @@
+2025-01-15 13:30:41: 
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeOfMq8e-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeOfMq8e-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeOfMq8e-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:00:13: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodePINxkI-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodePINxkI-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodePINxkI-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:37:58: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodePo7xds-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodePo7xds-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodePo7xds-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:44:28: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodePuYORi-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodePuYORi-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodePuYORi-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:38:25: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeQ1ZWyq-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeQ1ZWyq-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeQ1ZWyq-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:32:01: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeQ8Jufr-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeQ8Jufr-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeQ8Jufr-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:26:38: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeQLOIqM-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeQLOIqM-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeQLOIqM-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:15:17: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeRWWgRD-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeRWWgRD-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeRWWgRD-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:06: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeRXohcs-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeRXohcs-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeRXohcs-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:38:23: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeRaQbGX-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeRaQbGX-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeRaQbGX-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:34: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeSOkjHU-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeSOkjHU-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeSOkjHU-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:00:46: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeTFrGyi-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeTFrGyi-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeTFrGyi-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:14: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeTab7UJ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeTab7UJ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeTab7UJ-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:46:28: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeULXM7C-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeULXM7C-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeULXM7C-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:59:14: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeUbBnFs-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeUbBnFs-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeUbBnFs-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:19:07: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeVKUQln-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeVKUQln-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeVKUQln-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:18:56: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeYWCqja-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeYWCqja-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeYWCqja-errors.txt	(revision 8542)
@@ -0,0 +1,132 @@
+2025-01-15 13:26:17: 
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeYrXEyn-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeYrXEyn-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeYrXEyn-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:10: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeZ3sj6I-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeZ3sj6I-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeZ3sj6I-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:36:35: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeaHDF6a-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeaHDF6a-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeaHDF6a-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:12: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeazVxfQ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeazVxfQ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeazVxfQ-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:39:00: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodebWSBJD-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodebWSBJD-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodebWSBJD-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:39:50: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodebfpczg-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodebfpczg-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodebfpczg-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:39:49: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodebuRFG1-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodebuRFG1-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodebuRFG1-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:58:35: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodebzTTSP-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodebzTTSP-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodebzTTSP-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-16 06:28:54: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodec99of3-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodec99of3-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodec99of3-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:31:52: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodecKTdrf-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodecKTdrf-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodecKTdrf-errors.txt	(revision 8542)
@@ -0,0 +1,132 @@
+2025-01-15 13:24:40: 
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodecgCenb-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodecgCenb-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodecgCenb-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:33:35: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodecpdP1S-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodecpdP1S-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodecpdP1S-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:59:16: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodecy0bT6-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodecy0bT6-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodecy0bT6-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:35:47: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocoded9HzmO-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocoded9HzmO-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocoded9HzmO-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:57:22: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodee4TZBQ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodee4TZBQ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodee4TZBQ-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:46: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeeClGTp-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeeClGTp-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeeClGTp-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:09:37: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeeasZwd-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeeasZwd-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeeasZwd-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:09:00: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeevPPmr-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeevPPmr-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeevPPmr-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:49: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeg3j5Co-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeg3j5Co-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeg3j5Co-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:12:24: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeg7a70p-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeg7a70p-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeg7a70p-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:30: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodehMNNq5-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodehMNNq5-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodehMNNq5-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:01: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodehloYyM-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodehloYyM-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodehloYyM-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:19:34: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodehoNuYZ-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodehoNuYZ-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodehoNuYZ-errors.txt	(revision 8542)
@@ -0,0 +1,132 @@
+2025-01-15 13:30:51: 
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeigiZ4h-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeigiZ4h-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeigiZ4h-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:35:36: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodejBxplN-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodejBxplN-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodejBxplN-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:58:18: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodejEGHrG-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodejEGHrG-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodejEGHrG-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:15:13: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodejpA3Fg-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodejpA3Fg-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodejpA3Fg-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:54: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodek7GCSu-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodek7GCSu-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodek7GCSu-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:45:49: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodek8OxQx-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodek8OxQx-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodek8OxQx-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:00:00: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodekIpcem-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodekIpcem-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodekIpcem-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:33:19: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodelUDTye-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodelUDTye-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodelUDTye-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:50: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodemXRMdB-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodemXRMdB-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodemXRMdB-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:07: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodenEmEUs-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodenEmEUs-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodenEmEUs-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:59:00: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeoIPPxn-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeoIPPxn-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeoIPPxn-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:41:53: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeoRLfG5-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeoRLfG5-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeoRLfG5-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:14: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeovy35h-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeovy35h-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeovy35h-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:01:55: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodep0jJmw-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodep0jJmw-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodep0jJmw-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:35:13: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodepF81h8-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodepF81h8-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodepF81h8-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:10:18: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodepMVCqj-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodepMVCqj-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodepMVCqj-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 12:59:51: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodepMx8I1-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodepMx8I1-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodepMx8I1-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:34:24: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeq1IRzh-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeq1IRzh-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeq1IRzh-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:28: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodesFTE7u-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodesFTE7u-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodesFTE7u-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:39: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodetZKjo4-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodetZKjo4-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodetZKjo4-errors.txt	(revision 8542)
@@ -0,0 +1,132 @@
+2025-01-15 13:28:18: 
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeuNOoAO-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeuNOoAO-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeuNOoAO-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:19:47: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeubSidp-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeubSidp-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeubSidp-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:11:41: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodeuoBGum-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodeuoBGum-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodeuoBGum-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:17:20: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodev82VDK-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodev82VDK-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodev82VDK-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:34:29: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodevZxnVF-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodevZxnVF-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodevZxnVF-errors.txt	(revision 8542)
@@ -0,0 +1,34 @@
+2025-01-15 12:33:50: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_29_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_29_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_29_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_29_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_29_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_29_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_29_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_29_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodew6Ff8f-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodew6Ff8f-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodew6Ff8f-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:09:24: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodew6HqXP-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodew6HqXP-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodew6HqXP-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:13:53: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /lib/phpqrcode/phpgirocodewBq1hv-errors.txt
===================================================================
--- /lib/phpqrcode/phpgirocodewBq1hv-errors.txt	(revision 8542)
+++ /lib/phpqrcode/phpgirocodewBq1hv-errors.txt	(revision 8542)
@@ -0,0 +1,134 @@
+2025-01-15 13:01:10: 
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/frame_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrspec.php on line 568
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 18.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 19.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 20.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 21.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 22.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 23.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 24.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 25.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 26.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 27.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 28.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 29.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 30.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 31.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 140
+
+Deprecated: Implicit conversion from float 0.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 1.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 2.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 3.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 4.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 5.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 6.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 7.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 8.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 9.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 10.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 11.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 12.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 13.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 14.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 15.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 16.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Deprecated: Implicit conversion from float 17.5 to int loses precision in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrencode.php on line 144
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_0/mask_33_0.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_1/mask_33_1.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_2/mask_33_2.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_3/mask_33_3.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_4/mask_33_4.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_5/mask_33_5.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_6/mask_33_6.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
+
+Warning: mkdir(): No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 154
+
+Warning: file_put_contents(/var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/cache/mask_7/mask_33_7.dat): Failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/wpshopgermany/lib/phpqrcode/qrmask.php on line 155
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/dependabot.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/dependabot.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/dependabot.yml	(revision 8542)
@@ -0,0 +1,13 @@
+# Keep GitHub Actions up to date with GitHub's Dependabot...
+# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
+# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
+version: 2
+updates:
+  - package-ecosystem: github-actions
+    directory: /
+    groups:
+      github-actions:
+        patterns:
+          - "*"  # Group all Actions updates into a single larger pull request
+    schedule:
+      interval: weekly
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.changelog.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.changelog.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.changelog.yml	(revision 8542)
@@ -0,0 +1,67 @@
+name: Update ChangeLog
+
+on:
+  workflow_run:
+    workflows:
+      - Release
+    types:
+      - completed
+  workflow_dispatch:
+
+env:
+  GH_PAT: ${{ secrets.UPDATEWIKITOKEN }}
+
+jobs:
+  updatechangelog:
+    permissions: write-all
+    runs-on: "ubuntu-24.04"
+
+    steps:
+      - name: Checkout Sources
+        uses: actions/checkout@v6
+        with:
+          token: ${{ secrets.UPDATEWIKITOKEN }}
+          fetch-depth: 0
+          fetch-tags: true
+          ref: ${{ github.head_ref }}
+
+      - name: Setup PHP with PECL extension
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: "8.4"
+          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, bcmath, intl, gd, exif, iconv, imagick, json, xdebug
+          coverage: xdebug
+
+      - name: Get Composer Cache Directory
+        id: composer-cache
+        run: |
+          echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+      - uses: actions/cache@v5
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-8.4-composer-${{ hashFiles('**/composer.json') }}
+          restore-keys: |
+            ${{ runner.os }}-8.4-composer-${{ hashFiles('**/composer.json') }}
+            ${{ runner.os }}-8.4-composer-
+
+      - name: Install composer dependencies
+        run: |
+          composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+          composer update --no-interaction --prefer-dist
+
+      - name: Update ChangeLog
+        continue-on-error: true
+        run: |
+          php -f make/genchangelog.php all
+          rm -f CHANGELOG.md
+          mv -f make/CHANGELOG.md .
+          git config user.name "HorstOeko"
+          git config user.email "horstoeko@erling.com.de"
+          if [ -n "$(git status --porcelain)" ]; then
+            git add ./CHANGELOG.md
+            git commit -m "[DOC] Updated CHANGELOG.md"
+            git push
+          else
+            echo "No changes found. Skipping."
+          fi
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.ci.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.ci.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.ci.yml	(revision 8542)
@@ -0,0 +1,252 @@
+name: Continuous Integration
+
+on:
+  push:
+    tags-ignore:
+      - "**"
+    branches:
+      - "**"
+    paths-ignore:
+      - "**.md"
+      - ".github/**"
+      - "examples/**"
+      - "make/**"
+  pull_request:
+    types:
+      - opened
+      - synchronize
+    branches:
+      - "master"
+  workflow_dispatch:
+
+env:
+  VALIDATORURL: https://github.com/itplr-kosit/validator/releases/download/v1.5.0/validator-1.5.0-distribution.zip
+  VALIDATORSCENARIOURL: https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-03-21/validator-configuration-xrechnung_3.0.2_2025-03-21.zip
+  VALIDATORPATH: build/validator
+  VALIDATORZIPFILENAME: validator.zip
+  VALIDATORSCENARIOZIPFILENAME: validator-configuration.zip
+  VALIDATORJARFILENAME: validationtool-1.5.0-standalone.jar
+  VALIDATORSCENARIOFILENAME: scenarios.xml
+  PHPDOCUMENTORURL: https://phpdoc.org/phpDocumentor.phar
+  PHPDOCUMENTORFILENAME: phpDocumentor.phar
+  VERAPDFURL: https://software.verapdf.org/rel/verapdf-installer.zip
+  VERAPDFPATH: build/verapdf
+  VERAPDFZIPFILENAME: verapdf.zip
+
+jobs:
+  build:
+    permissions: write-all
+    runs-on: ${{ matrix.operating-system }}
+    strategy:
+      matrix:
+        operating-system: ["ubuntu-22.04", "ubuntu-24.04"]
+        phpversion: ["7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4"]
+
+    steps:
+      - name: Checkout Sources
+        uses: actions/checkout@v6
+
+      - name: Setup PHP with PECL extension
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ matrix.phpversion }}
+          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, bcmath, intl, gd, exif, iconv, imagick, json, xdebug
+          coverage: xdebug
+
+      - name: Set up JDK 11
+        uses: actions/setup-java@v5
+        with:
+          java-version: "11"
+          distribution: "temurin"
+
+      - name: Get Composer Cache Directory
+        id: composer-cache
+        run: |
+          echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+      - uses: actions/cache@v5
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-${{ matrix.phpversion }}-composer-${{ hashFiles('**/composer.json') }}
+          restore-keys: |
+            ${{ runner.os }}-${{ matrix.phpversion }}-composer-${{ hashFiles('**/composer.json') }}
+            ${{ runner.os }}-${{ matrix.phpversion }}-composer-
+
+      - name: Install composer dependencies
+        run: |
+          composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+          composer update --no-interaction --prefer-dist
+
+      - name: Prepare Directories
+        run: |
+          mkdir build/builddoc
+          mkdir build/doc
+          mkdir build/coverage
+          mkdir build/coverage-html
+          mkdir build/logs
+          mkdir build/pdepend
+          mkdir build/dist
+          mkdir build/phpdoc
+
+      - name: Run Lint (PHP 8.0 and lower)
+        if: ${{ matrix.phpversion < '8.1' }}
+        run: |
+          for afile in $(find . -type f -name '*.php' -path './src*/*' -not -path "*codes*" -not -path "*codelistsenum*" -print); do
+             php -l $afile
+          done
+          for afile in $(find . -type f -name '*.php' -path './tests*/*' -print); do
+             php -l $afile
+          done
+
+      - name: Run Lint (PHP 8.1 and higher)
+        if: ${{ matrix.phpversion >= '8.1' }}
+        run: |
+          for afile in $(find . -type f -name '*.php' -path './src*/*' -print); do
+             php -l $afile
+          done
+          for afile in $(find . -type f -name '*.php' -path './tests*/*' -print); do
+             php -l $afile
+          done
+
+      - name: Run PHPLOC
+        continue-on-error: true
+        run: |
+          vendor/bin/phploc --count-tests --log-csv build/logs/phploc.csv --log-xml build/logs/phploc.xml src tests
+
+      - name: Run PDEPEND
+        continue-on-error: true
+        run: |
+          vendor/bin/pdepend --jdepend-xml=build/logs/jdepend.xml --jdepend-chart=build/pdepend/dependencies.svg --overview-pyramid=build/pdepend/overview-pyramid.svg src
+
+      - name: Run PHPMD
+        continue-on-error: true
+        run: |
+          vendor/bin/phpmd src xml build/phpmd.xml --reportfile build/logs/pmd.xml --exclude src/entities/
+          vendor/bin/phpmd src github build/phpmd.xml --exclude src/entities/
+
+      - name: Run PHPCS
+        continue-on-error: true
+        run: |
+          vendor/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=build/phpcsrules_psr12.xml --extensions=php --colors --ignore=autoload.php,./src/entities src tests
+
+      - name: Run PHPSTAN
+        continue-on-error: true
+        run: |
+          vendor/bin/phpstan analyze -c build/phpstan.neon --autoload-file=vendor/autoload.php --no-interaction --no-progress --error-format=checkstyle > build/logs/checkstyle_phpstan.xml
+
+      - name: Run PHPCPD
+        continue-on-error: true
+        run: |
+          vendor/bin/phpcpd --log-pmd build/logs/pmd-cpd.xml --exclude src/entities/ src
+
+      - name: Run Tests (PHPUnit)
+        run: |
+          vendor/bin/phpunit --stop-on-failure --configuration build/phpunit.xml
+        env:
+          XDEBUG_MODE: coverage
+
+      - name: Cache Key (Schematron)
+        id: hash-validator
+        run: |
+          echo "hash=$(echo '${{ env.VALIDATORURL }} ${{ env.VALIDATORSCENARIOURL }}' | sha256sum | cut -c1-16)" >> $GITHUB_OUTPUT
+
+      - name: Cache Application (Schematron)
+        id: cache-validator
+        uses: actions/cache@v5
+        with:
+          path: ${{ env.VALIDATORPATH }}
+          key: ${{ runner.os }}-${{ matrix.phpversion }}-validator-${{ steps.hash-validator.outputs.hash }}
+
+      - name: Download Application (Schematron)
+        if: steps.cache-validator.outputs.cache-hit != 'true'
+        run: |
+          rm -rf $VALIDATORPATH
+          mkdir -p $VALIDATORPATH
+          wget $VALIDATORURL -O $VALIDATORPATH/$VALIDATORZIPFILENAME
+          wget $VALIDATORSCENARIOURL -O $VALIDATORPATH/$VALIDATORSCENARIOZIPFILENAME
+          unzip $VALIDATORPATH/$VALIDATORZIPFILENAME -d $VALIDATORPATH
+          unzip $VALIDATORPATH/$VALIDATORSCENARIOZIPFILENAME -d $VALIDATORPATH
+
+      - name: Run Tests (Schematron)
+        run: |
+          set -e
+          rm -f examples/factur-x.xml
+          php -f examples/01_ZugferdDocumentBuilder_EN16931.php
+          java -jar $VALIDATORPATH/$VALIDATORJARFILENAME -r $VALIDATORPATH -s $VALIDATORPATH/$VALIDATORSCENARIOFILENAME examples/factur-x.xml
+          rm -f examples/factur-x.xml
+          php -f examples/01_ZugferdDocumentBuilder_XRECHNUNG3.php
+          java -jar $VALIDATORPATH/$VALIDATORJARFILENAME -r $VALIDATORPATH -s $VALIDATORPATH/$VALIDATORSCENARIOFILENAME examples/factur-x.xml
+
+      - name: Cache Key (VeraPDF)
+        id: hash-verapdf
+        run: |
+          echo "hash=$(echo '${{ env.VERAPDFURL }}' | sha256sum | cut -c1-16)" >> $GITHUB_OUTPUT
+
+      - name: Cache Application (VeraPDF)
+        id: cache-verapdf
+        uses: actions/cache@v5
+        with:
+          path: ${{ env.VERAPDFPATH }}
+          key: ${{ runner.os }}-${{ matrix.phpversion }}-verapdf-${{ steps.hash-verapdf.outputs.hash }}
+
+      - name: Download Application (VeraPDF)
+        if: steps.cache-verapdf.outputs.cache-hit != 'true'
+        run: |
+          rm -rf $VERAPDFPATH
+          mkdir -p $VERAPDFPATH
+          wget $VERAPDFURL -O $VERAPDFPATH/$VERAPDFZIPFILENAME
+          unzip -j $VERAPDFPATH/$VERAPDFZIPFILENAME -d $VERAPDFPATH
+          rm -f $VERAPDFPATH/$VERAPDFZIPFILENAME
+
+      - name: Run Tests (VeraPDF)
+        continue-on-error: true
+        run: |
+          set -e
+          echo "Creating veraPDF install config"
+          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
+            <AutomatedInstallation langpack=\"eng\">
+                <com.izforge.izpack.panels.htmlhello.HTMLHelloPanel id=\"welcome\"/>
+                <com.izforge.izpack.panels.target.TargetPanel id=\"install_dir\">
+                    <installpath>$(pwd)/$VERAPDFPATH</installpath>
+                </com.izforge.izpack.panels.target.TargetPanel>
+                <com.izforge.izpack.panels.packs.PacksPanel id=\"sdk_pack_select\">
+                    <pack index=\"0\" name=\"veraPDF Mac and *nix Scripts\" selected=\"true\"/>
+                    <pack index=\"1\" name=\"veraPDF Validation model\" selected=\"true\"/>
+                    <pack index=\"2\" name=\"veraPDF Documentation\" selected=\"true\"/>
+                    <pack index=\"3\" name=\"veraPDF Sample Plugins\" selected=\"true\"/>
+                </com.izforge.izpack.panels.packs.PacksPanel>
+                <com.izforge.izpack.panels.install.InstallPanel id=\"install\"/>
+                <com.izforge.izpack.panels.finish.FinishPanel id=\"finish\"/>
+            </AutomatedInstallation>" > $VERAPDFPATH/install.xml
+          echo "Installing veraPDF"
+          VERAPDFINSTALLJAR=$(find $VERAPDFPATH -type f -name "*.jar" | head -n 1); [[ -z "$VERAPDFINSTALLJAR" ]] && { echo "No veraPDF installer found" >&2; exit 1; } || echo "veraPDF installer fount at $VERAPDFINSTALLJAR"
+          java -jar $VERAPDFINSTALLJAR $VERAPDFPATH/install.xml
+          echo "Creating test PDF (1)"
+          php -f examples/02_ZugferdDocumentPdfBuilder_EN16931.php
+          echo "Running PDF validation"
+          VERAPDFRESULT=$($VERAPDFPATH/verapdf --format text --flavour 3b --loglevel 0 examples/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf)
+          echo "Result of validation"
+          echo $VERAPDFRESULT
+          [[ $VERAPDFRESULT == PASS* ]] && echo "PDF validation passed" || { echo "Error: PDF validation not passed" >&2; exit 1; }
+          echo "Creating test PDF (2)"
+          php -f examples/02_ZugferdDocumentPdfBuilder_XRECHNUNG.php
+          echo "Running PDF validation"
+          VERAPDFRESULT=$($VERAPDFPATH/verapdf --format text --flavour 3b --loglevel 0 examples/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf)
+          echo "Result of validation"
+          echo $VERAPDFRESULT
+          [[ $VERAPDFRESULT == PASS* ]] && echo "PDF validation passed" || { echo "Error: PDF validation not passed" >&2; exit 1; }
+
+      - name: Publish Unit Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
+        if: github.event_name != 'pull_request'
+        continue-on-error: true
+        with:
+          files: "build/logs/junit.xml"
+          comment_mode: ${{ ((github.event.workflow_run && github.event.workflow_run.event == 'pull_request') || github.event_name == 'pull_request') && 'failures' || 'always' }}
+
+      - name: Publish Build Logs
+        uses: actions/upload-artifact@v7
+        continue-on-error: true
+        with:
+          name: Build log artifacts for ${{ matrix.operating-system }} PHP ${{ matrix.phpversion }}
+          path: build/logs
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.doc.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.doc.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.doc.yml	(revision 8542)
@@ -0,0 +1,68 @@
+name: Update Documentation
+
+on:
+  workflow_dispatch:
+
+env:
+  PHPDOCUMENTORURL: https://phpdoc.org/phpDocumentor.phar
+  PHPDOCUMENTORFILENAME: phpDocumentor.phar
+
+jobs:
+  build:
+    permissions: write-all
+    runs-on: "ubuntu-24.04"
+
+    steps:
+      - name: Checkout Sources
+        uses: actions/checkout@v6
+
+      - name: Setup PHP with PECL extension
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: "8.3"
+          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, bcmath, intl, gd, exif, iconv, imagick, json, xdebug
+          coverage: xdebug
+
+      - name: Get Composer Cache Directory
+        id: composer-cache
+        run: |
+          echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+      - uses: actions/cache@v5
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-8.3-composer-${{ hashFiles('**/composer.json') }}
+          restore-keys: |
+            ${{ runner.os }}-8.3-composer-${{ hashFiles('**/composer.json') }}
+            ${{ runner.os }}-8.3-composer-
+
+      - name: Install composer dependencies
+        run: |
+          composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+          composer update --no-interaction --prefer-dist
+
+      - name: Prepare Directories
+        run: |
+          mkdir build/builddoc
+          mkdir build/doc
+          mkdir build/coverage
+          mkdir build/coverage-html
+          mkdir build/logs
+          mkdir build/pdepend
+          mkdir build/dist
+          mkdir build/phpdoc
+
+      - name: Documentation
+        continue-on-error: true
+        run: |
+          wget $PHPDOCUMENTORURL -O $PHPDOCUMENTORFILENAME
+          chmod +x $PHPDOCUMENTORFILENAME
+          cd build
+          php ../$PHPDOCUMENTORFILENAME
+          cd ..
+          rm -f $PHPDOCUMENTORFILENAME
+
+      - name: Deploy
+        continue-on-error: true
+        run: |
+          zip -r build/dist/doc.zip build/doc
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.release.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.release.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.release.yml	(revision 8542)
@@ -0,0 +1,270 @@
+name: Release
+
+on:
+  push:
+    tags:
+      - "v*"
+    paths-ignore:
+      - "**.md"
+      - ".github/**"
+      - "examples/**"
+      - "make/**"
+
+env:
+  VALIDATORURL: https://github.com/itplr-kosit/validator/releases/download/v1.5.0/validator-1.5.0-distribution.zip
+  VALIDATORSCENARIOURL: https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-03-21/validator-configuration-xrechnung_3.0.2_2025-03-21.zip
+  VALIDATORPATH: build/validator
+  VALIDATORZIPFILENAME: validator.zip
+  VALIDATORSCENARIOZIPFILENAME: validator-configuration.zip
+  VALIDATORJARFILENAME: validationtool-1.5.0-standalone.jar
+  VALIDATORSCENARIOFILENAME: scenarios.xml
+  PHPDOCUMENTORURL: https://phpdoc.org/phpDocumentor.phar
+  PHPDOCUMENTORFILENAME: phpDocumentor.phar
+  VERAPDFURL: https://software.verapdf.org/rel/verapdf-installer.zip
+  VERAPDFPATH: build/verapdf
+  VERAPDFZIPFILENAME: verapdf.zip
+  GH_PAT: ${{ secrets.UPDATEWIKITOKEN }}
+
+jobs:
+  build:
+    permissions: write-all
+    runs-on: "ubuntu-24.04"
+
+    steps:
+      - name: Checkout Sources
+        uses: actions/checkout@v6
+        with:
+          fetch-depth: 0
+          fetch-tags: true
+
+      - name: Setup PHP with PECL extension
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: "8.3"
+          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, bcmath, intl, gd, exif, iconv, imagick, json, xdebug
+          coverage: xdebug
+
+      - name: Set up JDK 11
+        uses: actions/setup-java@v5
+        with:
+          java-version: "11"
+          distribution: "temurin"
+
+      - name: Get Composer Cache Directory
+        id: composer-cache
+        run: |
+          echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+      - uses: actions/cache@v5
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-8.3-composer-${{ hashFiles('**/composer.json') }}
+          restore-keys: |
+            ${{ runner.os }}-8.3-composer-${{ hashFiles('**/composer.json') }}
+            ${{ runner.os }}-8.3-composer-
+
+      - name: Install composer dependencies
+        run: |
+          composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+          composer update --no-interaction --prefer-dist
+
+      - name: Prepare Directories
+        run: |
+          mkdir build/builddoc
+          mkdir build/doc
+          mkdir build/coverage
+          mkdir build/coverage-html
+          mkdir build/logs
+          mkdir build/pdepend
+          mkdir build/dist
+          mkdir build/phpdoc
+
+      - name: Run Lint (PHP 8.1 and higher)
+        run: |
+          for afile in $(find . -type f -name '*.php' -path './src*/*' -print); do
+             php -l $afile
+          done
+          for afile in $(find . -type f -name '*.php' -path './tests*/*' -print); do
+             php -l $afile
+          done
+
+      - name: Run PHPLOC
+        continue-on-error: true
+        run: |
+          vendor/bin/phploc --count-tests --log-csv build/logs/phploc.csv --log-xml build/logs/phploc.xml src tests
+
+      - name: Run PDEPEND
+        continue-on-error: true
+        run: |
+          vendor/bin/pdepend --jdepend-xml=build/logs/jdepend.xml --jdepend-chart=build/pdepend/dependencies.svg --overview-pyramid=build/pdepend/overview-pyramid.svg src
+
+      - name: Run PHPMD
+        continue-on-error: true
+        run: |
+          vendor/bin/phpmd src xml build/phpmd.xml --reportfile build/logs/pmd.xml --exclude src/entities/
+          vendor/bin/phpmd src github build/phpmd.xml --exclude src/entities/
+
+      - name: Run PHPCS
+        continue-on-error: true
+        run: |
+          vendor/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=build/phpcsrules_psr12.xml --extensions=php --colors --ignore=autoload.php,./src/entities src tests
+
+      - name: Run PHPSTAN
+        continue-on-error: true
+        run: |
+          vendor/bin/phpstan analyze -c build/phpstan.neon --autoload-file=vendor/autoload.php --no-interaction --no-progress --error-format=checkstyle > build/logs/checkstyle_phpstan.xml
+
+      - name: Run PHPCPD
+        continue-on-error: true
+        run: |
+          vendor/bin/phpcpd --log-pmd build/logs/pmd-cpd.xml --exclude src/entities/ src
+
+      - name: Run Tests (PHPUnit)
+        run: |
+          vendor/bin/phpunit --stop-on-failure --configuration build/phpunit.xml
+        env:
+          XDEBUG_MODE: coverage
+
+      - name: Cache Key (Schematron)
+        id: hash-validator
+        run: |
+          echo "hash=$(echo '${{ env.VALIDATORURL }} ${{ env.VALIDATORSCENARIOURL }}' | sha256sum | cut -c1-16)" >> $GITHUB_OUTPUT
+
+      - name: Cache Application (Schematron)
+        id: cache-validator
+        uses: actions/cache@v5
+        with:
+          path: ${{ env.VALIDATORPATH }}
+          key: ${{ runner.os }}-8.3-validator-${{ steps.hash-validator.outputs.hash }}
+
+      - name: Download Application (Schematron)
+        if: steps.cache-validator.outputs.cache-hit != 'true'
+        run: |
+          rm -rf $VALIDATORPATH
+          mkdir -p $VALIDATORPATH
+          wget $VALIDATORURL -O $VALIDATORPATH/$VALIDATORZIPFILENAME
+          wget $VALIDATORSCENARIOURL -O $VALIDATORPATH/$VALIDATORSCENARIOZIPFILENAME
+          unzip $VALIDATORPATH/$VALIDATORZIPFILENAME -d $VALIDATORPATH
+          unzip $VALIDATORPATH/$VALIDATORSCENARIOZIPFILENAME -d $VALIDATORPATH
+
+      - name: Run Tests (Schematron)
+        run: |
+          set -e
+          rm -f examples/factur-x.xml
+          php -f examples/01_ZugferdDocumentBuilder_EN16931.php
+          java -jar $VALIDATORPATH/$VALIDATORJARFILENAME -r $VALIDATORPATH -s $VALIDATORPATH/$VALIDATORSCENARIOFILENAME examples/factur-x.xml
+          rm -f examples/factur-x.xml
+          php -f examples/01_ZugferdDocumentBuilder_XRECHNUNG3.php
+          java -jar $VALIDATORPATH/$VALIDATORJARFILENAME -r $VALIDATORPATH -s $VALIDATORPATH/$VALIDATORSCENARIOFILENAME examples/factur-x.xml
+
+      - name: Cache Key (VeraPDF)
+        id: hash-verapdf
+        run: |
+          echo "hash=$(echo '${{ env.VERAPDFURL }}' | sha256sum | cut -c1-16)" >> $GITHUB_OUTPUT
+
+      - name: Cache Application (VeraPDF)
+        id: cache-verapdf
+        uses: actions/cache@v5
+        with:
+          path: ${{ env.VERAPDFPATH }}
+          key: ${{ runner.os }}-8.3-verapdf-${{ steps.hash-verapdf.outputs.hash }}
+
+      - name: Download Application (VeraPDF)
+        if: steps.cache-verapdf.outputs.cache-hit != 'true'
+        run: |
+          rm -rf $VERAPDFPATH
+          mkdir -p $VERAPDFPATH
+          wget $VERAPDFURL -O $VERAPDFPATH/$VERAPDFZIPFILENAME
+          unzip -j $VERAPDFPATH/$VERAPDFZIPFILENAME -d $VERAPDFPATH
+          rm -f $VERAPDFPATH/$VERAPDFZIPFILENAME
+
+      - name: Run Tests (VeraPDF)
+        continue-on-error: true
+        run: |
+          set -e
+          echo "Creating veraPDF install config"
+          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>
+            <AutomatedInstallation langpack=\"eng\">
+                <com.izforge.izpack.panels.htmlhello.HTMLHelloPanel id=\"welcome\"/>
+                <com.izforge.izpack.panels.target.TargetPanel id=\"install_dir\">
+                    <installpath>$(pwd)/$VERAPDFPATH</installpath>
+                </com.izforge.izpack.panels.target.TargetPanel>
+                <com.izforge.izpack.panels.packs.PacksPanel id=\"sdk_pack_select\">
+                    <pack index=\"0\" name=\"veraPDF Mac and *nix Scripts\" selected=\"true\"/>
+                    <pack index=\"1\" name=\"veraPDF Validation model\" selected=\"true\"/>
+                    <pack index=\"2\" name=\"veraPDF Documentation\" selected=\"true\"/>
+                    <pack index=\"3\" name=\"veraPDF Sample Plugins\" selected=\"true\"/>
+                </com.izforge.izpack.panels.packs.PacksPanel>
+                <com.izforge.izpack.panels.install.InstallPanel id=\"install\"/>
+                <com.izforge.izpack.panels.finish.FinishPanel id=\"finish\"/>
+            </AutomatedInstallation>" > $VERAPDFPATH/install.xml
+          echo "Installing veraPDF"
+          VERAPDFINSTALLJAR=$(find $VERAPDFPATH -type f -name "*.jar" | head -n 1); [[ -z "$VERAPDFINSTALLJAR" ]] && { echo "No veraPDF installer found" >&2; exit 1; } || echo "veraPDF installer fount at $VERAPDFINSTALLJAR"
+          java -jar $VERAPDFINSTALLJAR $VERAPDFPATH/install.xml
+          echo "Creating test PDF (1)"
+          php -f examples/02_ZugferdDocumentPdfBuilder_EN16931.php
+          echo "Running PDF validation"
+          VERAPDFRESULT=$($VERAPDFPATH/verapdf --format text --flavour 3b --loglevel 0 examples/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf)
+          echo "Result of validation"
+          echo $VERAPDFRESULT
+          [[ $VERAPDFRESULT == PASS* ]] && echo "PDF validation passed" || { echo "Error: PDF validation not passed" >&2; exit 1; }
+          echo "Creating test PDF (2)"
+          php -f examples/02_ZugferdDocumentPdfBuilder_XRECHNUNG.php
+          echo "Running PDF validation"
+          VERAPDFRESULT=$($VERAPDFPATH/verapdf --format text --flavour 3b --loglevel 0 examples/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf)
+          echo "Result of validation"
+          echo $VERAPDFRESULT
+          [[ $VERAPDFRESULT == PASS* ]] && echo "PDF validation passed" || { echo "Error: PDF validation not passed" >&2; exit 1; }
+
+      - name: Documentation
+        continue-on-error: true
+        run: |
+          wget $PHPDOCUMENTORURL -O $PHPDOCUMENTORFILENAME
+          chmod +x $PHPDOCUMENTORFILENAME
+          cd build
+          php ../$PHPDOCUMENTORFILENAME
+          cd ..
+          rm -f $PHPDOCUMENTORFILENAME
+
+      - name: Deploy
+        continue-on-error: true
+        run: |
+          zip -r build/dist/doc.zip build/doc
+          zip -r build/dist/builddoc.zip build/builddoc build/coverage build/coverage-html build/logs build/pdepend build/phpdoc
+
+      - name: Publish Unit Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
+        continue-on-error: true
+        with:
+          files: "build/logs/junit.xml"
+
+      - name: Publish Build Logs
+        uses: actions/upload-artifact@v7
+        continue-on-error: true
+        with:
+          name: Build log artifacts for ubuntu-24.04 PHP 8.3 (Release)
+          path: build/logs
+
+      - name: Generate Release Notes
+        id: changelog
+        run: |
+          prev_tag=$(git tag -l --sort=-v:refname | sed -n '2p')
+          curr_tag=$(git tag -l --sort=-v:refname | sed -n '1p')
+          if [ -z "$prev_tag" ]; then
+            prev_tag=$(git rev-list --max-parents=0 HEAD)
+          fi
+          if [ -z "$curr_tag" ]; then
+            curr_tag=$(git rev-parse HEAD)
+          fi
+          echo "Previous Tag .... $prev_tag"
+          echo "Current Tag ..... $curr_tag"
+          git log --no-merges --pretty=format:"- %s (%an)" $prev_tag..$curr_tag | grep -Ev '^\- \[INFR\]|\- \[CS\] |\- \[DOC\] ' | sed -E 's/^- (#.*)/- [ENH] \1/' > build/releasenotes.txt
+          ls -l build/
+          ls -l build/releasenotes.txt
+          cat build/releasenotes.txt
+
+      - name: Make Release
+        uses: ncipollo/release-action@v1
+        with:
+          artifacts: "build/dist/doc.zip,build/dist/builddoc.zip"
+          bodyFile: "build/releasenotes.txt"
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.wiki.yml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.wiki.yml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/.github/workflows/build.wiki.yml	(revision 8542)
@@ -0,0 +1,63 @@
+name: Update Wiki
+
+on:
+  workflow_run:
+    workflows:
+      - Release
+    types:
+      - completed
+  workflow_dispatch:
+
+env:
+  GH_PAT: ${{ secrets.UPDATEWIKITOKEN }}
+
+jobs:
+  updatewiki:
+    permissions: write-all
+    runs-on: "ubuntu-24.04"
+
+    steps:
+      - name: Checkout Sources
+        uses: actions/checkout@v6
+
+      - name: Setup PHP with PECL extension
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: "8.4"
+          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, bcmath, intl, gd, exif, iconv, imagick, json, xdebug
+          coverage: xdebug
+
+      - name: Get Composer Cache Directory
+        id: composer-cache
+        run: |
+          echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+      - uses: actions/cache@v5
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-8.4-composer-${{ hashFiles('**/composer.json') }}
+          restore-keys: |
+            ${{ runner.os }}-8.4-composer-${{ hashFiles('**/composer.json') }}
+            ${{ runner.os }}-8.4-composer-
+
+      - name: Install composer dependencies
+        run: |
+          composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+          composer update --no-interaction --prefer-dist
+
+      - name: Update Wiki
+        continue-on-error: true
+        run: |
+          php -f make/genmethoddocs.php
+          git clone https://$GH_PAT@github.com/horstoeko/zugferd.wiki.git wiki
+          mv make/*.md wiki
+          cd wiki
+          git config user.name "HorstOeko"
+          git config user.email "horstoeko@erling.com.de"
+          if [ -n "$(git status --porcelain)" ]; then
+            git add -A
+            git commit -m "Automatische Aktualisierung des Wikis"
+            git push
+          else
+            echo "No changes found. Skipping."
+          fi
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/CHANGELOG.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/CHANGELOG.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/CHANGELOG.md	(revision 8542)
@@ -0,0 +1,1343 @@
+## v1.0.122
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.121
+
+``Previous version v1.0.120``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [eb90579](https://github.com/horstoeko/zugferd/commit/eb90579) | 2026-03-17 15:37:59 CET | Thomas Wunner | fix: set private property accessible in reflection for PHP 7 | 
+| :new_moon:  | [fe71983](https://github.com/horstoeko/zugferd/commit/fe71983) | 2026-03-16 23:18:53 CET | Thomas Wunner | fix: re-enabled PHP 7 compatibility and make sure to always close curl handles | 
+| :new_moon:  | [28b8486](https://github.com/horstoeko/zugferd/commit/28b8486) | 2026-03-01 07:53:59 CET | Thomas Wunner | fixed right method and variable spelling, added new tests and refactored deprecated phpunit calls | 
+| :new_moon:  | [e48c7b0](https://github.com/horstoeko/zugferd/commit/e48c7b0) | 2026-03-01 06:36:37 CET | Thomas Wunner | static code analysis fixes, many English spelling corrections and .editorconfig as it already was in that style | 
+| :new_moon:  | [b062388](https://github.com/horstoeko/zugferd/commit/b062388) | 2026-03-01 05:06:42 CET | Thomas Wunner | trim line endings | 
+| :new_moon:  | [972b259](https://github.com/horstoeko/zugferd/commit/972b259) | 2026-03-01 04:59:41 CET | Thomas Wunner | bump php version to minimal PHP 8.3, updated and migrated dependencies and migrated PHPUnit | 
+| :new_moon:  | [1743bcf](https://github.com/horstoeko/zugferd/commit/1743bcf) | 2026-03-01 04:31:13 CET | Thomas Wunner | performance improvement: grouped logical xor as such | 
+| :new_moon:  | [181fbd0](https://github.com/horstoeko/zugferd/commit/181fbd0) | 2026-03-01 04:05:29 CET | Thomas Wunner | fixed php lib mismatch to PHP 8.1 and updated dependency accordingly | 
+| :new_moon:  | [2507626](https://github.com/horstoeko/zugferd/commit/2507626) | 2026-03-01 03:22:29 CET | Thomas Wunner | merged from forks | 
+| :new_moon:  | [057c9a5](https://github.com/horstoeko/zugferd/commit/057c9a5) | 2026-03-01 03:02:31 CET | Thomas Wunner | security update and comment fix | 
+| :new_moon:  | [45d8425](https://github.com/horstoeko/zugferd/commit/45d8425) | 2026-03-01 02:24:50 CET | Thomas Wunner | many improvements in document handling, more test coverage and minor adjustments | 
+| :new_moon:  | [71ae90e](https://github.com/horstoeko/zugferd/commit/71ae90e) | 2026-02-09 14:37:11 CET | HorstOeko | Fixed deprecations with PHP 8.4/8.5 | [#351](https://github.com/horstoeko/zugferd/issues/351)
+| :new_moon:  | [b9b8e70](https://github.com/horstoeko/zugferd/commit/b9b8e70) | 2026-01-06 22:42:30 CET | HorstOeko | Add Additional Document with BASE64-Encoded data (instead of a filename) -> Added missing test asset | [#337](https://github.com/horstoeko/zugferd/issues/337)
+| :new_moon:  | [9e7a9e7](https://github.com/horstoeko/zugferd/commit/9e7a9e7) | 2026-01-06 22:37:08 CET | HorstOeko | Add Additional Document with BASE64-Encoded data (instead of a filename) -> Added missing picture | [#337](https://github.com/horstoeko/zugferd/issues/337)
+| :new_moon:  | [8a3fc33](https://github.com/horstoeko/zugferd/commit/8a3fc33) | 2026-01-06 22:32:24 CET | HorstOeko | Add Additional Document with BASE64-Encoded data (instead of a filename) | [#337](https://github.com/horstoeko/zugferd/issues/337)
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.120
+
+:exclamation: _There is one internal commit_
+
+## v1.0.119
+
+``Previous version v1.0.118``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9a9aa45](https://github.com/horstoeko/zugferd/commit/9a9aa45) | 2026-01-07 10:16:07 CET | HorstOeko | Fixed "PDF/A3 invalide when original PDF contains link" | [#342](https://github.com/horstoeko/zugferd/issues/342)
+| :new_moon:  | [689dcef](https://github.com/horstoeko/zugferd/commit/689dcef) | 2025-12-18 17:16:11 CET | Bernhard Kraemer | Fix handling of short IDs in ZugferdObjectHelper | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.118
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.117
+
+``Previous version v1.0.116``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [1fcd469](https://github.com/horstoeko/zugferd/commit/1fcd469) | 2025-11-17 14:35:05 CET | Niklas Reitz | Allow XML documents with non-default namespace prefixes Issue | [#331](https://github.com/horstoeko/zugferd/issues/331)
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.116
+
+``Previous version v1.0.115``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [e22a463](https://github.com/horstoeko/zugferd/commit/e22a463) | 2025-10-14 11:50:00 CEST | Kevin Papst | code styles via phpcbf | 
+| :new_moon:  | [b8666dd](https://github.com/horstoeko/zugferd/commit/b8666dd) | 2025-10-14 11:38:59 CEST | Kevin Papst | support DateTimeInterface where possible | 
+| :new_moon:  | [2f79f42](https://github.com/horstoeko/zugferd/commit/2f79f42) | 2025-09-25 12:44:06 CEST | Daniel Marschall | Fixed typo in ZugferdProfiles.php | 
+| :new_moon:  | [cad307e](https://github.com/horstoeko/zugferd/commit/cad307e) | 2025-09-06 13:27:38 CEST | HorstOeko | [ENH]Fixed Tests | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.115
+
+``Previous version v1.0.114``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ece2069](https://github.com/horstoeko/zugferd/commit/ece2069) | 2025-06-06 10:02:29 CEST | HorstOeko | ZugferdDocumentReader::getDocumentDeliveryTerms uses the wrong path | [#299](https://github.com/horstoeko/zugferd/issues/299)
+| :new:  | [a362777](https://github.com/horstoeko/zugferd/commit/a362777) | 2025-05-08 05:24:00 CEST | HorstOeko | [ENH]  Add option to not open the attachment pane -> Added Getter | [#294](https://github.com/horstoeko/zugferd/issues/294)
+| :new_moon:  | [516ec9c](https://github.com/horstoeko/zugferd/commit/516ec9c) | 2025-05-07 15:50:30 CEST | HorstOeko | Add option to not open the attachment pane | [#294](https://github.com/horstoeko/zugferd/issues/294)
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.114
+
+``Previous version v1.0.113``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :bug:  | [e7869f7](https://github.com/horstoeko/zugferd/commit/e7869f7) | 2025-04-29 17:50:06 CEST | HorstOeko | [FIX]  Fix xmpversion for Profile XRechnung 1.2 | [#288](https://github.com/horstoeko/zugferd/issues/288)
+| :bug:  | [58b98f8](https://github.com/horstoeko/zugferd/commit/58b98f8) | 2025-04-29 17:42:47 CEST | HorstOeko | [FIX]  Fix xmpversion for Profile XRechnung 1.2 | [#288](https://github.com/horstoeko/zugferd/issues/288)
+| :new:  | [1599ee8](https://github.com/horstoeko/zugferd/commit/1599ee8) | 2025-04-29 14:58:54 CEST | HorstOeko | [ENH]  XMP Version should reflect the version of the XRechnung | [#288](https://github.com/horstoeko/zugferd/issues/288)
+| :new_moon:  | [f8d3daf](https://github.com/horstoeko/zugferd/commit/f8d3daf) | 2025-04-29 09:21:40 CEST | HorstOeko | Changed PDF Conformancelevel for Profile XRechnung to "XRECHNUNG" | [#286](https://github.com/horstoeko/zugferd/issues/286)
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.113
+
+``Previous version v1.0.112``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [c249d9a](https://github.com/horstoeko/zugferd/commit/c249d9a) | 2025-04-18 13:11:43 CEST | HorstOeko | [ENH] Updated KOSiT Validator Scenario URL | 
+| :new_moon:  | [0dbee49](https://github.com/horstoeko/zugferd/commit/0dbee49) | 2025-04-12 08:08:55 CEST | HorstOeko | First Prototype of ZugferdDocumentProfileConverter -> Added tests | [#263](https://github.com/horstoeko/zugferd/issues/263)
+| :new_moon:  | [47c1f22](https://github.com/horstoeko/zugferd/commit/47c1f22) | 2025-04-11 20:29:20 CEST | HorstOeko | First Prototype of ZugferdDocumentProfileConverter | [#263](https://github.com/horstoeko/zugferd/issues/263)
+
+:exclamation: _There are 19 internal commit(s)_
+
+## v1.0.112
+
+``Previous version v1.0.111``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [07f9f0e](https://github.com/horstoeko/zugferd/commit/07f9f0e) | 2025-03-29 12:29:37 CET | HorstOeko | [ENH] Updated ZugferdProfiles | 
+| :new:  | [109731d](https://github.com/horstoeko/zugferd/commit/109731d) | 2025-03-29 12:24:55 CET | HorstOeko | [ENH] Added XSLT files to scheme-directory | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.111
+
+``Previous version v1.0.110``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [4375885](https://github.com/horstoeko/zugferd/commit/4375885) | 2025-03-29 09:48:51 CET | HorstOeko | Add support for ApplicableTradePaymentPenaltyTerms (BG-X-43) | [#279](https://github.com/horstoeko/zugferd/issues/279)
+| :new_moon:  | [d184fdf](https://github.com/horstoeko/zugferd/commit/d184fdf) | 2025-03-29 08:11:14 CET | HorstOeko | Added support for PartialPaymentAmount (BT-X-275) on PaymentTerms (EXTENDED-Profile only) | [#277](https://github.com/horstoeko/zugferd/issues/277)
+| :new_moon:  | [37f26aa](https://github.com/horstoeko/zugferd/commit/37f26aa) | 2025-03-27 15:13:45 CET | HorstOeko | Fix namespaces (Removed unused old namespaces) | [#274](https://github.com/horstoeko/zugferd/issues/274)
+| :new:  | [ea00365](https://github.com/horstoeko/zugferd/commit/ea00365) | 2025-03-15 08:56:09 CET | HorstOeko | [ENH] Update build and cs config | 
+| :new:  | [0c72f1a](https://github.com/horstoeko/zugferd/commit/0c72f1a) | 2025-03-14 21:46:13 CET | HorstOeko | [ENH] Update build and cs config | 
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.110
+
+``Previous version v1.0.109``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [7323d94](https://github.com/horstoeko/zugferd/commit/7323d94) | 2025-03-13 02:48:45 CET | HorstOeko | [ENH] Added ZugferdDocumentBuilder::addDocumentPositionAdditionalReferencedObjDocument, deprecated ZugferdDocumentBuilder::addDocumentPositionAdditionalReferencedDocumentObj | 
+| :new:  | [c895d6b](https://github.com/horstoeko/zugferd/commit/c895d6b) | 2025-03-12 11:04:02 CET | HorstOeko | [ENH] Added getDocumentPositionAdditionalReferencedDocument to ZugferdDocumentReader (BT-X-31) | 
+| :new:  | [72008f1](https://github.com/horstoeko/zugferd/commit/72008f1) | 2025-03-12 09:05:07 CET | HorstOeko | [ENH] Added method for BG-X-48 to ZugferdDocumentBuilder and ZugferdDocumentReader | 
+
+:exclamation: _There are 7 internal commit(s)_
+
+## v1.0.109
+
+``Previous version v1.0.108``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :bug:  | [af678af](https://github.com/horstoeko/zugferd/commit/af678af) | 2025-03-11 12:36:08 CET | HorstOeko | [FIX]  Fixed naming of TradeAccountingAccount-Methods in ZugferdDocumentReader | [#270](https://github.com/horstoeko/zugferd/issues/270)
+| :new:  | [66b73d0](https://github.com/horstoeko/zugferd/commit/66b73d0) | 2025-03-11 12:13:43 CET | HorstOeko | [ENH]  Added methods to read ReceivableSpecifiedTradeAccountingAccounts on document- and position-level | [#270](https://github.com/horstoeko/zugferd/issues/270)
+| :bug:  | [498f1a3](https://github.com/horstoeko/zugferd/commit/498f1a3) | 2025-03-11 10:47:18 CET | HorstOeko | [FIX] TradeAccountingAccount in ZugferdDocumentBuilder | 
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.108
+
+``Previous version v1.0.107``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [a9866c6](https://github.com/horstoeko/zugferd/commit/a9866c6) | 2025-03-11 01:44:23 CET | HorstOeko | [ENH] Added method for BT-128 to ZugferdDocumentBuilder | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.107
+
+``Previous version v1.0.106``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9a66046](https://github.com/horstoeko/zugferd/commit/9a66046) | 2025-03-10 16:09:49 CET | HorstOeko | Added missing methods for BT-128 to ZugferdDocumentReader | [#268](https://github.com/horstoeko/zugferd/issues/268)
+| :new:  | [278a744](https://github.com/horstoeko/zugferd/commit/278a744) | 2025-02-20 12:50:38 CET | HorstOeko | [ENH]  Added support for Date-Format 610 | [#259](https://github.com/horstoeko/zugferd/issues/259)
+| :new_moon:  | [2a21fc5](https://github.com/horstoeko/zugferd/commit/2a21fc5) | 2025-02-11 16:36:44 CET | wurst-hans | Add creator tool name to meta data | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.106
+
+``Previous version v1.0.105``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :bug:  | [2283f2e](https://github.com/horstoeko/zugferd/commit/2283f2e) | 2025-02-03 13:58:02 CET | HorstOeko | [FIX]  Fixed issues regarding the use of is_file | [#253](https://github.com/horstoeko/zugferd/issues/253)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.105
+
+``Previous version v1.0.104``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [95489fd](https://github.com/horstoeko/zugferd/commit/95489fd) | 2025-01-30 14:20:18 CET | HorstOeko | Getting package version fail-safe | [#250](https://github.com/horstoeko/zugferd/issues/250)
+| :new:  | [563f9da](https://github.com/horstoeko/zugferd/commit/563f9da) | 2025-01-28 11:26:46 CET | HorstOeko | [ENH]  Add Support for Setting SerializerBuilder Cache Directory | [#245](https://github.com/horstoeko/zugferd/issues/245)
+| :new:  | [69a94f2](https://github.com/horstoeko/zugferd/commit/69a94f2) | 2025-01-28 09:33:06 CET | HorstOeko | [ENH]  Make isFile() and xmlDataIsFile() methods overridable | [#244](https://github.com/horstoeko/zugferd/issues/244)
+| :new:  | [4efdc37](https://github.com/horstoeko/zugferd/commit/4efdc37) | 2025-01-28 09:27:42 CET | HorstOeko | [ENH]  Make isFile() and xmlDataIsFile() methods overridable | [#244](https://github.com/horstoeko/zugferd/issues/244)
+| :new:  | [d3fcfc4](https://github.com/horstoeko/zugferd/commit/d3fcfc4) | 2025-01-28 08:45:12 CET | HorstOeko | [ENH]  Make isFile() and xmlDataIsFile() methods overridable | [#244](https://github.com/horstoeko/zugferd/issues/244)
+| :new_moon:  | [45524d7](https://github.com/horstoeko/zugferd/commit/45524d7) | 2025-01-28 05:17:19 CET | HorstOeko | Make isFile() and xmlDataIsFile() methods overridable | [#244](https://github.com/horstoeko/zugferd/issues/244)
+| :new_moon:  | [dfc2b17](https://github.com/horstoeko/zugferd/commit/dfc2b17) | 2025-01-22 16:54:08 CET | HorstOeko | Added Codelist UNTDID 1229 (ZugferdLineStatusCodes) | 
+
+:exclamation: _There are 8 internal commit(s)_
+
+## v1.0.104
+
+``Previous version v1.0.103``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [9c37fbe](https://github.com/horstoeko/zugferd/commit/9c37fbe) | 2025-01-19 10:23:02 CET | HorstOeko | [ENH] Added tests for ZugferdDocumentBuilder::addDocumentPaymentTermXRechnung | 
+| :new:  | [7989261](https://github.com/horstoeko/zugferd/commit/7989261) | 2025-01-13 05:46:45 CET | HorstOeko | [ENH] ZugferdDocumentPdfReader uses internally the ZugferdDocumentPdfReaderExt | 
+
+:exclamation: _There are 12 internal commit(s)_
+
+## v1.0.103
+
+``Previous version v1.0.102``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ce07a05](https://github.com/horstoeko/zugferd/commit/ce07a05) | 2025-01-10 17:31:05 CET | wurst-hans | Fixed incompatible PDF/A header bytes | 
+| :bug:  | [04a2814](https://github.com/horstoeko/zugferd/commit/04a2814) | 2025-01-10 06:17:05 CET | HorstOeko | [FIX] Fix getters in getDocumentShipToContact | 
+
+:exclamation: _There are 12 internal commit(s)_
+
+## v1.0.102
+
+``Previous version v1.0.101``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :bug:  | [c43788a](https://github.com/horstoeko/zugferd/commit/c43788a) | 2025-01-03 11:49:47 CET | HorstOeko | [FIX] Fixed dependency for symfony/finder | 
+| :bug:  | [8273bb2](https://github.com/horstoeko/zugferd/commit/8273bb2) | 2024-12-31 10:15:41 CET | HorstOeko | [FIX] Updated ZugferdDocumentPdfBuilderAbstract -> Remove useless parameter from 'downloadString', Updated DocBlocks | 
+
+:exclamation: _There are 21 internal commit(s)_
+
+## v1.0.101
+
+``Previous version v1.0.100``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [3095bd3](https://github.com/horstoeko/zugferd/commit/3095bd3) | 2024-12-29 19:15:59 CET | HorstOeko | [ENH] UNTDID 5153 Duty or tax or fee type name code | 
+| :new:  | [9bde1f2](https://github.com/horstoeko/zugferd/commit/9bde1f2) | 2024-12-29 19:06:57 CET | HorstOeko | [ENH] Added codelist UNTDID 5305 Duty or tax or fee category code | 
+| :new:  | [188a155](https://github.com/horstoeko/zugferd/commit/188a155) | 2024-12-29 18:36:48 CET | HorstOeko | [ENH] Added new methods to ZugferdDocumentBuilder to add an invoice supporting additional document, a tender or lot document reference or a reference of the calculated object | 
+| :new:  | [ae4a8e3](https://github.com/horstoeko/zugferd/commit/ae4a8e3) | 2024-12-29 18:34:00 CET | HorstOeko | [ENH] Added Codelist ZugferdDocumentType which holds the type codes for "AdditionalReferencedDocument" | 
+| :new:  | [d4c2b5b](https://github.com/horstoeko/zugferd/commit/d4c2b5b) | 2024-12-28 21:51:37 CET | HorstOeko | [ENH] Introducing ZugferdPdfValidator | 
+| :new:  | [8115b1f](https://github.com/horstoeko/zugferd/commit/8115b1f) | 2024-12-28 21:50:53 CET | HorstOeko | [ENH] ZugferdKositValidator -> Temp.-File handling, Codestyle | 
+
+:exclamation: _There are 18 internal commit(s)_
+
+## v1.0.100
+
+``Previous version v1.0.99``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [d3498b0](https://github.com/horstoeko/zugferd/commit/d3498b0) | 2024-12-25 13:55:35 CET | HorstOeko | [ENH] Introducing new ZugferdDocumentPdfReaderExt (Extended PDF Reader) | 
+| :new:  | [84bc90d](https://github.com/horstoeko/zugferd/commit/84bc90d) | 2024-12-23 08:41:52 CET | HorstOeko | [ENH] ZugferdKositValidator uses the configuration-release from 2024-10-31 | 
+| :new:  | [e38c9ce](https://github.com/horstoeko/zugferd/commit/e38c9ce) | 2024-12-18 17:32:32 CET | HorstOeko | [ENH] Added Shortcut methods addDocumentBuyerVATRegistrationNumber and addDocumentBuyerTaxNumber | 
+| :new:  | [388bb36](https://github.com/horstoeko/zugferd/commit/388bb36) | 2024-12-18 15:14:45 CET | HorstOeko | [ENH] Added Codelists as Enum (see PR ) | [#223](https://github.com/horstoeko/zugferd/issues/223)
+| :bug:  | [eef01c1](https://github.com/horstoeko/zugferd/commit/eef01c1) | 2024-12-18 14:53:30 CET | HorstOeko | [FIX] Removed Bugs from PR  - Removed feature temporary | [#223](https://github.com/horstoeko/zugferd/issues/223)
+| :bug:  | [87dc563](https://github.com/horstoeko/zugferd/commit/87dc563) | 2024-12-18 14:43:57 CET | HorstOeko | [FIX] Removed Bugs from PR | [#223](https://github.com/horstoeko/zugferd/issues/223)
+| :new_moon:  | [5429be9](https://github.com/horstoeko/zugferd/commit/5429be9) | 2024-12-18 12:30:48 CET | Marc KrÃ€mer | adding backed enums for codelists | 
+
+:exclamation: _There are 16 internal commit(s)_
+
+## v1.0.99
+
+``Previous version v1.0.98``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :bug:  | [bd0894d](https://github.com/horstoeko/zugferd/commit/bd0894d) | 2024-12-17 17:03:43 CET | HorstOeko | [FIX] Make payment card number unrecognizable | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.98
+
+``Previous version v1.0.97``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [6e3a1da](https://github.com/horstoeko/zugferd/commit/6e3a1da) | 2024-12-17 04:57:36 CET | HorstOeko | [ENH] More improvemets to ZugferdKositValidator | 
+| :new:  | [05544c5](https://github.com/horstoeko/zugferd/commit/05544c5) | 2024-12-16 16:35:59 CET | HorstOeko | [ENH] More improvemets to ZugferdKositValidator | 
+| :new:  | [a0bc48c](https://github.com/horstoeko/zugferd/commit/a0bc48c) | 2024-12-16 06:04:39 CET | HorstOeko | [ENH] ZugferdKositValidator can now also accept a string (containing the XML to be validated) instead of an instance of ZugferdDocument | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.97
+
+``Previous version v1.0.96``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [c09ef7e](https://github.com/horstoeko/zugferd/commit/c09ef7e) | 2024-12-15 17:59:11 CET | HorstOeko | [ENH] Improved KositValidator remote validation | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.96
+
+``Previous version v1.0.95``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [8a63f49](https://github.com/horstoeko/zugferd/commit/8a63f49) | 2024-12-15 12:54:22 CET | HorstOeko | [ENH] ZugferdKositValidator can optionally call a running Validator in Daemon-Mode via HTTP | 
+| :new_moon:  | [8c68d09](https://github.com/horstoeko/zugferd/commit/8c68d09) | 2024-12-13 14:14:30 CET | HorstOeko | Revert "Automatische Aktualisierung des ChangeLogs" | 
+| :new_moon:  | [7443f2c](https://github.com/horstoeko/zugferd/commit/7443f2c) | 2024-12-13 14:11:42 CET | HorstOeko | Automatische Aktualisierung des ChangeLogs | 
+
+:exclamation: _There are 34 internal commit(s)_
+
+## v1.0.95
+
+``Previous version v1.0.94``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [e2ee3d1](https://github.com/horstoeko/zugferd/commit/e2ee3d1) | 2024-12-11 17:15:15 CET | HorstOeko | Significantly increased PDF file size -> Changed to smaller ICC profile | [#211](https://github.com/horstoeko/zugferd/issues/211)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.94
+
+``Previous version v1.0.93``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [3735ae8](https://github.com/horstoeko/zugferd/commit/3735ae8) | 2024-12-11 06:01:52 CET | HorstOeko | Customizable PDF Metadata -> Additionally using FPDF-BuiltIn-Metadata methods (Fix UTF8) | [#208](https://github.com/horstoeko/zugferd/issues/208)
+| :new_moon:  | [17edaa7](https://github.com/horstoeko/zugferd/commit/17edaa7) | 2024-12-11 05:52:04 CET | HorstOeko | Customizable PDF Metadata -> Additionally using FPDF-BuiltIn-Metadata methods | [#208](https://github.com/horstoeko/zugferd/issues/208)
+| :new_moon:  | [7a9ade1](https://github.com/horstoeko/zugferd/commit/7a9ade1) | 2024-12-11 05:29:46 CET | HorstOeko | Customizable PDF Metadata -> Removed unused variable in PdfBuilderEn16931Test::testCustomMetaInformation | [#208](https://github.com/horstoeko/zugferd/issues/208)
+| :new_moon:  | [fa686e9](https://github.com/horstoeko/zugferd/commit/fa686e9) | 2024-12-11 05:02:40 CET | HorstOeko | Customizable PDF Metadata -> Added Templates and Callback Function | [#208](https://github.com/horstoeko/zugferd/issues/208)
+
+## v1.0.93
+
+``Previous version v1.0.92``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [d1f0782](https://github.com/horstoeko/zugferd/commit/d1f0782) | 2024-12-09 18:04:39 CET | HorstOeko | [ENH] Added tests for deterministic mode | 
+| :new:  | [9aaebf3](https://github.com/horstoeko/zugferd/commit/9aaebf3) | 2024-12-09 17:50:12 CET | HorstOeko | [ENH] Improved PDF-Tests | 
+| :new:  | [3ed50a4](https://github.com/horstoeko/zugferd/commit/3ed50a4) | 2024-12-09 16:39:59 CET | HorstOeko | [ENH] Use DateTime values with correct timezone | 
+| :new_moon:  | [28f312c](https://github.com/horstoeko/zugferd/commit/28f312c) | 2024-12-09 14:43:34 CET | HorstOeko | Fix DateTime-Handling (strings with linebreaks) | [#206](https://github.com/horstoeko/zugferd/issues/206)
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.92
+
+``Previous version v1.0.91``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [fcf7ffc](https://github.com/horstoeko/zugferd/commit/fcf7ffc) | 2024-12-07 10:36:47 CET | HorstOeko | [ENH] Add deterministic Mode to ZugferdDocumentPdfBuilderAbstract (and derived classes). This mode should only used for testing purposes | 
+| :new:  | [d799b4c](https://github.com/horstoeko/zugferd/commit/d799b4c) | 2024-12-08 10:00:57 CET | HorstOeko | [ENH] Changed InvalidArgumentException to ZugferdInvalidArgumentException | 
+| :new:  | [38ea3f7](https://github.com/horstoeko/zugferd/commit/38ea3f7) | 2024-12-07 10:36:47 CET | HorstOeko | [ENH] Add deterministic Mode to ZugferdDocumentPdfBuilderAbstract (and derived classes). This mode should only used for testing purposes | 
+| :new:  | [e5e0498](https://github.com/horstoeko/zugferd/commit/e5e0498) | 2024-12-06 14:16:47 CET | HorstOeko | [ENH] Added ZugferdSpecificationVersions to get the latest used specification versions | 
+| :bug:  | [2a2ff79](https://github.com/horstoeko/zugferd/commit/2a2ff79) | 2024-12-06 05:06:00 CET | HorstOeko | [FIX] Typo in variable Name | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.91
+
+``Previous version v1.0.90``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [d66ee79](https://github.com/horstoeko/zugferd/commit/d66ee79) | 2024-12-05 05:40:27 CET | HorstOeko | [ENH] Added new methods addDocumentPaymentMeanToCreditTransferNonSepa and addDocumentPaymentMeanToDirectDebitNonSepa to ZugferdDocumentBuilder | 
+| :new_moon:  | [dc5a881](https://github.com/horstoeko/zugferd/commit/dc5a881) | 2024-12-02 17:04:33 CET | Carsten Schmitz | Fixed issue: Using addDocumentAllowanceCharge with Code SERVICE_OUTSIDE_SCOPE_OF_TAX never passes validation as the Taxtype is omitted if you pass no VAT rate | 
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.90
+
+``Previous version v1.0.89``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [2dfebcb](https://github.com/horstoeko/zugferd/commit/2dfebcb) | 2024-12-03 05:52:07 CET | HorstOeko | [ENH] Added ZugferdDocumentReader::getDocumentPositionLineSummationExt to satisfy the EXTENDED profile | 
+| :new:  | [ea74726](https://github.com/horstoeko/zugferd/commit/ea74726) | 2024-12-03 05:45:20 CET | HorstOeko | [ENH] Added ZugferdDocumentBuilder::setDocumentPositionLineSummationExt to satisfy the EXTENDED profile | 
+| :new:  | [75ae647](https://github.com/horstoeko/zugferd/commit/75ae647) | 2024-12-03 05:35:33 CET | HorstOeko | [ENH] More parameters for LineMonetarySummation to satisfy the EXTENDED profile | 
+
+## v1.0.89
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.88
+
+``Previous version v1.0.87``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :closed_book:  | [015544a](https://github.com/horstoeko/zugferd/commit/015544a) | 2024-12-02 05:00:26 CET | HorstOeko | [DEPR] deprecated ZugferdDocumentReader::getDocumentPositionLineSummation, use ZugferdDocumentReader::getDocumentPositionLineSummationSimple | 
+
+## v1.0.87
+
+``Previous version v1.0.86``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new:  | [513d3b8](https://github.com/horstoeko/zugferd/commit/513d3b8) | 2024-12-01 12:37:49 CET | HorstOeko | [FEAT] Added methods ZugferdDocumentReader::getDocumentQuotationReferencedDocument and ZugferdDocumentReader::getDocumentPositionQuotationReferencedDocument | 
+| :new_moon:  | [f408494](https://github.com/horstoeko/zugferd/commit/f408494) | 2024-12-01 12:08:28 CET | HorstOeko | Added methods ZugferdDocumentBuiler::setDocumentQuotationReferencedDocument and ZugferdDocumentBuiler::setDocumentPositionQuotationReferencedDocument | 
+| :new:  | [7bd41ae](https://github.com/horstoeko/zugferd/commit/7bd41ae) | 2024-12-01 11:44:23 CET | HorstOeko | [FEAT] Added method ZugferdDocumentReader::getDocumentPositionSellerOrderReferencedDocument | 
+| :new:  | [c35cdda](https://github.com/horstoeko/zugferd/commit/c35cdda) | 2024-12-01 11:36:24 CET | HorstOeko | [FEAT] Added method ZugferdDocumentBuilder::setDocumentPositionSellerOrderReferencedDocument | 
+| :new_moon:  | [dee76ec](https://github.com/horstoeko/zugferd/commit/dee76ec) | 2024-12-01 11:24:28 CET | HorstOeko | Added industryAssignedID to ZugferdDocumentReader::getDocumentPositionReferencedProduct | 
+| :new:  | [8ebd056](https://github.com/horstoeko/zugferd/commit/8ebd056) | 2024-12-01 11:13:32 CET | HorstOeko | [FEAT] Added industryAssignedID to ZugferdDocumentBuilder::addDocumentPositionReferencedProduct | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.86
+
+``Previous version v1.0.85``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [02d0e4c](https://github.com/horstoeko/zugferd/commit/02d0e4c) | 2024-11-29 05:36:43 CET | HorstOeko | Added addDocumentSellerVATRegistrationNumber and addDocumentSellerTaxNumber to ZugferdDocumentBuilder | 
+| :new_moon:  | [9d6d67a](https://github.com/horstoeko/zugferd/commit/9d6d67a) | 2024-11-29 05:02:54 CET | HorstOeko | Fix method visibillity in ZugferdDocumentPdfMerger | 
+| :new_moon:  | [f7e2293](https://github.com/horstoeko/zugferd/commit/f7e2293) | 2024-11-28 09:58:36 CET | Fabian Boensch | Fix composer autoload psr-4 mapping | 
+| :new_moon:  | [c2f6b17](https://github.com/horstoeko/zugferd/commit/c2f6b17) | 2024-11-28 05:22:40 CET | HorstOeko | Use DeliveryTermsCodeType in getTradeDeliveryTermsType | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.85
+
+``Previous version v1.0.84``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0ef5615](https://github.com/horstoeko/zugferd/commit/0ef5615) | 2024-11-27 17:38:17 CET | HorstOeko | Allow adding empty ShipTo nodes to the document without enforcing a TradeParty name | [#189](https://github.com/horstoeko/zugferd/issues/189)
+| :new_moon:  | [380709c](https://github.com/horstoeko/zugferd/commit/380709c) | 2024-11-27 17:01:45 CET | HorstOeko | Allow adding empty ShipTo nodes to the document without enforcing a TradeParty name | [#189](https://github.com/horstoeko/zugferd/issues/189)
+| :new_moon:  | [90f7072](https://github.com/horstoeko/zugferd/commit/90f7072) | 2024-11-27 16:07:52 CET | HorstOeko | Updated DocBlocks in ZugferdQuickDescriptor | 
+| :new_moon:  | [2bf73cb](https://github.com/horstoeko/zugferd/commit/2bf73cb) | 2024-11-27 04:59:52 CET | HorstOeko | Updated XRechnung Quick Examples | 
+
+## v1.0.84
+
+``Previous version v1.0.83``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [fe84c3a](https://github.com/horstoeko/zugferd/commit/fe84c3a) | 2024-11-26 18:26:40 CET | HorstOeko | Added ZugferdQuickDescriptor::doSetSupplyChainEvent | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.83
+
+``Previous version v1.0.82``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [3a7aeec](https://github.com/horstoeko/zugferd/commit/3a7aeec) | 2024-11-26 11:10:41 CET | HorstOeko | Fixed duplicated VAT Breakdown in QuickDescriptor | [#185](https://github.com/horstoeko/zugferd/issues/185)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.82
+
+``Previous version v1.0.81``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ed98443](https://github.com/horstoeko/zugferd/commit/ed98443) | 2024-11-25 20:16:38 CET | GM | Removed implicitly nullable parameter declarations | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.81
+
+``Previous version v1.0.80``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [a8ae46f](https://github.com/horstoeko/zugferd/commit/a8ae46f) | 2024-11-25 17:23:59 CET | HorstOeko | Add method for adding payment terms in special XRechnung-Syntax | [#181](https://github.com/horstoeko/zugferd/issues/181)
+| :new_moon:  | [31fc364](https://github.com/horstoeko/zugferd/commit/31fc364) | 2024-11-25 05:28:47 CET | HorstOeko | Updated example for XRechnung 3 | 
+| :new_moon:  | [0976dd4](https://github.com/horstoeko/zugferd/commit/0976dd4) | 2024-11-22 15:16:53 CET | HorstOeko | Fixed Inconsistent Naming in Parameters | [#177](https://github.com/horstoeko/zugferd/issues/177)
+| :new_moon:  | [43dff88](https://github.com/horstoeko/zugferd/commit/43dff88) | 2024-11-22 15:15:57 CET | HorstOeko | Fixed Inconsistent Naming in Parameters | [#177](https://github.com/horstoeko/zugferd/issues/177)
+| :new_moon:  | [aee61fe](https://github.com/horstoeko/zugferd/commit/aee61fe) | 2024-11-22 05:45:16 CET | HorstOeko | Better handling of mimetypes in ReferencedDocumentType | 
+| :new_moon:  | [2ebe0d3](https://github.com/horstoeko/zugferd/commit/2ebe0d3) | 2024-11-21 15:16:21 CET | HorstOeko | Better handling of not readable files | 
+
+:exclamation: _There are 25 internal commit(s)_
+
+## v1.0.80
+
+``Previous version v1.0.79``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [1542533](https://github.com/horstoeko/zugferd/commit/1542533) | 2024-11-16 13:01:47 CET | HorstOeko | Fix method visibillity in ZugferdKositValidator | 
+
+:exclamation: _There are 11 internal commit(s)_
+
+## v1.0.79
+
+``Previous version v1.0.78``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0b101f8](https://github.com/horstoeko/zugferd/commit/0b101f8) | 2024-11-16 07:34:43 CET | HorstOeko | Handle Decimals of the measure type | [#169](https://github.com/horstoeko/zugferd/issues/169)
+| :new_moon:  | [cf43e13](https://github.com/horstoeko/zugferd/commit/cf43e13) | 2024-11-14 16:12:56 CET | HorstOeko | Fix Exception in ZugferdDocumentPdfMerger | 
+| :new_moon:  | [7d8f01d](https://github.com/horstoeko/zugferd/commit/7d8f01d) | 2024-11-12 16:58:21 CET | HorstOeko | Better message handling in ZugferdKositValidator | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.78
+
+``Previous version v1.0.77``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [bacbe67](https://github.com/horstoeko/zugferd/commit/bacbe67) | 2024-11-11 11:59:22 CET | HorstOeko | Reset internal pointers | 
+| :new_moon:  | [6c102e6](https://github.com/horstoeko/zugferd/commit/6c102e6) | 2024-11-11 11:58:44 CET | HorstOeko | Reset internal pointers | 
+
+## v1.0.77
+
+``Previous version v1.0.76``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [f615cf4](https://github.com/horstoeko/zugferd/commit/f615cf4) | 2024-11-05 16:34:37 CET | HorstOeko | Removed duplicate context parameter | [#164](https://github.com/horstoeko/zugferd/issues/164)
+| :new_moon:  | [d209690](https://github.com/horstoeko/zugferd/commit/d209690) | 2024-11-04 16:30:49 CET | HorstOeko | Pre-assignment of 'BusinessProcessSpecifiedDocumentContextParameter' with 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0' in extended profile | [#159](https://github.com/horstoeko/zugferd/issues/159)
+| :new_moon:  | [1646873](https://github.com/horstoeko/zugferd/commit/1646873) | 2024-11-04 05:42:51 CET | HorstOeko | Pre-assignment of 'BusinessProcessSpecifiedDocumentContextParameter' with 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0' in all profiles | [#159](https://github.com/horstoeko/zugferd/issues/159)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.76
+
+``Previous version v1.0.75``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [74bd98c](https://github.com/horstoeko/zugferd/commit/74bd98c) | 2024-11-03 10:05:21 CET | HorstOeko | Breaking Change: ZugferdPdfReader does not return null-values for "readAndGuessFromFile", "readAndGuessFromContent", "getXmlFromFile" and "getXmlFromContent" anymore. Now always exceptions are raised. | 
+
+## v1.0.75
+
+``Previous version v1.0.74``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [f3b99d7](https://github.com/horstoeko/zugferd/commit/f3b99d7) | 2024-11-02 08:13:19 CET | HorstOeko | Reverted changes to ZugferdKositValidator | 
+| :new_moon:  | [6a9ba32](https://github.com/horstoeko/zugferd/commit/6a9ba32) | 2024-11-01 14:13:47 CET | HorstOeko | Improved ZugferdKositValidator -> added direct content validation, deprecated direct call of constructor, added new methods fromDocument and fromString | 
+| :new_moon:  | [4cfa20f](https://github.com/horstoeko/zugferd/commit/4cfa20f) | 2024-11-01 12:59:28 CET | HorstOeko | Deprecated addNewTextPosition by version >= 1.0.75 | 
+| :new_moon:  | [ce20454](https://github.com/horstoeko/zugferd/commit/ce20454) | 2024-11-01 12:29:11 CET | HorstOeko | Added more validation calls to example/XsdValidator | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.74
+
+``Previous version v1.0.73``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [7a54537](https://github.com/horstoeko/zugferd/commit/7a54537) | 2024-11-01 09:52:25 CET | HorstOeko | Possibility to add additional documents (attachments) to a PDF in the classes ``ZugferdDocumentPdfBuilder`` and ``ZugferdDocumentPdfMerger``. (See Issue ) | [#153](https://github.com/horstoeko/zugferd/issues/153)
+| :new_moon:  | [0d97519](https://github.com/horstoeko/zugferd/commit/0d97519) | 2024-11-01 09:14:42 CET | HorstOeko | Possibility to add additional documents (attachments) to a PDF in the classes ``ZugferdDocumentPdfBuilder`` and ``ZugferdDocumentPdfMerger``. (See Issue ) | [#153](https://github.com/horstoeko/zugferd/issues/153)
+| :new_moon:  | [e03f663](https://github.com/horstoeko/zugferd/commit/e03f663) | 2024-10-31 15:53:18 CET | HorstOeko | Fix sample file | [#155](https://github.com/horstoeko/zugferd/issues/155)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.73
+
+``Previous version v1.0.72``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0a1420f](https://github.com/horstoeko/zugferd/commit/0a1420f) | 2024-10-30 16:27:17 CET | HorstOeko | Added support for alternative context parameters | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.72
+
+``Previous version v1.0.71``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9f550dc](https://github.com/horstoeko/zugferd/commit/9f550dc) | 2024-10-24 16:07:15 CEST | HorstOeko | Allow "Source" for XML attachment relationship, added quick accessor to switch to "Data", "Alternative" or "Source" relation ship | [#147](https://github.com/horstoeko/zugferd/issues/147)
+
+## v1.0.71
+
+``Previous version v1.0.70``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0da33d0](https://github.com/horstoeko/zugferd/commit/0da33d0) | 2024-10-24 16:07:15 CEST | HorstOeko | Added "setAttachmentRelationshipType" to ZugferdDocumentPdfBuilderAbstract for setting up an alternative relationship type for the XML attachment. Allowed values are 'Data' and 'Alternative' | [#147](https://github.com/horstoeko/zugferd/issues/147)
+
+## v1.0.70
+
+``Previous version v1.0.69``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [78a896e](https://github.com/horstoeko/zugferd/commit/78a896e) | 2024-10-23 20:23:47 CEST | HorstOeko | Fix result type of DocumentLanguage in ZugferdDocumentReader::getDocumentInformation | 
+| :new_moon:  | [65ce898](https://github.com/horstoeko/zugferd/commit/65ce898) | 2024-10-23 19:56:46 CEST | HorstOeko | Fix result type of DocumentNo in ZugferdDocumentReader::getDocumentInformation | 
+
+## v1.0.69
+
+``Previous version v1.0.68``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [31877c6](https://github.com/horstoeko/zugferd/commit/31877c6) | 2024-10-22 05:33:57 CEST | HorstOeko | Fixed typo in TestCase method | 
+| :new_moon:  | [629c879](https://github.com/horstoeko/zugferd/commit/629c879) | 2024-10-22 04:50:46 CEST | HorstOeko | Sealed class ZugferdDocument | 
+| :new_moon:  | [509f503](https://github.com/horstoeko/zugferd/commit/509f503) | 2024-10-19 09:27:59 CEST | HorstOeko | Update Codelist "ZugferdReferenceCodeQualifiers" (UNTDID 1153) | 
+| :new_moon:  | [6c9ce73](https://github.com/horstoeko/zugferd/commit/6c9ce73) | 2024-10-19 09:22:44 CEST | HorstOeko | Update Codelist "ZugferdReferenceCodeQualifiers" (UNTDID 1153) | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.68
+
+``Previous version v1.0.67``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [c61b141](https://github.com/horstoeko/zugferd/commit/c61b141) | 2024-10-16 05:44:12 CEST | HorstOeko | Fixed ZugferdDocumentPdfBuilder brakes Hyperlink | [#139](https://github.com/horstoeko/zugferd/issues/139)
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.67
+
+``Previous version v1.0.66``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ef86636](https://github.com/horstoeko/zugferd/commit/ef86636) | 2024-10-13 15:23:56 CEST | HorstOeko | Consolidated exceptions with horstoeko/orderx | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.66
+
+``Previous version v1.0.65``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [765fb73](https://github.com/horstoeko/zugferd/commit/765fb73) | 2024-10-11 11:23:09 CEST | HorstOeko | Added "getDocumentSellerCommunication" and "getDocumentBuyerCommunication" to ZugferdDocumentReader | [#136](https://github.com/horstoeko/zugferd/issues/136)
+| :new_moon:  | [1140e93](https://github.com/horstoeko/zugferd/commit/1140e93) | 2024-10-06 12:05:26 CEST | HorstOeko | Fix ProfileResolverTest | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.65
+
+``Previous version v1.0.64``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ccafcda](https://github.com/horstoeko/zugferd/commit/ccafcda) | 2024-10-06 11:56:35 CEST | HorstOeko | Added test for Issue | [#133](https://github.com/horstoeko/zugferd/issues/133)
+| :new_moon:  | [1f2910a](https://github.com/horstoeko/zugferd/commit/1f2910a) | 2024-10-06 11:37:51 CEST | HorstOeko | Fix ZugferdDocumentPdfBuilder::getXmlContent | 
+| :new_moon:  | [a913361](https://github.com/horstoeko/zugferd/commit/a913361) | 2024-10-06 10:12:03 CEST | HorstOeko | Fix imports (Namespaces) | 
+| :new_moon:  | [32f641b](https://github.com/horstoeko/zugferd/commit/32f641b) | 2024-10-06 10:01:43 CEST | HorstOeko | Added more PDF tests | 
+| :new_moon:  | [eaa7907](https://github.com/horstoeko/zugferd/commit/eaa7907) | 2024-10-05 18:24:16 CEST | HorstOeko | Added new evaluation methods hasNoValidationErrors and hasValidationErrors to ZugferdXsdValidator, deprecated validationPased and validationFailed | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.64
+
+``Previous version v1.0.63``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ef1bb65](https://github.com/horstoeko/zugferd/commit/ef1bb65) | 2024-10-04 16:47:55 CEST | Daniel Marschall | Update ZugferdProfileResolver.php | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.63
+
+``Previous version v1.0.62``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [dddad3d](https://github.com/horstoeko/zugferd/commit/dddad3d) | 2024-10-02 17:18:59 CEST | HorstOeko | Fix name parameter in additional referenced documents -> Improved tests | [#130](https://github.com/horstoeko/zugferd/issues/130)
+| :new_moon:  | [73c0eb3](https://github.com/horstoeko/zugferd/commit/73c0eb3) | 2024-10-02 17:01:37 CEST | HorstOeko | Fix name parameter in additional referenced documents | [#130](https://github.com/horstoeko/zugferd/issues/130)
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.62
+
+``Previous version v1.0.61``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [552600e](https://github.com/horstoeko/zugferd/commit/552600e) | 2024-09-26 05:16:45 CEST | HorstOeko | Improved tests for LogisticsServiceCharge | 
+| :new_moon:  | [f46e964](https://github.com/horstoeko/zugferd/commit/f46e964) | 2024-09-25 05:32:32 CEST | HorstOeko | Added exchangeRate parameter to ZugferdDocumentBuilder::setForeignCurrency | 
+| :new_moon:  | [f2766ed](https://github.com/horstoeko/zugferd/commit/f2766ed) | 2024-09-24 17:13:44 CEST | HorstOeko | Added tests for foreign currency | 
+| :new_moon:  | [c44f617](https://github.com/horstoeko/zugferd/commit/c44f617) | 2024-09-24 16:07:22 CEST | HorstOeko | ZugferdDocumentPdfReader now contains additional methods for extracting the XML content -> better method names | [#120](https://github.com/horstoeko/zugferd/issues/120)
+| :new_moon:  | [10fc7d3](https://github.com/horstoeko/zugferd/commit/10fc7d3) | 2024-09-24 05:21:35 CEST | HorstOeko | ZugferdDocumentPdfReader now contains additional methods for extracting the XML content | [#120](https://github.com/horstoeko/zugferd/issues/120)
+| :new_moon:  | [42cbe91](https://github.com/horstoeko/zugferd/commit/42cbe91) | 2024-09-23 06:16:24 CEST | HorstOeko | Update to ZUGFeRD 2.3 (PHPCS, PHPStan) | [#119](https://github.com/horstoeko/zugferd/issues/119)
+| :new_moon:  | [10520c3](https://github.com/horstoeko/zugferd/commit/10520c3) | 2024-09-23 05:23:56 CEST | HorstOeko | Update to ZUGFeRD 2.3 (Support for InvoiceReferencedDocument) | [#119](https://github.com/horstoeko/zugferd/issues/119)
+| :new_moon:  | [d7fe3bd](https://github.com/horstoeko/zugferd/commit/d7fe3bd) | 2024-09-21 13:45:10 CEST | HorstOeko | Update to ZUGFeRD 2.3 | [#119](https://github.com/horstoeko/zugferd/issues/119)
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.61
+
+``Previous version v1.0.60``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [178a51b](https://github.com/horstoeko/zugferd/commit/178a51b) | 2024-09-12 16:04:09 CEST | HorstOeko | Fix provided (Tests) | [#113](https://github.com/horstoeko/zugferd/issues/113)
+| :new_moon:  | [a160f93](https://github.com/horstoeko/zugferd/commit/a160f93) | 2024-09-12 16:03:45 CEST | HorstOeko | Fix provided | [#113](https://github.com/horstoeko/zugferd/issues/113)
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.60
+
+``Previous version v1.0.59``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [be7780f](https://github.com/horstoeko/zugferd/commit/be7780f) | 2024-09-06 12:21:15 CEST | HorstOeko | Added missing call to libxml_clear_errors in ZugferdProfileResolver | [#108](https://github.com/horstoeko/zugferd/issues/108)
+| :new_moon:  | [1355220](https://github.com/horstoeko/zugferd/commit/1355220) | 2024-09-06 12:13:26 CEST | HorstOeko | Added readAndGuessFromContent to ZugferdDocumentPdfReader | [#107](https://github.com/horstoeko/zugferd/issues/107)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.59
+
+``Previous version v1.0.58``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [c05d6d4](https://github.com/horstoeko/zugferd/commit/c05d6d4) | 2024-09-03 17:08:19 CEST | HorstOeko | Use LibXML Internal errors in ProfileResolver | [#104](https://github.com/horstoeko/zugferd/issues/104)
+
+:exclamation: _There are 7 internal commit(s)_
+
+## v1.0.58
+
+``Previous version v1.0.57``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [702b12e](https://github.com/horstoeko/zugferd/commit/702b12e) | 2024-09-02 17:11:36 CEST | HorstOeko | ProfileResolver should raise ZugferdUnknownXmlContentException when XML content is not valid | [#104](https://github.com/horstoeko/zugferd/issues/104)
+
+:exclamation: _There are 16 internal commit(s)_
+
+## v1.0.57
+
+``Previous version v1.0.56``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [7401eca](https://github.com/horstoeko/zugferd/commit/7401eca) | 2024-07-09 22:07:13 CEST | Daniel Marschall | Fix ZugferdPdfWriter not outputting metadata if there are no files | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.56
+
+``Previous version v1.0.55``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [34b7698](https://github.com/horstoeko/zugferd/commit/34b7698) | 2024-06-15 07:36:21 CEST | HorstOeko | Add multiple IDs for several trade parties () | [#96](https://github.com/horstoeko/zugferd/issues/96)
+
+## v1.0.55
+
+``Previous version v1.0.54``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [deba063](https://github.com/horstoeko/zugferd/commit/deba063) | 2024-06-14 22:18:41 CEST | HorstOeko | Added methods "addDocumentSellerId" and "addDocumentBuyerId" for addings additional ids (not global ids) for seller and buyer () | [#90](https://github.com/horstoeko/zugferd/issues/90)
+| :new_moon:  | [e2938a4](https://github.com/horstoeko/zugferd/commit/e2938a4) | 2024-06-14 20:31:12 CEST | HorstOeko | Multiple Deprecation Warnings in 1.0.54 () | [#89](https://github.com/horstoeko/zugferd/issues/89)
+| :new_moon:  | [c9875bb](https://github.com/horstoeko/zugferd/commit/c9875bb) | 2024-06-14 18:11:00 CEST | HorstOeko | Revert "Update ZugferdDocumentBuilder.php" | 
+| :new_moon:  | [00cc2fb](https://github.com/horstoeko/zugferd/commit/00cc2fb) | 2024-06-14 17:01:18 CEST | OLLIVAULT | Update ZugferdDocumentBuilder.php | 
+| :new_moon:  | [116fc5f](https://github.com/horstoeko/zugferd/commit/116fc5f) | 2024-06-12 05:27:52 CEST | HorstOeko | Added example for how to handle AdditionalReferencedDocument | 
+| :new_moon:  | [15da379](https://github.com/horstoeko/zugferd/commit/15da379) | 2024-06-11 15:52:16 CEST | HorstOeko | Added example for BASIC Profile | 
+| :new_moon:  | [56af827](https://github.com/horstoeko/zugferd/commit/56af827) | 2024-06-10 16:42:16 CEST | OLLIVAULT | Update ZugferdDocumentBuilder.php | 
+
+## v1.0.54
+
+``Previous version v1.0.53``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [fa2691d](https://github.com/horstoeko/zugferd/commit/fa2691d) | 2024-06-06 19:13:44 CEST | OLLIVAULT | Update ZugferdDocumentBuilder.php | 
+
+## v1.0.53
+
+``Previous version v1.0.52``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [66e1f9c](https://github.com/horstoeko/zugferd/commit/66e1f9c) | 2024-06-05 17:00:35 CEST | OLLIVAULT | Create ZugferdElectronicAddressScheme.php | 
+| :new_moon:  | [67af479](https://github.com/horstoeko/zugferd/commit/67af479) | 2024-06-05 16:42:18 CEST | OLLIVAULT | Create ZugferdVATExemptionReasonCode.php | 
+| :new_moon:  | [c30973f](https://github.com/horstoeko/zugferd/commit/c30973f) | 2024-06-05 16:07:05 CEST | OLLIVAULT | Update ZugferdInvoiceType.php | 
+| :new_moon:  | [296022d](https://github.com/horstoeko/zugferd/commit/296022d) | 2024-06-05 16:02:33 CEST | OLLIVAULT | Update ZugferdInvoiceType.php | 
+| :new_moon:  | [2069cf8](https://github.com/horstoeko/zugferd/commit/2069cf8) | 2024-06-05 15:46:53 CEST | OLLIVAULT | Update ZugferdSchemeIdentifiers.php | 
+| :new_moon:  | [15fbe68](https://github.com/horstoeko/zugferd/commit/15fbe68) | 2024-06-05 15:09:28 CEST | OLLIVAULT | Detailed Input Value References in DocumentBuilder | 
+| :new_moon:  | [99af9f9](https://github.com/horstoeko/zugferd/commit/99af9f9) | 2024-06-05 15:03:53 CEST | OLLIVAULT | Detailed Input Value References in DocumentBuilder | 
+
+## v1.0.52
+
+``Previous version v1.0.51``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [63d1108](https://github.com/horstoeko/zugferd/commit/63d1108) | 2024-05-31 19:29:34 CEST | HorstOeko | ZugferdDocumentPdfBuilder -> Clean | 
+
+## v1.0.51
+
+``Previous version v1.0.49``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9e036d4](https://github.com/horstoeko/zugferd/commit/9e036d4) | 2024-05-31 19:20:07 CEST | HorstOeko | Fix ZugferdDocumentPdfBuilder -> static::fromPdfFile | 
+| :new_moon:  | [8f7e8f1](https://github.com/horstoeko/zugferd/commit/8f7e8f1) | 2024-05-31 16:55:28 CEST | OLLIVAULT | Detailed Input Value References in DocumentBuilder (Up to EN 16931, Work in Progress) | 
+| :new_moon:  | [ac76dba](https://github.com/horstoeko/zugferd/commit/ac76dba) | 2024-05-30 14:31:22 CEST | OLLIVAULT | Detailed Input Value References in DocumentBuilder | 
+
+## v1.0.50
+
+``Previous version v1.0.48``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [04a4d79](https://github.com/horstoeko/zugferd/commit/04a4d79) | 2024-05-30 15:47:58 CEST | Daniel Marschall | Fixed problem with ZugferdSettings special decimal places. Fixes | [#73](https://github.com/horstoeko/zugferd/issues/73)
+| :new_moon:  | [3aa3fc8](https://github.com/horstoeko/zugferd/commit/3aa3fc8) | 2024-05-29 19:24:15 CEST | Daniel Marschall | Fix typo | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.48
+
+``Previous version v1.0.47``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [c018035](https://github.com/horstoeko/zugferd/commit/c018035) | 2024-05-29 17:03:11 CEST | HorstOeko | Fix for "Cannot access private property" | 
+| :new_moon:  | [41f69cd](https://github.com/horstoeko/zugferd/commit/41f69cd) | 2024-05-29 15:57:22 CEST | Daniel Marschall | Remove unnecessary comment | 
+| :new_moon:  | [ffa5204](https://github.com/horstoeko/zugferd/commit/ffa5204) | 2024-05-29 15:56:06 CEST | Daniel Marschall | Fix CI | 
+| :new_moon:  | [538397b](https://github.com/horstoeko/zugferd/commit/538397b) | 2024-05-29 15:16:57 CEST | Daniel Marschall | Fixed problem with Country ID at profile minimum (Fixes ) | [#66](https://github.com/horstoeko/zugferd/issues/66)
+| :new_moon:  | [a0f8b04](https://github.com/horstoeko/zugferd/commit/a0f8b04) | 2024-05-29 05:12:17 CEST | HorstOeko | Added method setUnitAmountDecimals to ZugferdSettings | 
+| :new_moon:  | [d5b192a](https://github.com/horstoeko/zugferd/commit/d5b192a) | 2024-05-28 17:59:58 CEST | HorstOeko | Define decimal places for node paths | 
+| :new_moon:  | [3efed44](https://github.com/horstoeko/zugferd/commit/3efed44) | 2024-05-28 16:29:18 CEST | Fabian Blechschmidt | Fix typo taxCategpryCodes -> taxCategoryCodes | 
+| :new_moon:  | [d292f8a](https://github.com/horstoeko/zugferd/commit/d292f8a) | 2024-05-26 10:16:55 CEST | Daniel Marschall | ZugferdDocumentPdfReader aceepts ZUGFeRD 1.0 filenames on unix systems | 
+| :new_moon:  | [4d9485a](https://github.com/horstoeko/zugferd/commit/4d9485a) | 2024-05-24 12:41:22 CEST | Fabian Blechschmidt | Add second static factory | 
+| :new_moon:  | [07adeac](https://github.com/horstoeko/zugferd/commit/07adeac) | 2024-05-24 10:28:18 CEST | Fabian Blechschmidt | Add static factory for existing files | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.47
+
+``Previous version v1.0.45``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [7a5a8b7](https://github.com/horstoeko/zugferd/commit/7a5a8b7) | 2024-05-23 05:12:53 CEST | Daniel Marschall | Added $paymentReference to addDocumentPaymentMeanToCreditTransfer() () | [#55](https://github.com/horstoeko/zugferd/issues/55)
+| :new_moon:  | [8f86816](https://github.com/horstoeko/zugferd/commit/8f86816) | 2024-05-23 05:07:08 CEST | Daniel Marschall | addDocumentPaymentMeanToDirectDebit() now contains $creditorReferenceID parameter () | [#54](https://github.com/horstoeko/zugferd/issues/54)
+
+## v1.0.46
+
+``Previous version v1.0.44``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [c9eb2f2](https://github.com/horstoeko/zugferd/commit/c9eb2f2) | 2024-05-21 16:19:59 CEST | Daniel Marschall | Typo | 
+| :new_moon:  | [a60c731](https://github.com/horstoeko/zugferd/commit/a60c731) | 2024-05-21 16:18:43 CEST | Daniel Marschall | Introduced ZugferdDocumentPdfBuilderAbstract::getCreatorToolName() | 
+| :new_moon:  | [a40ce4f](https://github.com/horstoeko/zugferd/commit/a40ce4f) | 2024-05-21 11:48:40 CEST | Daniel Marschall | Added setAdditionalCreatorTool() to the PDF builder | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.44
+
+``Previous version v1.0.43``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [a0d82cc](https://github.com/horstoeko/zugferd/commit/a0d82cc) | 2024-05-16 18:19:44 CEST | HorstOeko | More granular eception (class) for several error situations | 
+| :new_moon:  | [5daa391](https://github.com/horstoeko/zugferd/commit/5daa391) | 2024-05-16 11:41:32 CEST | HorstOeko | Fix filename of ExtendedPdfReader,php example | 
+| :new_moon:  | [e87f749](https://github.com/horstoeko/zugferd/commit/e87f749) | 2024-05-16 05:41:43 CEST | HorstOeko | Example with the different possibilities to work with discounts/surcharges added | 
+
+## v1.0.43
+
+:exclamation: _There is one internal commit_
+
+## v1.0.42
+
+``Previous version v1.0.41``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [2c1f188](https://github.com/horstoeko/zugferd/commit/2c1f188) | 2024-05-11 11:26:10 CEST | HorstOeko | Added Seeker and Getter to ZugferdDocumentReader for Product Characteristics, Product Classifications and Referenced Products (at position level) | 
+| :new_moon:  | [5ed8d50](https://github.com/horstoeko/zugferd/commit/5ed8d50) | 2024-05-07 17:02:07 CEST | HorstOeko | Added Test for Issue | [#43](https://github.com/horstoeko/zugferd/issues/43)
+| :new_moon:  | [bfa1560](https://github.com/horstoeko/zugferd/commit/bfa1560) | 2024-05-07 05:50:06 CEST | HorstOeko | ZugferdKositValidator -> Made message bag type constants private | 
+| :new_moon:  | [e077217](https://github.com/horstoeko/zugferd/commit/e077217) | 2024-05-06 11:18:29 CEST | Markus GÃ€rtner | Wrong Tax | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.41
+
+``Previous version v1.0.40``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [fdc381c](https://github.com/horstoeko/zugferd/commit/fdc381c) | 2024-04-18 05:54:58 CEST | HorstOeko | Added codelist for "Accounting Accounts Classification" (EDIFICASEU_AccountingAccountsClassificationType_D10A) | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.40
+
+``Previous version v1.0.39``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ac81ad1](https://github.com/horstoeko/zugferd/commit/ac81ad1) | 2024-04-13 08:45:07 CEST | HorstOeko | KositValidator -> Better message handling, New method to retrieve the output of the JAVA-Validator-Output (getProcessOutput) | 
+
+## v1.0.39
+
+``Previous version v1.0.38``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [30c593c](https://github.com/horstoeko/zugferd/commit/30c593c) | 2024-04-12 12:58:48 CEST | HorstOeko | KositValidator -> Cache downloaded versions | 
+| :new_moon:  | [e802b0a](https://github.com/horstoeko/zugferd/commit/e802b0a) | 2024-04-12 11:11:54 CEST | HorstOeko | KositValidator -> Fix download filename | 
+| :new_moon:  | [fc27ef7](https://github.com/horstoeko/zugferd/commit/fc27ef7) | 2024-04-12 08:48:43 CEST | HorstOeko | KostValidator -> Improvements, Better message handling, Updated usage example | 
+| :new_moon:  | [dd4e4cc](https://github.com/horstoeko/zugferd/commit/dd4e4cc) | 2024-04-10 05:19:37 CEST | HorstOeko | KositValidator Optimizations | 
+| :new_moon:  | [d8f3dfe](https://github.com/horstoeko/zugferd/commit/d8f3dfe) | 2024-04-09 05:44:07 CEST | HorstOeko | Made more options configurable in KositValidator | 
+| :new_moon:  | [0ff5c09](https://github.com/horstoeko/zugferd/commit/0ff5c09) | 2024-04-09 05:36:27 CEST | HorstOeko | Improvements, Restructuring on ZugferdKositValidator | 
+| :new_moon:  | [5b25a3d](https://github.com/horstoeko/zugferd/commit/5b25a3d) | 2024-04-08 05:47:25 CEST | HorstOeko | Added prototype of kosIT Validator | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.38
+
+``Previous version v1.0.37``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [47730d3](https://github.com/horstoeko/zugferd/commit/47730d3) | 2024-04-05 05:38:38 CEST | HorstOeko | Added method "setDocumentBusinessProcess" to ZugferdDocumentBuilder for setting the BusinessProcessSpecifiedDocumentContextParameter-Element | 
+| :new_moon:  | [a4acca4](https://github.com/horstoeko/zugferd/commit/a4acca4) | 2024-03-28 14:41:16 CET | HorstOeko | Added moew unit tests for better test coverage | 
+
+## v1.0.37
+
+``Previous version v1.0.36``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [6e1d4d0](https://github.com/horstoeko/zugferd/commit/6e1d4d0) | 2024-03-24 12:26:00 CET | HorstOeko | Added Fix and a Test for Issue 32 | 
+| :new_moon:  | [eb570a0](https://github.com/horstoeko/zugferd/commit/eb570a0) | 2024-03-24 11:17:34 CET | HorstOeko | Added Scripts for generating Codelists | 
+| :new_moon:  | [f05021f](https://github.com/horstoeko/zugferd/commit/f05021f) | 2024-03-12 05:20:50 CET | HorstOeko | Fix some PHPStan issues | 
+
+## v1.0.36
+
+``Previous version v1.0.35``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0d15c30](https://github.com/horstoeko/zugferd/commit/0d15c30) | 2024-03-11 05:34:59 CET | HorstOeko | Added new ZugferdXsdValidator | 
+
+## v1.0.35
+
+``Previous version v1.0.34``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [56bc31d](https://github.com/horstoeko/zugferd/commit/56bc31d) | 2024-03-10 08:15:59 CET | HorstOeko | Internal changes of InvoiceObject Handling | 
+| :new_moon:  | [bd47b83](https://github.com/horstoeko/zugferd/commit/bd47b83) | 2024-03-10 08:02:00 CET | HorstOeko | Members "invoiceObject" and "objectHelper" of ZugferdDocument now private (changed visibillity) | 
+| :new_moon:  | [f25afe1](https://github.com/horstoeko/zugferd/commit/f25afe1) | 2024-03-09 09:34:28 CET | HorstOeko | Adding method "getProfileDefinitionParameter" to ZugferdDocument for resolving options for the specific profile | 
+| :new_moon:  | [32a3ab3](https://github.com/horstoeko/zugferd/commit/32a3ab3) | 2024-03-09 08:50:29 CET | HorstOeko | Made properties "profileId", "profileDefinition", "serializerBuilder" and "serializer" private | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.34
+
+``Previous version v1.0.33``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [963b8ab](https://github.com/horstoeko/zugferd/commit/963b8ab) | 2024-01-27 10:14:13 CET | HorstOeko | Make XMP Meta Data filename configurable | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.33
+
+``Previous version v1.0.32``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9663fa5](https://github.com/horstoeko/zugferd/commit/9663fa5) | 2024-01-23 10:18:35 CET | Dominik Kohler | Fixed php requirement (caret constraint) | 
+| :new_moon:  | [abd8f69](https://github.com/horstoeko/zugferd/commit/abd8f69) | 2024-01-23 09:53:12 CET | Dominik Kohler | Run tests also for newer PHP releases | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.32
+
+``Previous version v1.0.31``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [aa6db69](https://github.com/horstoeko/zugferd/commit/aa6db69) | 2024-01-22 10:47:46 CET | Daniel Khalil | Add inline file output | 
+| :new_moon:  | [6dfbc96](https://github.com/horstoeko/zugferd/commit/6dfbc96) | 2023-12-17 13:50:08 CET | HorstOeko | Renamed file | 
+| :new_moon:  | [19deb90](https://github.com/horstoeko/zugferd/commit/19deb90) | 2023-10-18 06:15:01 CEST | HorstOeko | Fix type in variable name in ZugferdDocumentPdfBuilder | 
+
+:exclamation: _There are 6 internal commit(s)_
+
+## v1.0.31
+
+``Previous version v1.0.30``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [d1cdb21](https://github.com/horstoeko/zugferd/commit/d1cdb21) | 2023-10-12 18:05:51 CEST | HorstOeko | Centralisation of profile recognition -> Fix self vs. static | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [ebb3357](https://github.com/horstoeko/zugferd/commit/ebb3357) | 2023-10-12 17:46:52 CEST | HorstOeko | Centralisation of profile recognition -> Renamed variables | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [bf6765c](https://github.com/horstoeko/zugferd/commit/bf6765c) | 2023-10-12 17:45:44 CEST | HorstOeko | Centralisation of profile recognition -> Removed constructor from ZugferdDocumentBuilder | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [9c69850](https://github.com/horstoeko/zugferd/commit/9c69850) | 2023-10-12 17:41:33 CEST | HorstOeko | Centralisation of profile recognition -> Fixed malformed use clauses | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [170ebb0](https://github.com/horstoeko/zugferd/commit/170ebb0) | 2023-10-12 17:38:29 CEST | HorstOeko | Centralisation of profile recognition -> Some internal fixes | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [cc3bc1a](https://github.com/horstoeko/zugferd/commit/cc3bc1a) | 2023-10-12 17:26:18 CEST | HorstOeko | Centralisation of profile recognition -> Use in ZugferdDocument and ZugferdObjectHelper | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [e13d6e0](https://github.com/horstoeko/zugferd/commit/e13d6e0) | 2023-10-12 06:23:28 CEST | HorstOeko | Centralisation of profile recognition -> Added methods to ZugferdProfileResolver for resolving profile definition by profile id | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [e3c1953](https://github.com/horstoeko/zugferd/commit/e3c1953) | 2023-10-12 06:06:09 CEST | HorstOeko | Centralisation of profile recognition -> Using ZugferdProfileResolver in ZugferdDocumentPdfMerger and ZugferdDocumentReader | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [7af4d01](https://github.com/horstoeko/zugferd/commit/7af4d01) | 2023-10-12 05:52:26 CEST | HorstOeko | Centralisation of profile recognition -> Added tests to phpunit.xml | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [8db2564](https://github.com/horstoeko/zugferd/commit/8db2564) | 2023-10-12 05:48:53 CEST | HorstOeko | Centralisation of profile recognition -> Added ZugferdProfileResolver, Added tests for the new ZugferdProfileResolver | [#25](https://github.com/horstoeko/zugferd/issues/25)
+| :new_moon:  | [6fe3b13](https://github.com/horstoeko/zugferd/commit/6fe3b13) | 2023-10-09 05:50:54 CEST | HorstOeko | For more clarity, internal variables have been renamed | 
+| :new_moon:  | [8090763](https://github.com/horstoeko/zugferd/commit/8090763) | 2023-10-09 05:24:57 CEST | HorstOeko | Creating new pdf builder tests (internal methods) | 
+| :new_moon:  | [1d8899c](https://github.com/horstoeko/zugferd/commit/1d8899c) | 2023-10-03 14:36:08 CEST | HorstOeko | Removed is_writable in ZugferdDocumentReader::setBinaryDataDirectory | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.30
+
+``Previous version v1.0.29``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [b5e8565](https://github.com/horstoeko/zugferd/commit/b5e8565) | 2023-09-30 15:42:02 CEST | HorstOeko | Added __toString-Tests for all Builder-Tests | 
+| :new_moon:  | [73b0ace](https://github.com/horstoeko/zugferd/commit/73b0ace) | 2023-09-30 15:17:12 CEST | HorstOeko | Added magic method __toString to ZugferdDocumentBuilder to receive the XML content | 
+| :new_moon:  | [85a4a19](https://github.com/horstoeko/zugferd/commit/85a4a19) | 2023-09-30 07:00:26 CEST | HorstOeko | More clarity in the ZugferdDocumentPdfMerger example | 
+
+:exclamation: _There are 33 internal commit(s)_
+
+## v1.0.29
+
+``Previous version v1.0.28``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9fb81e2](https://github.com/horstoeko/zugferd/commit/9fb81e2) | 2023-09-23 08:15:04 CEST | HorstOeko | Removed dependency to adrienrn/php-mimetyper and replaced it with horstoeko/mimedb | 
+| :new_moon:  | [22d8422](https://github.com/horstoeko/zugferd/commit/22d8422) | 2023-09-22 05:35:14 CEST | HorstOeko | Fix parameter declarations in ObjectHelper | 
+| :new_moon:  | [7e30f6a](https://github.com/horstoeko/zugferd/commit/7e30f6a) | 2023-09-14 16:16:49 CEST | HorstOeko | Added new CI.YML for multiple php versions | 
+| :new_moon:  | [0b8f201](https://github.com/horstoeko/zugferd/commit/0b8f201) | 2023-09-14 16:16:05 CEST | HorstOeko | Added new CI.YML for multiple php versions | 
+| :new_moon:  | [562cc39](https://github.com/horstoeko/zugferd/commit/562cc39) | 2023-09-14 06:23:31 CEST | HorstOeko | Rework/Cleanup Examples | 
+| :new_moon:  | [25736f4](https://github.com/horstoeko/zugferd/commit/25736f4) | 2023-09-13 06:09:14 CEST | HorstOeko | Added Example for the JSON Exporter | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.28
+
+``Previous version v1.0.27``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [be78b1b](https://github.com/horstoeko/zugferd/commit/be78b1b) | 2023-09-12 16:54:01 CEST | HorstOeko | Added methods for buyers and sellers electronic communication information in QuickDescriptors | 
+| :new_moon:  | [55135c2](https://github.com/horstoeko/zugferd/commit/55135c2) | 2023-09-12 16:25:59 CEST | HorstOeko | Better Schematron-Checks-Cleanup | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.27
+
+``Previous version v1.0.26``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ef6c00f](https://github.com/horstoeko/zugferd/commit/ef6c00f) | 2023-09-12 07:15:56 CEST | HorstOeko | Failonerror="false" for Schematron Checks | 
+| :new_moon:  | [295ada2](https://github.com/horstoeko/zugferd/commit/295ada2) | 2023-09-12 07:08:52 CEST | HorstOeko | Added QuickDescriptor for XRechnung 3 | 
+| :new_moon:  | [dc8e42a](https://github.com/horstoeko/zugferd/commit/dc8e42a) | 2023-09-12 06:49:49 CEST | HorstOeko | Updated to Validation Tool 1.5.0, New validation config | 
+| :new_moon:  | [d63c94e](https://github.com/horstoeko/zugferd/commit/d63c94e) | 2023-09-11 18:26:46 CEST | HorstOeko | Revert "Updated to validationtool-1.5.0-standalone.jar" | 
+| :new_moon:  | [89001a1](https://github.com/horstoeko/zugferd/commit/89001a1) | 2023-09-11 18:22:15 CEST | HorstOeko | Updated to validationtool-1.5.0-standalone.jar | 
+| :new_moon:  | [d4bfa66](https://github.com/horstoeko/zugferd/commit/d4bfa66) | 2023-09-11 18:09:01 CEST | HorstOeko | Revert "Actions -< use 2.3.1 validation config" | 
+| :new_moon:  | [bdff92c](https://github.com/horstoeko/zugferd/commit/bdff92c) | 2023-09-11 18:06:06 CEST | HorstOeko | Actions -< use 2.3.1 validation config | 
+| :new_moon:  | [4e44b09](https://github.com/horstoeko/zugferd/commit/4e44b09) | 2023-09-11 17:59:41 CEST | HorstOeko | Revert "Use the latest Kosit-Validation tool" | 
+| :new_moon:  | [7ca201b](https://github.com/horstoeko/zugferd/commit/7ca201b) | 2023-09-11 17:55:46 CEST | HorstOeko | Use older validation tool | 
+| :new_moon:  | [86026ac](https://github.com/horstoeko/zugferd/commit/86026ac) | 2023-09-11 17:40:24 CEST | HorstOeko | Use the latest Kosit-Validation tool | 
+| :new_moon:  | [aa68cc2](https://github.com/horstoeko/zugferd/commit/aa68cc2) | 2023-09-08 15:26:09 CEST | HorstOeko | Set DocumentFileName in XMP-Metadata by profile definition | 
+| :new_moon:  | [9b4474e](https://github.com/horstoeko/zugferd/commit/9b4474e) | 2023-09-07 07:07:12 CEST | HorstOeko | Add support for UniversalCommunication (Seller and Buyer) | 
+| :new_moon:  | [c7f6e7f](https://github.com/horstoeko/zugferd/commit/c7f6e7f) | 2023-09-06 15:30:11 CEST | HorstOeko | Define businessprocess in profiles | 
+| :new_moon:  | [ed2106c](https://github.com/horstoeko/zugferd/commit/ed2106c) | 2023-09-06 13:30:49 CEST | HorstOeko | Added Profile "PROFILE_XRECHNUNG_3" | [#18](https://github.com/horstoeko/zugferd/issues/18)
+| :new_moon:  | [d89d4a4](https://github.com/horstoeko/zugferd/commit/d89d4a4) | 2023-09-06 13:22:57 CEST | HorstOeko | Added Profile "PROFILE_XRECHNUNG_2_3" | [#18](https://github.com/horstoeko/zugferd/issues/18)
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.26
+
+``Previous version v1.0.25``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [2a7541a](https://github.com/horstoeko/zugferd/commit/2a7541a) | 2023-08-18 05:05:43 CEST | HorstOeko | Fix ZugferdDocumentPdfBuilderAbstract | 
+
+## v1.0.25
+
+``Previous version v1.0.24``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [04aeb4f](https://github.com/horstoeko/zugferd/commit/04aeb4f) | 2023-08-18 04:59:52 CEST | HorstOeko | Renamed ZugferdDocumentAbstractPdfBuilder to ZugferdDocumentPdfBuilderAbstract | 
+
+## v1.0.24
+
+``Previous version v1.0.23``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [be26511](https://github.com/horstoeko/zugferd/commit/be26511) | 2023-08-17 05:11:15 CEST | HorstOeko | Adding XMLDataCache to ZugferdDocumentPdfBuilder (like ZugferdDocumentPdfMerger) | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.23
+
+``Previous version v1.0.21``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [bb55417](https://github.com/horstoeko/zugferd/commit/bb55417) | 2023-08-16 19:39:36 CEST | HorstOeko | Removed useless cache-options from ZugferdDocumentPdfMerger | 
+
+## v1.0.22
+
+``Previous version v1.0.20``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [a0eaa90](https://github.com/horstoeko/zugferd/commit/a0eaa90) | 2023-08-16 16:37:49 CEST | HorstOeko | Added Example for ZugferdDocumentPdfMerger (En16931PdfMerger) | [#14](https://github.com/horstoeko/zugferd/issues/14)
+| :new_moon:  | [75e7ff6](https://github.com/horstoeko/zugferd/commit/75e7ff6) | 2023-08-16 16:29:29 CEST | HorstOeko | Final ZugferdDocumentPdfMerger | [#14](https://github.com/horstoeko/zugferd/issues/14)
+| :new_moon:  | [cec9e77](https://github.com/horstoeko/zugferd/commit/cec9e77) | 2023-08-16 16:24:25 CEST | HorstOeko | Introducing the ZugferdDocumentPdfMerger | [#14](https://github.com/horstoeko/zugferd/issues/14)
+| :new_moon:  | [2d27efa](https://github.com/horstoeko/zugferd/commit/2d27efa) | 2023-08-16 12:23:41 CEST | David Bomba | Add string output as option | 
+
+## v1.0.20
+
+``Previous version v1.0.19``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [4a5446e](https://github.com/horstoeko/zugferd/commit/4a5446e) | 2023-07-04 17:10:47 CEST | HorstOeko | Added method setDocumentRoutingId to ZugferdDocumentBuilder | [#12](https://github.com/horstoeko/zugferd/issues/12)
+| :new_moon:  | [ff48359](https://github.com/horstoeko/zugferd/commit/ff48359) | 2023-07-04 16:59:06 CEST | HorstOeko | Added \minimum\udt\AmountType to ZugferdTypesHandler | [#11](https://github.com/horstoeko/zugferd/issues/11)
+| :new_moon:  | [e87cdd8](https://github.com/horstoeko/zugferd/commit/e87cdd8) | 2023-07-03 16:47:16 CEST | HorstOeko | Removed useless code from Issue10Test | 
+| :new_moon:  | [b8fad9a](https://github.com/horstoeko/zugferd/commit/b8fad9a) | 2023-07-03 16:40:53 CEST | HorstOeko | Added Unit-Testss | [#10](https://github.com/horstoeko/zugferd/issues/10)
+
+:exclamation: _There is one internal commit_
+
+## v1.0.19
+
+``Previous version v1.0.18``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [2432b4f](https://github.com/horstoeko/zugferd/commit/2432b4f) | 2023-05-16 06:16:15 CEST | HorstOeko | Added Tests for MINIMUM-Profile, Fix YAML Definitions | 
+| :new_moon:  | [0ab1a9b](https://github.com/horstoeko/zugferd/commit/0ab1a9b) | 2023-05-15 17:22:12 CEST | HorstOeko | Added missing FACTUR-X_MINIMUM_codedb.xml | 
+| :new_moon:  | [f1bc40e](https://github.com/horstoeko/zugferd/commit/f1bc40e) | 2023-05-15 06:05:57 CEST | HorstOeko | Always enable auto resizing | [#9](https://github.com/horstoeko/zugferd/issues/9)
+| :new_moon:  | [de15bc4](https://github.com/horstoeko/zugferd/commit/de15bc4) | 2023-05-15 05:49:17 CEST | HorstOeko | Add minimum profile, no tests | 
+
+## v1.0.18
+
+``Previous version v1.0.17``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [569b4f5](https://github.com/horstoeko/zugferd/commit/569b4f5) | 2023-04-17 10:54:05 CEST | UP | Version bump of smalot/pdfparser to allow php >=8.0 | 
+| :new_moon:  | [bce6df1](https://github.com/horstoeko/zugferd/commit/bce6df1) | 2023-02-17 20:09:24 CET | HorstOeko | Fix namespace for ReaderXRechnungSimpleTest | 
+
+## v1.0.17
+
+``Previous version v1.0.16``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [35ce9d0](https://github.com/horstoeko/zugferd/commit/35ce9d0) | 2023-02-17 16:45:17 CET | HorstOeko | Fixed several code issues issued by PHPStan | 
+| :new_moon:  | [0d609d3](https://github.com/horstoeko/zugferd/commit/0d609d3) | 2023-02-17 16:20:04 CET | HorstOeko | Merge with PDFWriter of Order-X-Library | 
+| :new_moon:  | [c7712a4](https://github.com/horstoeko/zugferd/commit/c7712a4) | 2023-02-17 05:31:39 CET | HorstOeko | Wrapper for deprecated utf8_encode function in PdfWriter | 
+| :new_moon:  | [2c2e360](https://github.com/horstoeko/zugferd/commit/2c2e360) | 2023-02-17 05:26:00 CET | HorstOeko | Wrapper for deprecated utf8_encode function in PdfWriter | 
+| :new_moon:  | [bf68404](https://github.com/horstoeko/zugferd/commit/bf68404) | 2023-02-16 05:33:51 CET | HorstOeko | Removed direct access to document properties | 
+| :new_moon:  | [cee9070](https://github.com/horstoeko/zugferd/commit/cee9070) | 2023-02-16 05:33:09 CET | HorstOeko | Rework JSON exporter | 
+| :new_moon:  | [83ab16a](https://github.com/horstoeko/zugferd/commit/83ab16a) | 2023-02-15 17:00:50 CET | HorstOeko | Optimized PDF Build | 
+
+:exclamation: _There are 7 internal commit(s)_
+
+## v1.0.16
+
+``Previous version v1.0.15``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [7f05d1b](https://github.com/horstoeko/zugferd/commit/7f05d1b) | 2023-02-14 06:22:14 CET | HorstOeko | Fix null-value for CardID in addDocumentPaymentMean of ZugferdDocumentBuilder | 
+| :new_moon:  | [51741fc](https://github.com/horstoeko/zugferd/commit/51741fc) | 2023-02-14 05:24:32 CET | HorstOeko | Added missing tests for ZugferdSettings and ZugferdPackageVersion classes | 
+| :new_moon:  | [8275a2b](https://github.com/horstoeko/zugferd/commit/8275a2b) | 2023-02-13 19:59:06 CET | HorstOeko | Introducing ZugferdSettings class for configuring the library | 
+
+:exclamation: _There are 6 internal commit(s)_
+
+## v1.0.15
+
+``Previous version v1.0.14``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [008dd6d](https://github.com/horstoeko/zugferd/commit/008dd6d) | 2023-02-12 13:05:32 CET | HorstOeko | Removed docs - the will be deployed within the release process | 
+
+:exclamation: _There are 5 internal commit(s)_
+
+## v1.0.14
+
+:exclamation: _There are 19 internal commit(s)_
+
+## v1.0.13
+
+``Previous version v1.0.12``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [0a99d41](https://github.com/horstoeko/zugferd/commit/0a99d41) | 2023-01-26 06:10:45 CET | HorstOeko | Publish package version to PDF, Therefore add a new class ZugferdPackageVersion | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.12
+
+``Previous version v1.0.11``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [9849ef3](https://github.com/horstoeko/zugferd/commit/9849ef3) | 2022-12-25 21:03:21 CET | HorstOeko | Fix for getDocumentSummation -> taxTotalAmount | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.11
+
+``Previous version v1.0.10``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [efeb516](https://github.com/horstoeko/zugferd/commit/efeb516) | 2022-09-26 10:36:04 CEST | Brice Flaceliere | Fix context parameter for wasic-wl profile | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.10
+
+``Previous version v1.0.9``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [1fc45b6](https://github.com/horstoeko/zugferd/commit/1fc45b6) | 2022-06-18 10:08:50 CEST | HorstOeko | Added a json export class for exporting ZugferdDocument as a json string, a json object or a pretty printed json string, Added an example for this feature | 
+| :new_moon:  | [2e90762](https://github.com/horstoeko/zugferd/commit/2e90762) | 2022-06-18 10:04:42 CEST | HorstOeko | Added a json export class for exporting ZugferdDocument as a json string, a json object or a pretty printed json string, Added an example for this feature | 
+| :new_moon:  | [d9fb576](https://github.com/horstoeko/zugferd/commit/d9fb576) | 2022-06-18 09:07:20 CEST | HorstOeko | Fix example En16931ReaderPdf | 
+| :new_moon:  | [6abf0fb](https://github.com/horstoeko/zugferd/commit/6abf0fb) | 2022-06-16 18:46:09 CEST | HorstOeko | Added new example: Read a PDF-document with embedded XML | 
+
+:exclamation: _There are 3 internal commit(s)_
+
+## v1.0.9
+
+``Previous version v1.0.8``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [5a0b24b](https://github.com/horstoeko/zugferd/commit/5a0b24b) | 2022-03-29 13:49:37 CEST | HorstOeko | Make tests compatible to PHP 7.x and PHP 8.x | 
+| :new_moon:  | [a66d02c](https://github.com/horstoeko/zugferd/commit/a66d02c) | 2022-03-29 13:41:15 CEST | HorstOeko | Make tests compatible to PHP 7.x and PHP 8.x | 
+| :new_moon:  | [483042c](https://github.com/horstoeko/zugferd/commit/483042c) | 2022-03-29 13:16:14 CEST | HorstOeko | Fixing PHP8 issues -> filemtime issues | 
+| :new_moon:  | [a958238](https://github.com/horstoeko/zugferd/commit/a958238) | 2022-03-29 12:47:32 CEST | HorstOeko | Fixing PHP8 issues -> is_file issues | 
+| :new_moon:  | [734acf3](https://github.com/horstoeko/zugferd/commit/734acf3) | 2022-03-29 12:21:31 CEST | HorstOeko | Fixing PHP8 issues -> method_exists wrapped | 
+| :new_moon:  | [9835961](https://github.com/horstoeko/zugferd/commit/9835961) | 2022-03-29 12:12:57 CEST | HorstOeko | Fixing PHP8 issues | 
+| :new_moon:  | [11a47e4](https://github.com/horstoeko/zugferd/commit/11a47e4) | 2022-03-29 12:08:01 CEST | HorstOeko | Fixing PHP8 issues | 
+| :new_moon:  | [9975990](https://github.com/horstoeko/zugferd/commit/9975990) | 2022-03-29 12:04:19 CEST | HorstOeko | Revert "Fixing PHP8 issues" | 
+| :new_moon:  | [0cdd79a](https://github.com/horstoeko/zugferd/commit/0cdd79a) | 2022-03-29 12:00:27 CEST | HorstOeko | Fixing PHP8 issues | 
+| :new_moon:  | [ef2673a](https://github.com/horstoeko/zugferd/commit/ef2673a) | 2022-03-29 11:09:02 CEST | HorstOeko | Require PHP 7.3 or 8.0 or 8.1 | 
+| :new_moon:  | [eea7a80](https://github.com/horstoeko/zugferd/commit/eea7a80) | 2022-03-29 10:52:24 CEST | HorstOeko | Removed restriction to php 7.3 -> Fix Action Title | 
+| :new_moon:  | [ad7bd75](https://github.com/horstoeko/zugferd/commit/ad7bd75) | 2022-03-29 10:51:22 CEST | HorstOeko | Removed restriction to php 7.3 | 
+
+:exclamation: _There is one internal commit_
+
+## v1.0.8
+
+``Previous version v1.0.7``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [ac004db](https://github.com/horstoeko/zugferd/commit/ac004db) | 2022-03-08 11:21:02 CET | HorstOeko | Added tests for payment means (EN16931, Extended) | 
+| :new_moon:  | [39df44f](https://github.com/horstoeko/zugferd/commit/39df44f) | 2022-03-08 09:21:53 CET | HorstOeko | Added more Builder-Tests for other tradeparty contacts | 
+| :new_moon:  | [c9c2921](https://github.com/horstoeko/zugferd/commit/c9c2921) | 2022-03-08 07:45:46 CET | HorstOeko | Added more Builder-Tests for Seller- and Buyer-Contact handling | 
+| :new_moon:  | [305ae87](https://github.com/horstoeko/zugferd/commit/305ae87) | 2022-03-06 14:57:48 CET | HorstOeko | Removed unused code | 
+| :new_moon:  | [9424557](https://github.com/horstoeko/zugferd/commit/9424557) | 2022-03-06 14:39:33 CET | HorstOeko | Method call fixtures | 
+| :new_moon:  | [ea2f8fb](https://github.com/horstoeko/zugferd/commit/ea2f8fb) | 2022-03-06 12:00:55 CET | HorstOeko | Added seekers (first/next) for tradeparty contact information. Useful in EXTENDED Profile which allows multiple contacts per TradeParty | 
+| :new_moon:  | [94541cf](https://github.com/horstoeko/zugferd/commit/94541cf) | 2022-03-05 09:21:44 CET | HorstOeko | TradeContact Handling | 
+| :new_moon:  | [7442316](https://github.com/horstoeko/zugferd/commit/7442316) | 2022-03-04 20:45:43 CET | HorstOeko | Code optimization in Document Pdf Builder | 
+| :new_moon:  | [7815f90](https://github.com/horstoeko/zugferd/commit/7815f90) | 2022-03-04 20:45:43 CET | HorstOeko | Code optimization in Document Pdf Builder | 
+| :new_moon:  | [d36f713](https://github.com/horstoeko/zugferd/commit/d36f713) | 2022-03-04 18:34:47 CET | HorstOeko | Removed changes | 
+| :new_moon:  | [117049d](https://github.com/horstoeko/zugferd/commit/117049d) | 2022-03-04 18:07:37 CET | HorstOeko | Initial Commit for ZUGFeRD 2.2 and Factur-X 1.0.06 | 
+| :new_moon:  | [e1b6ba4](https://github.com/horstoeko/zugferd/commit/e1b6ba4) | 2022-03-04 15:24:49 CET | HorstOeko | Reset Counters for position-subinformation on firstDocumentPosition and nextDocumentPosition | 
+| :new_moon:  | [6ccdfe5](https://github.com/horstoeko/zugferd/commit/6ccdfe5) | 2022-03-04 12:53:14 CET | HorstOeko | genclasses Script for WIndows | 
+| :new_moon:  | [23be2d3](https://github.com/horstoeko/zugferd/commit/23be2d3) | 2022-03-04 12:06:30 CET | HorstOeko | Fixed Directory Separator in Test | 
+
+:exclamation: _There are 14 internal commit(s)_
+
+## v1.0.7
+
+``Previous version v1.0.6``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [066c308](https://github.com/horstoeko/zugferd/commit/066c308) | 2022-02-20 10:05:06 CET | HorstOeko | Fix test code (BuilderEn16931Test) | 
+| :new_moon:  | [66fbbe8](https://github.com/horstoeko/zugferd/commit/66fbbe8) | 2022-02-20 09:05:43 CET | HorstOeko | Added profile XRechnung 2.1 and XRechnung 2.2 | 
+| :new_moon:  | [d6f2738](https://github.com/horstoeko/zugferd/commit/d6f2738) | 2022-02-19 16:30:57 CET | HorstOeko | Fix codelists | 
+| :new_moon:  | [17c380f](https://github.com/horstoeko/zugferd/commit/17c380f) | 2022-02-19 16:30:21 CET | HorstOeko | Fixed method names | 
+
+:exclamation: _There are 7 internal commit(s)_
+
+## v1.0.6
+
+``Previous version v1.0.5``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [f87212e](https://github.com/horstoeko/zugferd/commit/f87212e) | 2021-01-07 17:05:36 CET | HorstOeko | Added three new methods to the builder for adding quick payment means for SEPA Direct Debit, SEPA Credit Transfer and Payment Card | 
+| :new_moon:  | [cda68a9](https://github.com/horstoeko/zugferd/commit/cda68a9) | 2020-12-22 01:01:54 CET | HorstOeko | Some more test for empty value | 
+
+:exclamation: _There are 4 internal commit(s)_
+
+## v1.0.5
+
+``Previous version v1.0.4``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [8421903](https://github.com/horstoeko/zugferd/commit/8421903) | 2020-12-12 11:26:31 CET | HorstOeko | Fix type hinting in PDFReader | 
+| :new_moon:  | [d7ef4d5](https://github.com/horstoeko/zugferd/commit/d7ef4d5) | 2020-12-10 09:30:21 CET | HorstOeko | Charge Indicator fixes | 
+| :new_moon:  | [b4995e9](https://github.com/horstoeko/zugferd/commit/b4995e9) | 2020-12-09 06:41:50 CET | HorstOeko | More PDF builder tests | 
+| :new_moon:  | [65b8dd8](https://github.com/horstoeko/zugferd/commit/65b8dd8) | 2020-12-08 17:44:34 CET | HorstOeko | Added simple test for pdf builder | 
+| :new_moon:  | [c5043bd](https://github.com/horstoeko/zugferd/commit/c5043bd) | 2020-12-08 06:47:10 CET | HorstOeko | Added Test for the Basic Profile | 
+| :new_moon:  | [5c55159](https://github.com/horstoeko/zugferd/commit/5c55159) | 2020-12-07 06:15:56 CET | HorstOeko | Added more tests for BinaryAttachedObjects | 
+| :new_moon:  | [cdd0de9](https://github.com/horstoeko/zugferd/commit/cdd0de9) | 2020-12-06 14:18:17 CET | HorstOeko | Added tests for AdditionalReferencedDocuments (binary data) | 
+| :new_moon:  | [3c34218](https://github.com/horstoeko/zugferd/commit/3c34218) | 2020-12-06 13:05:06 CET | HorstOeko | Using StringManagement package | 
+
+:exclamation: _There are 8 internal commit(s)_
+
+## v1.0.4
+
+``Previous version v1.0.2``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [24f10df](https://github.com/horstoeko/zugferd/commit/24f10df) | 2020-12-05 11:50:11 CET | HorstOeko | Added mimetype restrictions for binary attached objects | 
+| :new_moon:  | [b530c10](https://github.com/horstoeko/zugferd/commit/b530c10) | 2020-12-05 10:48:43 CET | HorstOeko | Removed validation from Reader -> looking for a better and more generic solutions | 
+| :new_moon:  | [1191015](https://github.com/horstoeko/zugferd/commit/1191015) | 2020-12-05 10:42:38 CET | HorstOeko | Removed validation from Reader -> looking for a better and more generic solutions | 
+
+:exclamation: _There are 2 internal commit(s)_
+
+## v1.0.2
+
+``Previous version v1.0.1``
+
+| Type | Hash    | Date    | Author  | Subject  | Issue(s)
+| :--- | :------ | :------ | :------ | :------- | :-----------: 
+| :new_moon:  | [066daba](https://github.com/horstoeko/zugferd/commit/066daba) | 2020-12-03 17:01:16 CET | HorstOeko | Added XRechnung_2-Profile for XRechnung version 2.0, Added examples for XRechnung 2.0 | 
+| :new_moon:  | [fc9d629](https://github.com/horstoeko/zugferd/commit/fc9d629) | 2020-12-03 06:36:53 CET | HorstOeko | Switched profile of XRechnung back to 1.2 due errors | 
+| :new_moon:  | [d79f28c](https://github.com/horstoeko/zugferd/commit/d79f28c) | 2020-12-03 06:24:19 CET | HorstOeko | Added schematron validation to ANT buildscript, Changed XRechnung Profile from 1.2 to 2.0 | 
+| :new_moon:  | [8a26dbf](https://github.com/horstoeko/zugferd/commit/8a26dbf) | 2020-12-02 06:17:41 CET | HorstOeko | Added Quick-Descriptor for the Extended-Profile | 
+| :new_moon:  | [69eaf2f](https://github.com/horstoeko/zugferd/commit/69eaf2f) | 2020-12-02 06:14:29 CET | HorstOeko | Added Quick-Descriptor for the Extended-Profile | 
+| :new_moon:  | [928f917](https://github.com/horstoeko/zugferd/commit/928f917) | 2020-12-01 17:39:56 CET | HorstOeko | Added position note for the quick descriptor | 
+| :new_moon:  | [6a3e50d](https://github.com/horstoeko/zugferd/commit/6a3e50d) | 2020-12-01 17:29:58 CET | HorstOeko | Added position note for the quick descriptor | 
+| :new_moon:  | [0dc02e7](https://github.com/horstoeko/zugferd/commit/0dc02e7) | 2020-12-01 17:07:58 CET | HorstOeko | Removed non-working schemaValidate for schematron -> replace by TODO | 
+
+:exclamation: _There are 3 internal commit(s)_
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/build/phprectorconfig.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/build/phprectorconfig.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/build/phprectorconfig.php	(revision 8542)
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types=1);
+
+use Rector\CodingStyle\Rector\Encapsed\EncapsedStringsToSprintfRector;
+use Rector\Config\RectorConfig;
+use Rector\DeadCode\Rector\ClassMethod\RemoveUselessParamTagRector;
+use Rector\DeadCode\Rector\ClassMethod\RemoveUselessReturnTagRector;
+use Rector\Naming\Rector\Class_\RenamePropertyToMatchTypeRector;
+use Rector\Naming\Rector\ClassMethod\RenameParamToMatchTypeRector;
+use Rector\Naming\Rector\ClassMethod\RenameVariableToMatchNewTypeRector;
+use Rector\Set\ValueObject\SetList;
+
+return RectorConfig::configure()
+    ->withPaths([
+        __DIR__ . '/../examples',
+        __DIR__ . '/../make',
+        __DIR__ . '/../src',
+        __DIR__ . '/../tests',
+    ])
+    ->withSkip([
+        __DIR__ . '/../src/entities',
+        __DIR__ . '/../src/codelistsenum',
+    ])
+    ->withSkip([
+        RemoveUselessParamTagRector::class,
+        RemoveUselessReturnTagRector::class,
+    ])
+    ->withPhp73Sets()
+    ->withPreparedSets(
+        codeQuality: true,
+        codingStyle: true,
+        strictBooleans: true,
+        instanceOf: true,
+        earlyReturn: true,
+        phpunitCodeQuality: true,
+        privatization: true,
+        deadCode: true,
+        //
+        carbon: false,
+        doctrineCodeQuality: false,
+        naming: false,
+        rectorPreset: false,
+        symfonyCodeQuality: false,
+        symfonyConfigs: false,
+        typeDeclarations: false,
+    );
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/00_ExampleHelpers.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/00_ExampleHelpers.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/00_ExampleHelpers.php	(revision 8542)
@@ -0,0 +1,104 @@
+<?php
+
+use horstoeko\zugferd\ZugferdDocument;
+use horstoeko\zugferd\ZugferdKositValidator;
+
+/**
+ * Enable/Disable example remote validation against the KOSiT-Validator.
+ *
+ * @return boolean
+ */
+function validationEnabled(): bool
+{
+    return true;
+}
+
+/**
+ * Get the remote host (name or IP) where the KOSiT validator is running in daemon mode.
+ *
+ * @return string
+ */
+function getKositValidatorRemoteHost(): string
+{
+    return "127.0.0.1";
+}
+
+/**
+ * Get the remote port of the machine where the KOSiT validator is running in daemon mode.
+ *
+ * @return integer
+ */
+function getKositValidatorRemotePort(): int
+{
+    return 8081;
+}
+
+/**
+ * Helper functiom for validation using KOSiT-Validator.
+ * Returns the following values
+ * - 0 = Validation is disabled
+ * - 1 = Validation was successfull
+ * - 2 = Validation was not successfull
+ *
+ * @param  ZugferdDocument $zugferdDocument
+ * @return int
+ */
+function validateUsingKositValidator(ZugferdDocument $zugferdDocument): int
+{
+    if (!validationEnabled()) {
+        return 0;
+    }
+
+    $kositValidator = new ZugferdKositValidator();
+    $kositValidator->setDocument($zugferdDocument);
+    $kositValidator->enableRemoteMode();
+    $kositValidator->setRemoteModeHost(getKositValidatorRemoteHost());
+    $kositValidator->setRemoteModePort(getKositValidatorRemotePort());
+    $kositValidator->validate();
+
+    return $kositValidator->hasNoValidationErrors() ? 1 : 2;
+}
+
+/**
+ * Outputs a line to CLI. It uses sprintf.
+ *
+ * @param string $message
+ * @param mixed ...$args
+ * @return void
+ */
+function writeLnToCli(string $message, ...$args): void
+{
+    $output = sprintf($message, ...$args);
+
+    if (trim($output) !== '' && trim($output) !== '0') {
+        echo $output . PHP_EOL;
+    }
+}
+
+/**
+ * Write an empty line to CLI
+ *
+ * @return void
+ */
+function writeNewLineToCli(): void
+{
+    echo PHP_EOL;
+}
+
+/**
+ * Implode an associative array to form key=value
+ *
+ * @param string $separator
+ * @param array $array
+ * @return string
+ */
+function implodeAssocArray(string $separator, array $array): string
+{
+    return
+        implode(
+            $separator,
+            array_map(function ($key, $value) {
+                return sprintf("%s=%s", $key, $value);
+            }, array_keys($array), $array)
+        );
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_EN16931.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_EN16931.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_EN16931.php	(revision 8542)
@@ -0,0 +1,196 @@
+<?php
+
+use horstoeko\zugferd\codelists\ZugferdCountryCodes;
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\codelists\ZugferdElectronicAddressScheme;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\codelists\ZugferdReferenceCodeQualifiers;
+use horstoeko\zugferd\codelists\ZugferdUnitCodes;
+use horstoeko\zugferd\codelists\ZugferdVatCategoryCodes;
+use horstoeko\zugferd\codelists\ZugferdVatTypeCodes;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdProfiles;
+
+require __DIR__ . "/../vendor/autoload.php";
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we create a new invoice in EN16931-Profile (== COMFORT-Profile)
+
+$documentBuilder = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_EN16931);
+
+// General invoice Information
+
+$documentBuilder->setDocumentInformation(
+  'R-2024/00001',                                     // Invoice number (BT-1)
+  ZugferdInvoiceType::INVOICE,                        // Type "Invoice" (BT-3)
+  DateTime::createFromFormat('Ymd', '20241231'),      // Invoice fate (BT-2)
+  ZugferdCurrencyCodes::EURO                          // Invoice currency is EUR (Euro) (BT-5)
+);
+
+// Not mandatory, but welcome are details such as managing director, commercial register entry or similar
+
+$documentBuilder->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'LieferantenstraÃe 20' . PHP_EOL . '80333 MÃŒnchen' . PHP_EOL . 'Deutschland' . PHP_EOL . 'GeschÃ€ftsfÃŒhrer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG');
+
+// Indication of when the period covered by the invoice begins and when it ends. Also referred to as the delivery period
+
+$documentBuilder->setDocumentBillingPeriod(DateTime::createFromFormat('Ymd', '20250101'), DateTime::createFromFormat('Ymd', '20250131'), '01.01.2025 - 31.01.2025');
+
+// Add additional documents supporting the invoice
+// Type code 916 is used without exception for invoice justifying documents
+// First example: Specification of an external resource including the intended primary access method, e.g. http:// or ftp://
+// Second example: Specification of a local file to be included in the document as a BASE64-encoded attachment
+
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithUri('REFDOC-2024/00001-1', 'http.//some.url', 'Inhaltsstoffe Joghurt');
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithFile('REFDOC-2024/00001-2', __DIR__ . '/assets/00_AdditionalDocument.csv', 'Herkunftsnachweis TrennblÃ€tter');
+
+// Add details to the tender or lot reference. In some countries, a reference to the tender that led to the contract must be provided.
+// Type code 50 is used exclusively for the specification of the tender or lot reference
+
+$documentBuilder->addDocumentTenderOrLotReferenceDocument('LOS 738625');
+
+// Add details of the calculated object. Only the type code 130 is used to transmit an object identifier. Depending on the application,
+// an object identifier can be a subscription number, a telephone number, a meter reading, a vehicle, a person, etc.
+// Note: Additional documents of type code 130 may only be specified once.
+
+$documentBuilder->addDocumentInvoicedObjectReferenceDocument('125', ZugferdReferenceCodeQualifiers::SALE_PERS_NUMB); // Sales person number
+
+// Adding details to the associated contract
+// The contract reference should be assigned once in the context of the specific trading relationship and for a defined period of time.
+
+$documentBuilder->setDocumentContractReferencedDocument('CON-2024/2025-001');
+
+// Adding a detail to a project reference
+// Enter the identifier of the project to which the invoice refers and the name of the project.
+
+$documentBuilder->setDocumentProcuringProject('PROJ-2025-001-1', 'Allgemeine Dienstleistungen');
+
+// We should also define how payments are handled. In our case we want to use
+// a SEPA direct debit. We book from the IBAN DE12500105170648489890. We also provide a Creditor-Reference
+// We also need a creditor reference as the second parameter which is required for direct debit
+
+$documentBuilder->addDocumentPaymentMeanToDirectDebit('DE12500105170648489890', 'R-2024/00001');
+
+// We should also define the payment terms as a textual information
+// The first parameter defines the textual description of our payment terms.
+// The second parameter defines the due date of the invoice. As you have chosen a direct debit procedure, this is the date of the direct debit.
+// The third parameter defines the mandant reference which is required for direct debit
+
+$documentBuilder->addDocumentPaymentTerm('Wird von Konto DE12500105170648489890 abgebucht', DateTime::createFromFormat('Ymd', '20250131'), 'MANDATE-2024/000001');
+
+// An indispensable part of an invoice is the indication of the seller (supplier). Let's do that now.
+
+$documentBuilder->setDocumentSeller('Lieferant GmbH', '549910');
+$documentBuilder->addDocumentSellerGlobalId('4000001123452', '0088');
+$documentBuilder->addDocumentSellerTaxNumber('201/113/40209');
+$documentBuilder->addDocumentSellerVATRegistrationNumber('DE123456789');
+$documentBuilder->setDocumentSellerAddress('LieferantenstraÃe 20', '', '', '80333', 'MÃŒnchen', ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSellerContact('H. MÃŒller', 'Verkauf', '+49-111-2222222', '+49-111-3333333', 'hm@lieferant.de');
+$documentBuilder->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'sales@lieferant.de');
+
+// The buyer (customer) details are also an important part of the invoice.
+
+$documentBuilder->setDocumentBuyer('Kunden AG Mitte', 'GE2020211');
+$documentBuilder->setDocumentBuyerAddress('KundenstraÃe 15', '', '', '69876', 'Frankfurt', ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentBuyerContact('H. Meier', 'Einkauf', '+49-333-4444444', '+49-333-5555555', 'hm@kunde.de');
+$documentBuilder->setDocumentBuyerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'purchase@kunde.de');
+
+// You can specify a different payee. It is possible to enter a postal address and
+// a contact, but some validators issue a warning.
+
+$documentBuilder->setDocumentPayee('Kunden AG Zahlungsdienstleistung');
+
+// Sometimes it happens that you want to refer to an order (order number) transmitted by the buyer (customer) when
+// issuing the invoice. We enter the buyer (customer) order number here:
+
+$documentBuilder->setDocumentBuyerOrderReferencedDocument('PO-2024-0003324');
+
+// Sometimes the seller (supplier) wants to provide his buyer (customer) a reference to the internal sales order number
+
+$documentBuilder->setDocumentSellerOrderReferencedDocument('SO-2024-000993337');
+
+// It is also possible to specify a different delivery point in the invoice
+// It is possible to specify a contact at the different delivery point, but some validators issue a warning
+
+$documentBuilder->setDocumentShipTo('Kunden AG Ost');
+$documentBuilder->setDocumentShipToAddress('LieferstraÃe 1', '', '', '04109', 'Leipzig', ZugferdCountryCodes::GERMANY);
+
+// A delivery date can also be specified within the invoice
+
+$documentBuilder->setDocumentSupplyChainEvent(DateTime::createFromFormat('Ymd', '20250115'));
+
+// It is now time to add our first invoice line. This is defined as follows
+//  - The product name is "TrennblÃ€tter A4" and has a seller (supplier) assigned item number "TB100A4" (setDocumentPositionProductDetails)
+//  - The unit price is 9.90 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 20 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 19% (addDocumentPositionTax)
+//  - The line amount is 20 * 9.90 EUR = 198.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('1');
+$documentBuilder->setDocumentPositionProductDetails('TrennblÃ€tter A4', '50er Pack', 'TB100A4');
+$documentBuilder->setDocumentPositionNetPrice(9.9000);
+$documentBuilder->setDocumentPositionQuantity(20, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 19);
+$documentBuilder->setDocumentPositionLineSummation(198.0);
+
+// We now add a second invoice line.
+//  - The product name is "Joghurt Banane" and has a seller (supplier) assigned item number "ARNR2" (setDocumentPositionProductDetails)
+//  - The unit price is 5.50 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 50 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 7% (addDocumentPositionTax)
+//  - The line amount is 50 * 5.50 EUR = 275.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('2');
+$documentBuilder->setDocumentPositionProductDetails('Joghurt Banane', 'B-Ware', 'ARNR2');
+$documentBuilder->setDocumentPositionNetPrice(5.5000);
+$documentBuilder->setDocumentPositionQuantity(50, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(275.0);
+
+// Last but not least, we add a third and final invoice line. This should essentially also serve to clarify the VAT calculation in the following
+//  - The product name is "Joghurt Erdbeer" and has a seller (supplier) assigned item number "ARNR3" (setDocumentPositionProductDetails)
+//  - The unit price is 4.00 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 100 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 7% (addDocumentPositionTax)
+//  - The line amount is 100 * 4.00 EUR = 400.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('3');
+$documentBuilder->setDocumentPositionProductDetails('Joghurt Erdbeer', '', 'ARNR3');
+$documentBuilder->setDocumentPositionNetPrice(4.0000);
+$documentBuilder->setDocumentPositionQuantity(100, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(400.0);
+
+// Now we need to generate the VAT breakdown. This is an essential part of the invoice.
+// You have to group the VAT base amounts by VAT-Category ("S"), VAT-Type ("VAT") and VAT-Percent (19%, 7%)
+// The calculation is as follows:
+// - The first VAT summation comes at least from invoice line 1 - 19% VAT from 198.00 EUR (Net-Amount) = 37.62
+// - The second VAT summation comes at least from invoice line 2 & 3 - 7% VAT from 275.00 EUR + 400.00 EUR = 675.00 EUR (Net-Amount) = 47.25
+
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 198.0, 37.62, 19.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 675.0, 47.25, 7.0);
+
+// Finally, there is an equally important part of the invoice - the totals.
+//  1. Grand total amount = 198.00 EUR + 37.62 EUR (VAT) + 675.00 EUR + 47.25 EUR (VAT) = 957.87
+//  2. Amount to pay = We assume that there was no pre-payment and set the amount to be paid equal to the grand total amount
+//  3. Net total amount = 198.EUR (Position 1) + 675.00 EUR (Position 2 & 3) = 873.00 EUR
+//  4. Charge total amount = 0.00 EUR since we don't have any charges in the invoice
+//  5. Discount total amount = 0.00 EUR since we don't have any discounts in the invoice
+//  6. VAT basis total amount = As a rule, this amount corresponds to 3.
+//  7. VAT total amount = 19 % from 198.00 EUR = 37.62 EUR + 7% from 675.00 EUR = 47.28 EUR is 84.87 EUR
+
+$documentBuilder->setDocumentSummation(957.87, 957.87, 873.00, 0.0, 0.0, 873.00, 84.87);
+
+// We can now generate the invoice as a file...
+
+$documentBuilder->writeFile(__DIR__ . '/factur-x.xml');
+
+// ... or have the generated XML returned as a string
+
+$someStringVariable = $documentBuilder->getContent();
+
+// Optionally validate XML. For details see 00_ExampleHelpers.php
+
+$validationResult = validateUsingKositValidator($documentBuilder);
+
+echo $validationResult === 0 ? 'Validation is disabled' : ($validationResult === 1 ? 'The document is valid' : 'The document is not valid');
+
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_XRECHNUNG3.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_XRECHNUNG3.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/01_ZugferdDocumentBuilder_XRECHNUNG3.php	(revision 8542)
@@ -0,0 +1,201 @@
+<?php
+
+use horstoeko\zugferd\codelists\ZugferdCountryCodes;
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\codelists\ZugferdElectronicAddressScheme;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\codelists\ZugferdReferenceCodeQualifiers;
+use horstoeko\zugferd\codelists\ZugferdUnitCodes;
+use horstoeko\zugferd\codelists\ZugferdVatCategoryCodes;
+use horstoeko\zugferd\codelists\ZugferdVatTypeCodes;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdProfiles;
+
+require __DIR__ . "/../vendor/autoload.php";
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we create a new invoice in XRECHNUNG-Profile (Version 3.x)
+
+$documentBuilder = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+// General invoice Information
+
+$documentBuilder->setDocumentInformation(
+  'R-2024/00001',                                     // Invoice number (BT-1)
+  ZugferdInvoiceType::INVOICE,                        // Type "Invoice" (BT-3)
+  DateTime::createFromFormat('Ymd', '20241231'),      // Invoice fate (BT-2)
+  ZugferdCurrencyCodes::EURO                          // Invoice currency is EUR (Euro) (BT-5)
+);
+
+// Not mandatory, but welcome are details such as managing director, commercial register entry or similar
+
+$documentBuilder->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'LieferantenstraÃe 20' . PHP_EOL . '80333 MÃŒnchen' . PHP_EOL . 'Deutschland' . PHP_EOL . 'GeschÃ€ftsfÃŒhrer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG');
+
+// Indication of when the period covered by the invoice begins and when it ends. Also referred to as the delivery period
+
+$documentBuilder->setDocumentBillingPeriod(DateTime::createFromFormat('Ymd', '20250101'), DateTime::createFromFormat('Ymd', '20250131'), '01.01.2025 - 31.01.2025');
+
+// Add additional documents supporting the invoice
+// Type code 916 is used without exception for invoice justifying documents
+// First example: Specification of an external resource including the intended primary access method, e.g. http:// or ftp://
+// Second example: Specification of a local file to be included in the document as a BASE64-encoded attachment
+
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithUri('REFDOC-2024/00001-1', 'http.//some.url', 'Inhaltsstoffe Joghurt');
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithFile('REFDOC-2024/00001-2', __DIR__ . '/assets/00_AdditionalDocument.csv', 'Herkunftsnachweis TrennblÃ€tter');
+
+// Add details to the tender or lot reference. In some countries, a reference to the tender that led to the contract must be provided.
+// Type code 50 is used exclusively for the specification of the tender or lot reference
+
+$documentBuilder->addDocumentTenderOrLotReferenceDocument('LOS 738625');
+
+// Add details of the calculated object. Only the type code 130 is used to transmit an object identifier. Depending on the application,
+// an object identifier can be a subscription number, a telephone number, a meter reading, a vehicle, a person, etc.
+// Note: Additional documents of type code 130 may only be specified once.
+
+$documentBuilder->addDocumentInvoicedObjectReferenceDocument('125', ZugferdReferenceCodeQualifiers::SALE_PERS_NUMB); // Sales person number
+
+// Adding details to the associated contract
+// The contract reference should be assigned once in the context of the specific trading relationship and for a defined period of time.
+
+$documentBuilder->setDocumentContractReferencedDocument('CON-2024/2025-001');
+
+// Adding a detail to a project reference
+// Enter the identifier of the project to which the invoice refers and the name of the project.
+
+$documentBuilder->setDocumentProcuringProject('PROJ-2025-001-1', 'Allgemeine Dienstleistungen');
+
+// We should also define how payments are handled. In our case we want to use
+// a SEPA direct debit. We book from the IBAN DE12500105170648489890. We also provide a Creditor-Reference
+// We also need a creditor reference as the second parameter which is required for direct debit
+
+$documentBuilder->addDocumentPaymentMeanToDirectDebit('DE12500105170648489890', 'R-2024/00001');
+
+// We should also define the payment terms as a textual information
+// The first parameter defines the textual description of our payment terms.
+// The second parameter defines the due date of the invoice. As you have chosen a direct debit procedure, this is the date of the direct debit.
+// The third parameter defines the mandant reference which is required for direct debit
+
+$documentBuilder->addDocumentPaymentTerm('Wird von Konto DE12500105170648489890 abgebucht', DateTime::createFromFormat('Ymd', '20250131'), 'MANDATE-2024/000001');
+
+// An indispensable part of an invoice is the indication of the seller (supplier). Let's do that now.
+
+$documentBuilder->setDocumentSeller('Lieferant GmbH', '549910');
+$documentBuilder->addDocumentSellerGlobalId('4000001123452', '0088');
+$documentBuilder->addDocumentSellerTaxNumber('201/113/40209');
+$documentBuilder->addDocumentSellerVATRegistrationNumber('DE123456789');
+$documentBuilder->setDocumentSellerAddress('LieferantenstraÃe 20', '', '', '80333', 'MÃŒnchen', ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSellerContact('H. MÃŒller', 'Verkauf', '+49-111-2222222', '+49-111-3333333', 'hm@lieferant.de');
+$documentBuilder->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'sales@lieferant.de');
+
+// The buyer (customer) details are also an important part of the invoice.
+
+$documentBuilder->setDocumentBuyer('Kunden AG Mitte', 'GE2020211');
+$documentBuilder->setDocumentBuyerAddress('KundenstraÃe 15', '', '', '69876', 'Frankfurt', ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentBuyerContact('H. Meier', 'Einkauf', '+49-333-4444444', '+49-333-5555555', 'hm@kunde.de');
+$documentBuilder->setDocumentBuyerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'purchase@kunde.de');
+
+// You can specify a different payee. It is possible to enter a postal address and
+// a contact, but some validators issue a warning.
+
+$documentBuilder->setDocumentPayee('Kunden AG Zahlungsdienstleistung');
+
+// Specify a Routing ID (German: Leitweg-ID)
+// In the XRECHNUNG it is required to provide a routing ID ("Leitweg ID")
+
+$documentBuilder->setDocumentBuyerReference('34676-342323');
+
+// Sometimes it happens that you want to refer to an order (order number) transmitted by the buyer (customer) when
+// issuing the invoice. We enter the buyer (customer) order number here:
+
+$documentBuilder->setDocumentBuyerOrderReferencedDocument('PO-2024-0003324');
+
+// Sometimes the seller (supplier) wants to provide his buyer (customer) a reference to the internal sales order number
+
+$documentBuilder->setDocumentSellerOrderReferencedDocument('SO-2024-000993337');
+
+// It is also possible to specify a different delivery point in the invoice
+// It is possible to specify a contact at the different delivery point, but some validators issue a warning
+
+$documentBuilder->setDocumentShipTo('Kunden AG Ost');
+$documentBuilder->setDocumentShipToAddress('LieferstraÃe 1', '', '', '04109', 'Leipzig', ZugferdCountryCodes::GERMANY);
+
+// A delivery date can also be specified within the invoice
+
+$documentBuilder->setDocumentSupplyChainEvent(DateTime::createFromFormat('Ymd', '20250115'));
+
+// It is now time to add our first invoice line. This is defined as follows
+//  - The product name is "TrennblÃ€tter A4" and has a seller (supplier) assigned item number "TB100A4" (setDocumentPositionProductDetails)
+//  - The unit price is 9.90 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 20 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 19% (addDocumentPositionTax)
+//  - The line amount is 20 * 9.90 EUR = 198.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('1');
+$documentBuilder->setDocumentPositionProductDetails('TrennblÃ€tter A4', '50er Pack', 'TB100A4');
+$documentBuilder->setDocumentPositionNetPrice(9.9000);
+$documentBuilder->setDocumentPositionQuantity(20, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 19);
+$documentBuilder->setDocumentPositionLineSummation(198.0);
+
+// We now add a second invoice line.
+//  - The product name is "Joghurt Banane" and has a seller (supplier) assigned item number "ARNR2" (setDocumentPositionProductDetails)
+//  - The unit price is 5.50 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 50 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 7% (addDocumentPositionTax)
+//  - The line amount is 50 * 5.50 EUR = 275.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('2');
+$documentBuilder->setDocumentPositionProductDetails('Joghurt Banane', 'B-Ware', 'ARNR2');
+$documentBuilder->setDocumentPositionNetPrice(5.5000);
+$documentBuilder->setDocumentPositionQuantity(50, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(275.0);
+
+// Last but not least, we add a third and final invoice line. This should essentially also serve to clarify the VAT calculation in the following
+//  - The product name is "Joghurt Erdbeer" and has a seller (supplier) assigned item number "ARNR3" (setDocumentPositionProductDetails)
+//  - The unit price is 4.00 EUR (setDocumentPositionNetPrice)
+//  - The quantity is 100 pieces (setDocumentPositionQuantity)
+//  - The VAT is calculated with 7% (addDocumentPositionTax)
+//  - The line amount is 100 * 4.00 EUR = 400.00 EUR (setDocumentPositionLineSummation)
+
+$documentBuilder->addNewPosition('3');
+$documentBuilder->setDocumentPositionProductDetails('Joghurt Erdbeer', '', 'ARNR3');
+$documentBuilder->setDocumentPositionNetPrice(4.0000);
+$documentBuilder->setDocumentPositionQuantity(100, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(400.0);
+
+// Now we need to generate the VAT breakdown. This is an essential part of the invoice.
+// You have to group the VAT base amounts by VAT-Category ("S"), VAT-Type ("VAT") and VAT-Percent (19%, 7%)
+// The calculation is as follows:
+// - The first VAT summation comes at least from invoice line 1 - 19% VAT from 198.00 EUR (Net-Amount) = 37.62
+// - The second VAT summation comes at least from invoice line 2 & 3 - 7% VAT from 275.00 EUR + 400.00 EUR = 675.00 EUR (Net-Amount) = 47.25
+
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 198.0, 37.62, 19.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 675.0, 47.25, 7.0);
+
+// Finally, there is an equally important part of the invoice - the totals.
+//  1. Grand total amount = 198.00 EUR + 37.62 EUR (VAT) + 675.00 EUR + 47.25 EUR (VAT) = 957.87
+//  2. Amount to pay = We assume that there was no pre-payment and set the amount to be paid equal to the grand total amount
+//  3. Net total amount = 198.EUR (Position 1) + 675.00 EUR (Position 2 & 3) = 873.00 EUR
+//  4. Charge total amount = 0.00 EUR since we don't have any charges in the invoice
+//  5. Discount total amount = 0.00 EUR since we don't have any discounts in the invoice
+//  6. VAT basis total amount = As a rule, this amount corresponds to 3.
+//  7. VAT total amount = 19 % from 198.00 EUR = 37.62 EUR + 7% from 675.00 EUR = 47.28 EUR is 84.87 EUR
+
+$documentBuilder->setDocumentSummation(957.87, 957.87, 873.00, 0.0, 0.0, 873.00, 84.87);
+
+// We can now generate the invoice as a file...
+
+$documentBuilder->writeFile(__DIR__ . '/factur-x.xml');
+
+// ... or have the generated XML returned as a string
+
+$someStringVariable = $documentBuilder->getContent();
+
+// Optionally validate XML. For details see 00_ExampleHelpers.php
+
+$validationResult = validateUsingKositValidator($documentBuilder);
+
+echo $validationResult === 0 ? 'Validation is disabled' : ($validationResult === 1 ? 'The document is valid' : 'The document is not valid');
+
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_EN16931.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_EN16931.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_EN16931.php	(revision 8542)
@@ -0,0 +1,212 @@
+<?php
+
+use horstoeko\zugferd\codelists\ZugferdCountryCodes;
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\codelists\ZugferdElectronicAddressScheme;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\codelists\ZugferdReferenceCodeQualifiers;
+use horstoeko\zugferd\codelists\ZugferdUnitCodes;
+use horstoeko\zugferd\codelists\ZugferdVatCategoryCodes;
+use horstoeko\zugferd\codelists\ZugferdVatTypeCodes;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilderAbstract;
+use horstoeko\zugferd\ZugferdProfiles;
+
+require __DIR__ . "/../vendor/autoload.php";
+
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we create a new valid document in EN16931-Profile (== COMFORT-Profile)
+// See examples/01_ZugferdDocumentBuilder_EN16931.php for detailed explanations
+
+$documentBuilder = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_EN16931);
+
+$documentBuilder->setDocumentInformation(
+    'R-2024/00001',                                     // Invoice Number (BT-1)
+    ZugferdInvoiceType::INVOICE,                        // Type "Invoice" (BT-3)
+    DateTime::createFromFormat("Ymd", "20241231"),      // Invoice Date (BT-2)
+    ZugferdCurrencyCodes::EURO                          // Invoice currency is EUR (Euro) (BT-5)
+);
+
+$documentBuilder->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'LieferantenstraÃe 20' . PHP_EOL . '80333 MÃŒnchen' . PHP_EOL . 'Deutschland' . PHP_EOL . 'GeschÃ€ftsfÃŒhrer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG');
+$documentBuilder->setDocumentBillingPeriod(DateTime::createFromFormat("Ymd", "20250101"), DateTime::createFromFormat("Ymd", "20250131"), "01.01.2025 - 31.01.2025");
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithUri('REFDOC-2024/00001-1', 'http.//some.url', 'Inhaltsstoffe Joghurt');
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithFile('REFDOC-2024/00001-2', __DIR__ . '/assets/00_AdditionalDocument.csv', 'Herkunftsnachweis TrennblÃ€tter');
+$documentBuilder->addDocumentTenderOrLotReferenceDocument('LOS 738625');
+$documentBuilder->addDocumentInvoicedObjectReferenceDocument('125', ZugferdReferenceCodeQualifiers::SALE_PERS_NUMB); // Sales person number
+$documentBuilder->setDocumentContractReferencedDocument('CON-2024/2025-001');
+$documentBuilder->setDocumentProcuringProject('PROJ-2025-001-1', 'Allgemeine Dienstleistungen');
+$documentBuilder->addDocumentPaymentMeanToDirectDebit("DE12500105170648489890", "R-2024/00001");
+$documentBuilder->addDocumentPaymentTerm('Wird von Konto DE12500105170648489890 abgebucht', DateTime::createFromFormat("Ymd", "20250131"), 'MANDATE-2024/000001');
+$documentBuilder->setDocumentSeller("Lieferant GmbH", "549910");
+$documentBuilder->addDocumentSellerGlobalId("4000001123452", "0088");
+$documentBuilder->addDocumentSellerTaxNumber("201/113/40209");
+$documentBuilder->addDocumentSellerVATRegistrationNumber("DE123456789");
+$documentBuilder->setDocumentSellerAddress("LieferantenstraÃe 20", "", "", "80333", "MÃŒnchen", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSellerContact("H. MÃŒller", "Verkauf", "+49-111-2222222", "+49-111-3333333", "hm@lieferant.de");
+$documentBuilder->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'sales@lieferant.de');
+$documentBuilder->setDocumentBuyer("Kunden AG Mitte", "GE2020211");
+$documentBuilder->setDocumentBuyerAddress("KundenstraÃe 15", "", "", "69876", "Frankfurt", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentBuyerContact("H. Meier", "Einkauf", "+49-333-4444444", "+49-333-5555555", "hm@kunde.de");
+$documentBuilder->setDocumentBuyerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'purchase@kunde.de');
+$documentBuilder->setDocumentPayee('Kunden AG Zahlungsdienstleistung');
+$documentBuilder->setDocumentBuyerOrderReferencedDocument("PO-2024-0003324");
+$documentBuilder->setDocumentSellerOrderReferencedDocument('SO-2024-000993337');
+$documentBuilder->setDocumentShipTo("Kunden AG Ost");
+$documentBuilder->setDocumentShipToAddress("LieferstraÃe 1", "", "", "04109", "Leipzig", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSupplyChainEvent(DateTime::createFromFormat("Ymd", "20250115"));
+$documentBuilder->addNewPosition("1");
+$documentBuilder->setDocumentPositionProductDetails("TrennblÃ€tter A4", "50er Pack", "TB100A4");
+$documentBuilder->setDocumentPositionNetPrice(9.9000);
+$documentBuilder->setDocumentPositionQuantity(20, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 19);
+$documentBuilder->setDocumentPositionLineSummation(198.0);
+$documentBuilder->addNewPosition("2");
+$documentBuilder->setDocumentPositionProductDetails("Joghurt Banane", "B-Ware", "ARNR2");
+$documentBuilder->setDocumentPositionNetPrice(5.5000);
+$documentBuilder->setDocumentPositionQuantity(50, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(275.0);
+$documentBuilder->addNewPosition("3");
+$documentBuilder->setDocumentPositionProductDetails("Joghurt Erdbeer", "", "ARNR3");
+$documentBuilder->setDocumentPositionNetPrice(4.0000);
+$documentBuilder->setDocumentPositionQuantity(100, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(400.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 198.0, 37.62, 19.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 675.0, 47.25, 7.0);
+$documentBuilder->setDocumentSummation(957.87, 957.87, 873.00, 0.0, 0.0, 873.00, 84.87);
+
+// Next let's do the ZugferddocumentPdfBuilder it's job - let's attach the XML to the PDF. The attachment filename will be factur-x.xml
+// since whe choosed the profile EN16931 in the ZugferdDocumentBuilder (see above)
+// In the following there are multiple methods how you can build a conform PDF from an existing print layout
+
+$existingPdfFilename = __DIR__ . "/assets/00_ZugferdDocumentPdfBuilder_PrintLayout.pdf";
+$newPdfFilename = __DIR__ . "/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf";
+
+// First method: Merge the generated XML from ZugferdDocumentBuilder with an existing print layout file to a new PDF file
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// Second method: Merge the generated XML from ZugferdDocumentBuilder with an stream (string) which contains the PDF to a new PDF file
+// Note: We simulate the PDF stream (string) by calling file_get_contents.
+
+$pdfContent = file_get_contents($existingPdfFilename);
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// There is not only the saveDocument method of the ZugferdDocumentPdfBuilder. It is also possible to receive the merged
+// content (PDF with embedded XML) as a stream (string)
+
+$mergedPdfContent = $zugferdDocumentPdfBuilder->downloadString();
+
+// If you would like to brand the merged PDF with the name of you own solution you can call
+// the method setAdditionalCreatorTool. Before calling this method the creator of the PDF is identified as 'Factur-X library 1.x.x by HorstOeko'.
+// After calling this method you get 'MyERPSolution 1.0 / Factur-X PHP library 1.x.x by HorstOeko' as the creator
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->setAdditionalCreatorTool('MyERPSolution 1.0');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// And last but not least, it is also possible to add additional attachments to the merged PDF. These can be any files that can help the invoice
+// recipient with processing. For example, a time sheet as an Excel file would be conceivable.
+// The method attachAdditionalFileByRealFile has 3 parameters:
+// - The file to attach which must exist and must be readable
+// - (Optional) A name to display in the attachments of the PDF
+// - (Optional) The type of the relationship of the attachment. Valid values are defined in the class ZugferdDocumentPdfBuilderAbstract. The constants are starting with AF_
+// If you omit the last 2 parameters the following will happen:
+// - The displayname is calculated from the filename you specified
+// - The type of the relationship of the attachment will be AF_RELATIONSHIP_SUPPLEMENT (Supplement)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->attachAdditionalFileByRealFile(__DIR__ . '/assets/00_AdditionalDocument.csv', "Some display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// You can also add an attachment to the PDF as an stream (string). The conditions are the same as above for the attachAdditionalFileByRealFile method
+// The only difference to attachAdditionalFileByRealFile is that the attachAdditionalFileByContent method accepts 4 parameters, whereby here (as with attachAdditionalFileByRealFile)
+// the last two can be omitted. You only need to specify a file name under which the file is to be embedded
+// Note: We simulate the attachment stream (string) by calling file_get_contents.
+
+$attachmentContent = file_get_contents(__DIR__ . '/assets/00_AdditionalDocument.csv');
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->attachAdditionalFileByContent($attachmentContent, 'additionalDocument.csv', "Some other display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// Set values for metadata-fields
+// We can change some meta information such as the title, the subject, the author and the keywords.  This library essentially provides 4 methods for this.
+// These methods use so-called templates. These methods are:
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setAuthorTemplate('.....');
+$zugferdDocumentPdfBuilder->setTitleTemplate('.....');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('.....');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('.....');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// The 4 methods just mentioned accept a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+// The following example generates...
+// - the author:  .... Issued by seller with name Lieferant GmbH
+// - the title    .... Lieferant GmbH : Invoice R-2024/00001
+// - the subject  .... Invoice-Document, Issued by Lieferant GmbH
+// - the keywords .... R-2024/00001, Invoice, Lieferant GmbH, 2024-12-31
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setAuthorTemplate('Issued by seller with name %3$s');
+$zugferdDocumentPdfBuilder->setTitleTemplate('%3$s : %2$s %1$s');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('%2$s-Document, Issued by %3$s');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('%1$s, %2$s, %3$s, %4$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// If the previously mentioned options for manipulating the meta information are not sufficient,
+// you can also use a callback function. The following 4 parameters are passed to the callback
+// function in the specified order:
+// - $which               .... one of "author", "title", "subject" and "keywords"
+// - $xmlContent          .... the content of the xml as a string
+// - $invoiceInformation  .... an array with some information about the invoice
+// - $default             .... The default value for the specified field (see $which
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(
+    function ($which) {
+        if ($which === 'title') {
+            return "DummyTitle";
+        }
+        
+        if ($which === 'author') {
+            return "DummyAuthor";
+        }
+        
+        if ($which === 'subject') {
+            return "DummySubject";
+        }
+        
+        if ($which === 'keywords') {
+            return "DummyKeywords";
+        }
+    }
+);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// To remove the callback you can call the setMetaInformationCallback
+// method with a null value
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(null);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_XRECHNUNG.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_XRECHNUNG.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/02_ZugferdDocumentPdfBuilder_XRECHNUNG.php	(revision 8542)
@@ -0,0 +1,212 @@
+<?php
+
+use horstoeko\zugferd\codelists\ZugferdCountryCodes;
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\codelists\ZugferdElectronicAddressScheme;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\codelists\ZugferdReferenceCodeQualifiers;
+use horstoeko\zugferd\codelists\ZugferdUnitCodes;
+use horstoeko\zugferd\codelists\ZugferdVatCategoryCodes;
+use horstoeko\zugferd\codelists\ZugferdVatTypeCodes;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilderAbstract;
+use horstoeko\zugferd\ZugferdProfiles;
+
+require __DIR__ . "/../vendor/autoload.php";
+
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we create a new valid document in XRECHNUNG-Profile Version 3.x
+// See examples/01_ZugferdDocumentBuilder_XRECHNUNG.php for detailed explanations
+
+$documentBuilder = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+$documentBuilder->setDocumentInformation(
+    'R-2024/00001',                                     // Invoice Number (BT-1)
+    ZugferdInvoiceType::INVOICE,                        // Type "Invoice" (BT-3)
+    DateTime::createFromFormat("Ymd", "20241231"),      // Invoice Date (BT-2)
+    ZugferdCurrencyCodes::EURO                          // Invoice currency is EUR (Euro) (BT-5)
+);
+
+$documentBuilder->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'LieferantenstraÃe 20' . PHP_EOL . '80333 MÃŒnchen' . PHP_EOL . 'Deutschland' . PHP_EOL . 'GeschÃ€ftsfÃŒhrer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG');
+$documentBuilder->setDocumentBillingPeriod(DateTime::createFromFormat("Ymd", "20250101"), DateTime::createFromFormat("Ymd", "20250131"), "01.01.2025 - 31.01.2025");
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithUri('REFDOC-2024/00001-1', 'http.//some.url', 'Inhaltsstoffe Joghurt');
+$documentBuilder->addDocumentInvoiceSupportingDocumentWithFile('REFDOC-2024/00001-2', __DIR__ . '/assets/00_AdditionalDocument.csv', 'Herkunftsnachweis TrennblÃ€tter');
+$documentBuilder->addDocumentTenderOrLotReferenceDocument('LOS 738625');
+$documentBuilder->addDocumentInvoicedObjectReferenceDocument('125', ZugferdReferenceCodeQualifiers::SALE_PERS_NUMB); // Sales person number
+$documentBuilder->setDocumentContractReferencedDocument('CON-2024/2025-001');
+$documentBuilder->setDocumentProcuringProject('PROJ-2025-001-1', 'Allgemeine Dienstleistungen');
+$documentBuilder->addDocumentPaymentMeanToDirectDebit("DE12500105170648489890", "R-2024/00001");
+$documentBuilder->addDocumentPaymentTerm('Wird von Konto DE12500105170648489890 abgebucht', DateTime::createFromFormat("Ymd", "20250131"), 'MANDATE-2024/000001');
+$documentBuilder->setDocumentSeller("Lieferant GmbH", "549910");
+$documentBuilder->addDocumentSellerGlobalId("4000001123452", "0088");
+$documentBuilder->addDocumentSellerTaxNumber("201/113/40209");
+$documentBuilder->addDocumentSellerVATRegistrationNumber("DE123456789");
+$documentBuilder->setDocumentSellerAddress("LieferantenstraÃe 20", "", "", "80333", "MÃŒnchen", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSellerContact("H. MÃŒller", "Verkauf", "+49-111-2222222", "+49-111-3333333", "hm@lieferant.de");
+$documentBuilder->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'sales@lieferant.de');
+$documentBuilder->setDocumentBuyer("Kunden AG Mitte", "GE2020211");
+$documentBuilder->setDocumentBuyerAddress("KundenstraÃe 15", "", "", "69876", "Frankfurt", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentBuyerContact("H. Meier", "Einkauf", "+49-333-4444444", "+49-333-5555555", "hm@kunde.de");
+$documentBuilder->setDocumentBuyerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'purchase@kunde.de');
+$documentBuilder->setDocumentPayee('Kunden AG Zahlungsdienstleistung');
+$documentBuilder->setDocumentBuyerOrderReferencedDocument("PO-2024-0003324");
+$documentBuilder->setDocumentSellerOrderReferencedDocument('SO-2024-000993337');
+$documentBuilder->setDocumentShipTo("Kunden AG Ost");
+$documentBuilder->setDocumentShipToAddress("LieferstraÃe 1", "", "", "04109", "Leipzig", ZugferdCountryCodes::GERMANY);
+$documentBuilder->setDocumentSupplyChainEvent(DateTime::createFromFormat("Ymd", "20250115"));
+$documentBuilder->addNewPosition("1");
+$documentBuilder->setDocumentPositionProductDetails("TrennblÃ€tter A4", "50er Pack", "TB100A4");
+$documentBuilder->setDocumentPositionNetPrice(9.9000);
+$documentBuilder->setDocumentPositionQuantity(20, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 19);
+$documentBuilder->setDocumentPositionLineSummation(198.0);
+$documentBuilder->addNewPosition("2");
+$documentBuilder->setDocumentPositionProductDetails("Joghurt Banane", "B-Ware", "ARNR2");
+$documentBuilder->setDocumentPositionNetPrice(5.5000);
+$documentBuilder->setDocumentPositionQuantity(50, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(275.0);
+$documentBuilder->addNewPosition("3");
+$documentBuilder->setDocumentPositionProductDetails("Joghurt Erdbeer", "", "ARNR3");
+$documentBuilder->setDocumentPositionNetPrice(4.0000);
+$documentBuilder->setDocumentPositionQuantity(100, ZugferdUnitCodes::REC20_PIECE);
+$documentBuilder->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7);
+$documentBuilder->setDocumentPositionLineSummation(400.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 198.0, 37.62, 19.0);
+$documentBuilder->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 675.0, 47.25, 7.0);
+$documentBuilder->setDocumentSummation(957.87, 957.87, 873.00, 0.0, 0.0, 873.00, 84.87);
+
+// Next let's do the ZugferddocumentPdfBuilder it's job - let's attach the XML to the PDF. The attachment filename will be xrechnung.xml
+// since whe choosed the profile XRECHNUNG 3.x in the ZugferdDocumentBuilder (see above)
+// In the following there are multiple methods how you can build a conform PDF from an existing print layout
+
+$existingPdfFilename = __DIR__ . "/assets/00_ZugferdDocumentPdfBuilder_PrintLayout.pdf";
+$newPdfFilename = __DIR__ . "/02_ZugferdDocumentPdfBuilder_PrintLayout_Merged.pdf";
+
+// First method: Merge the generated XML from ZugferdDocumentBuilder with an existing print layout file to a new PDF file
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// Second method: Merge the generated XML from ZugferdDocumentBuilder with an stream (string) which contains the PDF to a new PDF file
+// Note: We simulate the PDF stream (string) by calling file_get_contents.
+
+$pdfContent = file_get_contents($existingPdfFilename);
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// There is not only the saveDocument method of the ZugferdDocumentPdfBuilder. It is also possible to receive the merged
+// content (PDF with embedded XML) as a stream (string)
+
+$mergedPdfContent = $zugferdDocumentPdfBuilder->downloadString();
+
+// If you would like to brand the merged PDF with the name of you own solution you can call
+// the method setAdditionalCreatorTool. Before calling this method the creator of the PDF is identified as 'Factur-X library 1.x.x by HorstOeko'.
+// After calling this method you get 'MyERPSolution 1.0 / Factur-X PHP library 1.x.x by HorstOeko' as the creator
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->setAdditionalCreatorTool('MyERPSolution 1.0');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// And last but not least, it is also possible to add additional attachments to the merged PDF. These can be any files that can help the invoice
+// recipient with processing. For example, a time sheet as an Excel file would be conceivable.
+// The method attachAdditionalFileByRealFile has 3 parameters:
+// - The file to attach which must exist and must be readable
+// - (Optional) A name to display in the attachments of the PDF
+// - (Optional) The type of the relationship of the attachment. Valid values are defined in the class ZugferdDocumentPdfBuilderAbstract. The constants are starting with AF_
+// If you omit the last 2 parameters the following will happen:
+// - The displayname is calculated from the filename you specified
+// - The type of the relationship of the attachment will be AF_RELATIONSHIP_SUPPLEMENT (Supplement)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->attachAdditionalFileByRealFile(__DIR__ . '/assets/00_AdditionalDocument.csv', "Some display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// You can also add an attachment to the PDF as an stream (string). The conditions are the same as above for the attachAdditionalFileByRealFile method
+// The only difference to attachAdditionalFileByRealFile is that the attachAdditionalFileByContent method accepts 4 parameters, whereby here (as with attachAdditionalFileByRealFile)
+// the last two can be omitted. You only need to specify a file name under which the file is to be embedded
+// Note: We simulate the attachment stream (string) by calling file_get_contents.
+
+$attachmentContent = file_get_contents(__DIR__ . '/assets/00_AdditionalDocument.csv');
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, $pdfContent);
+$zugferdDocumentPdfBuilder->attachAdditionalFileByContent($attachmentContent, 'additionalDocument.csv', "Some other display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// Set values for metadata-fields
+// We can change some meta information such as the title, the subject, the author and the keywords.  This library essentially provides 4 methods for this.
+// These methods use so-called templates. These methods are:
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setAuthorTemplate('.....');
+$zugferdDocumentPdfBuilder->setTitleTemplate('.....');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('.....');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('.....');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// The 4 methods just mentioned accept a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+// The following example generates...
+// - the author:  .... Issued by seller with name Lieferant GmbH
+// - the title    .... Lieferant GmbH : Invoice R-2024/00001
+// - the subject  .... Invoice-Document, Issued by Lieferant GmbH
+// - the keywords .... R-2024/00001, Invoice, Lieferant GmbH, 2024-12-31
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setAuthorTemplate('Issued by seller with name %3$s');
+$zugferdDocumentPdfBuilder->setTitleTemplate('%3$s : %2$s %1$s');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('%2$s-Document, Issued by %3$s');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('%1$s, %2$s, %3$s, %4$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// If the previously mentioned options for manipulating the meta information are not sufficient,
+// you can also use a callback function. The following 4 parameters are passed to the callback
+// function in the specified order:
+// - $which               .... one of "author", "title", "subject" and "keywords"
+// - $xmlContent          .... the content of the xml as a string
+// - $invoiceInformation  .... an array with some information about the invoice
+// - $default             .... The default value for the specified field (see $which
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(
+    function ($which) {
+        if ($which === 'title') {
+            return "DummyTitle";
+        }
+        
+        if ($which === 'author') {
+            return "DummyAuthor";
+        }
+        
+        if ($which === 'subject') {
+            return "DummySubject";
+        }
+        
+        if ($which === 'keywords') {
+            return "DummyKeywords";
+        }
+    }
+);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
+
+// To remove the callback you can call the setMetaInformationCallback
+// method with a null value
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($documentBuilder, $existingPdfFilename);
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(null);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument($newPdfFilename);
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_EN16931.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_EN16931.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_EN16931.php	(revision 8542)
@@ -0,0 +1,420 @@
+<?php
+
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+require __DIR__ . "/../vendor/autoload.php";
+
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we try to load the invoice document from a XML file
+// This will recognize the correctnes and the profile
+
+$documentReader = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/assets/03_ZugferdDocumentReader_ImportFile_EN16931.xml');
+
+// Optionally you can load the document from XML stream (string)
+// Note: We simulate the XML stream (string) by calling file_get_contents.
+
+$xmlContent = file_get_contents(__DIR__ . '/assets/03_ZugferdDocumentReader_ImportFile_EN16931.xml');
+
+$documentReader = ZugferdDocumentReader::readAndGuessFromContent($xmlContent);
+
+// If no problems have occurred up to this point (invalid XML, unknown profile, etc.), then the document is now available
+// for us to read out
+
+// First we resolve the general invoice information.
+
+$documentReader->getDocumentInformation(
+    $documentNo,
+    $documentTypeCode,
+    $documentDate,
+    $documentCurrency,
+    $documentTaxCurrency,
+    $documentName,
+    $documentLanguage,
+    $effectiveSpecifiedPeriod
+);
+
+$documentReader->getDocumentSupplyChainEvent(
+    $documentDeliveryDate
+);
+
+writeNewLineToCli();
+writeLnToCli("Document Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli(" - Profile ............ %s", $documentReader->getProfileDefinitionParameter("name"));
+writeLnToCli(" - Profile Context .... %s", $documentReader->getProfileDefinitionParameter("contextparameter"));
+writeLnToCli(" - Document No ........ %s", $documentNo);
+writeLnToCli(" - Document Type ...... %s", $documentTypeCode);
+writeLnToCli(" - Document Date ...... %s", $documentDate->format("Y-m-d"));
+writeLnToCli(" - Invoice currency: .. %s", $documentCurrency);
+writeLnToCli(" - Tax currency ....... %s", $documentTaxCurrency);
+writeLnToCli(" - Delivery date ...... %s", $documentDeliveryDate->format("Y-m-d"));
+
+// Now let's get information about the seller. In addition to the methods listed here,
+// there are a few more available, but these are rarely required
+
+$documentReader->getDocumentSeller(
+    $sellerName,
+    $sellerIds,
+    $sellerDescription
+);
+
+$documentReader->getDocumentSellerGlobalId(
+    $sellerGlobalIds
+);
+
+$documentReader->getDocumentSellerTaxRegistration(
+    $sellerTaxRegistations
+);
+
+$documentReader->getDocumentSellerAddress(
+    $sellerAddressLineOne,
+    $sellerAddressLineTwo,
+    $sellerAddressLineThree,
+    $sellerAddressPostCode,
+    $sellerAddressCity,
+    $sellerAddressCountry,
+    $sellerAddressSubDivisions
+);
+
+$documentReader->getDocumentSellerCommunication(
+    $sellerCommunicationUriScheme,
+    $sellerCommunicationUri
+);
+
+writeNewLineToCli();
+writeLnToCli("Seller Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $sellerName);
+writeLnToCli('%s', $sellerAddressLineOne);
+writeLnToCli('%s', $sellerAddressLineTwo);
+writeLnToCli('%s', $sellerAddressLineThree);
+writeLnToCli('%s %s %s', $sellerAddressCountry, $sellerAddressPostCode, $sellerAddressCity);
+writeLnToCli('%s %s', $sellerCommunicationUriScheme, $sellerCommunicationUri);
+writeLnToCli('%s', implode(PHP_EOL, $sellerAddressSubDivisions));
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $sellerTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Seller identifications: %s', implode(",", $sellerIds));
+writeLnToCli('Seller global identifications: %s', implodeAssocArray(",", $sellerGlobalIds));
+
+// We now want to read out the contact information of our seller. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Seller contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentSellerContact()) {
+    do {
+        $documentReader->getDocumentSellerContact(
+            $sellerContactPersonname,
+            $sellerContactDepartmentname,
+            $sellerContactPhoneNo,
+            $sellerContactFaxNo,
+            $sellerContactEmailAddress
+        );
+        writeLnToCli('  %s', $sellerContactPersonname);
+        writeLnToCli('  %s', $sellerContactDepartmentname);
+        writeLnToCli('  %s', $sellerContactPhoneNo);
+        writeLnToCli('  %s', $sellerContactFaxNo);
+        writeLnToCli('  %s', $sellerContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentSellerContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Now let's get information about the buyer. In addition to the methods listed here,
+// there are a few more available, but these are rarely required
+
+$documentReader->getDocumentBuyer(
+    $buyerName,
+    $buyerIds,
+    $buyerDescription
+);
+
+$documentReader->getDocumentBuyerGlobalId(
+    $buyerGlobalIds
+);
+
+$documentReader->getDocumentBuyerTaxRegistration(
+    $buyerTaxRegistations
+);
+
+$documentReader->getDocumentBuyerAddress(
+    $buyerAddressLineOne,
+    $buyerAddressLineTwo,
+    $buyerAddressLineThree,
+    $buyerAddressPostCode,
+    $buyerAddressCity,
+    $buyerAddressCountry,
+    $buyerAddressSubDivisions
+);
+
+$documentReader->getDocumentbuyerCommunication(
+    $buyerCommunicationUriScheme,
+    $buyerCommunicationUri
+);
+
+writeNewLineToCli();
+writeLnToCli("Buyer Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $buyerName);
+writeLnToCli('%s', $buyerAddressLineOne);
+writeLnToCli('%s', $buyerAddressLineTwo);
+writeLnToCli('%s', $buyerAddressLineThree);
+writeLnToCli('%s %s %s', $buyerAddressCountry, $buyerAddressPostCode, $buyerAddressCity);
+writeLnToCli('%s', implode(PHP_EOL, $buyerAddressSubDivisions));
+writeLnToCli('%s %s', $buyerCommunicationUriScheme, $buyerCommunicationUri);
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $buyerTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Buyer identifications: %s', implode(",", $buyerIds));
+writeLnToCli('Buyer global identifications: %s', implodeAssocArray(",", $buyerGlobalIds));
+
+// We now want to read out the contact information of our buyer. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Buyer contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentBuyerContact()) {
+    do {
+        $documentReader->getDocumentBuyerContact(
+            $buyerContactPersonname,
+            $buyerContactDepartmentname,
+            $buyerContactPhoneNo,
+            $buyerContactFaxNo,
+            $buyerContactEmailAddress
+        );
+        writeLnToCli('  %s', $buyerContactPersonname);
+        writeLnToCli('  %s', $buyerContactDepartmentname);
+        writeLnToCli('  %s', $buyerContactPhoneNo);
+        writeLnToCli('  %s', $buyerContactFaxNo);
+        writeLnToCli('  %s', $buyerContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentBuyerContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Next we want to load and show the different shipping location
+
+$documentReader->getDocumentShipTo(
+    $shipToName,
+    $shipToIds,
+    $shipToDescription
+);
+
+$documentReader->getDocumentShipToGlobalId(
+    $shipToGlobalIds
+);
+
+$documentReader->getDocumentShipToTaxRegistration(
+    $shipToTaxRegistations
+);
+
+$documentReader->getDocumentShipToAddress(
+    $shipToAddressLineOne,
+    $shipToAddressLineTwo,
+    $shipToAddressLineThree,
+    $shipToAddressPostCode,
+    $shipToAddressCity,
+    $shipToAddressCountry,
+    $shipToAddressSubDivisions
+);
+
+writeNewLineToCli();
+writeLnToCli("Shipping location Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $shipToName);
+writeLnToCli('%s', $shipToAddressLineOne);
+writeLnToCli('%s', $shipToAddressLineTwo);
+writeLnToCli('%s', $shipToAddressLineThree);
+writeLnToCli('%s %s %s', $shipToAddressCountry, $shipToAddressPostCode, $shipToAddressCity);
+writeLnToCli('%s', implode(PHP_EOL, $shipToAddressSubDivisions));
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $shipToTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Shipping location identifications: %s', implode(",", $shipToIds));
+writeLnToCli('Shipping location global identifications: %s', implodeAssocArray(",", $shipToGlobalIds));
+
+// We now want to read out the contact information of our shipping location. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Shipping location contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentShipToContact()) {
+    do {
+        $documentReader->getDocumentShipToContact(
+            $shipToContactPersonname,
+            $shipToContactDepartmentname,
+            $shipToContactPhoneNo,
+            $shipToContactFaxNo,
+            $shipToContactEmailAddress
+        );
+        writeLnToCli('  %s', $shipToContactPersonname);
+        writeLnToCli('  %s', $shipToContactDepartmentname);
+        writeLnToCli('  %s', $shipToContactPhoneNo);
+        writeLnToCli('  %s', $shipToContactFaxNo);
+        writeLnToCli('  %s', $ShipToContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentShipToContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Let's get the document positions. There are several method names starting with getDocumentPosition*. The methods listed
+// here are the most frequently used. We have to use a loop to iterate over the position, similar how we retrieved the party contacts.
+
+writeNewLineToCli();
+writeLnToCli("Document positions");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentPosition()) {
+    do {
+        // Get the general information of the position
+
+        $documentReader->getDocumentPositionGenerals(
+            $positionLineId,
+            $positionLineStatusCode,
+            $positionLineStatusReasonCode
+        );
+
+        // Get the product information
+
+        $documentReader->getDocumentPositionProductDetails(
+            $positionProductName,
+            $positionProductDescription,
+            $positionProductSellerAssignedID,
+            $positionProductBuyerAssignedID,
+            $positionProductGlobalIDType,
+            $positionProductGlobalID
+        );
+
+        // Get the net unit price
+
+        $documentReader->getDocumentPositionNetPrice(
+            $positionNetUnitPrice,
+            $positionBasisQuantity,
+            $positionBasisQuantityUnitCode
+        );
+
+        // Get the position invoiced quantity
+
+        $documentReader->getDocumentPositionQuantity(
+            $positionBilledQuantity,
+            $positionBilledQuantityUnitCode,
+            $positionChargeFreeQuantity,
+            $positionChargeFreeQuantityUnitCpde,
+            $positionPackageQuantity,
+            $positionPackageQuantityUnitCode
+        );
+
+        // Get the position amount summation
+
+        $documentReader->getDocumentPositionLineSummationSimple(
+            $positionTotalNetAmount
+        );
+
+        // Write the position information to CLI
+
+        writeLnToCli('  Position %s', $positionLineId);
+        writeLnToCli("  ------------------------------------------------------------------------------");
+        writeLnToCli('  %s', $positionProductName);
+        writeLnToCli('  %s', $positionProductDescription);
+        writeLnToCli('  Unit Price        %s %s', number_format($positionNetUnitPrice, 2), $documentCurrency);
+        writeLnToCli('  Quantity/Unit     %s %s', number_format($positionBilledQuantity, 5), $positionBilledQuantityUnitCode);
+        writeLnToCli('  Line Amount       %s %s', number_format($positionTotalNetAmount, 2), $documentCurrency);
+
+        // Get the tax information of the position.
+        // According to the data model, several tax rates could also be assigned per item. In Germany, for example, this
+        // is not permitted. We must also use the appropriate first/next method here
+
+        if ($documentReader->firstDocumentPositionTax()) {
+            $documentReader->getDocumentPositionTax(
+                $positionTaxCategoryCode,
+                $positionTaxTypeCode,
+                $positionTaxRateApplicablePercent,
+                $positionTaxCalculatedAmount,
+                $positionTaxExemptionReason,
+                $positionTaxExemptionReasonCode
+            );
+
+            writeLnToCli('  Tax category      %s', $positionTaxCategoryCode);
+            writeLnToCli('  Tax type          %s', $positionTaxTypeCode);
+            writeLnToCli('  Tax percent       %s %%', number_format($positionTaxRateApplicablePercent, 2));
+        }
+
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentPosition());
+} else {
+    writeLnToCli('No document positions found');
+}
+
+// Finally, we determine the VAT statement and the total amounts of the document.
+// As there could be several tax rates per invoice here, we have to work with the appropriate first/next methods again:
+
+// Get the VAT statement
+
+writeNewLineToCli();
+writeLnToCli("VAT Statement");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentTax()) {
+    writeLnToCli("  Tax Category         Tax Type             Tax percent");
+    writeLnToCli("  ------------------------------------------------------------------------------");
+    do {
+        $documentReader->getDocumentTax(
+            $documentTaxcategoryCode,
+            $documentTaxTypeCode,
+            $documentTaxBasisAmount,
+            $documentTaxCalculatedAmount,
+            $documentTaxRateApplicablePercent,
+            $documentTaxExemptionReason,
+            $documentTaxExemptionReasonCode,
+            $documentTaxLineTotalBasisAmount,
+            $documentTaxAllowanceChargeBasisAmount,
+            $documentTaxTaxPointDate,
+            $documentTaxDueDateTypeCode
+        );
+
+        writeLnToCli(
+            '  %s %s %s',
+            str_pad($documentTaxcategoryCode, 20, " ", STR_PAD_RIGHT),
+            str_pad($documentTaxTypeCode, 20, " ", STR_PAD_RIGHT),
+            str_pad(number_format($documentTaxRateApplicablePercent, 2), 10, " ", STR_PAD_RIGHT),
+        );
+    } while ($documentReader->nextDocumentTax());
+} else {
+    writeLnToCli('  No tax information found');
+}
+
+// Get the document totals (summation)
+
+writeNewLineToCli();
+writeLnToCli("Document totals");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+$documentReader->getDocumentSummation(
+    $documentGrandTotalAmount,
+    $documentDuePayableAmount,
+    $documentLineTotalAmount,
+    $documentChargeTotalAmount,
+    $documentAllowanceTotalAmount,
+    $documentTaxBasisTotalAmount,
+    $documentTaxTotalAmount,
+    $documentRoundingAmount,
+    $documentTotalPrepaidAmount
+);
+
+writeLnToCli('Total Net Amount          %s %s', str_pad(number_format($documentLineTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Tax Basis Amount    %s %s', str_pad(number_format($documentTaxBasisTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Tax Amount          %s %s', str_pad(number_format($documentTaxTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Gross Amount        %s %s', str_pad(number_format($documentGrandTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Amount already paid       %s %s', str_pad(number_format($documentTotalPrepaidAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Amount to pay             %s %s', str_pad(number_format($documentDuePayableAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_XRECHNUNG3.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_XRECHNUNG3.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/03_ZugferdDocumentReader_XRECHNUNG3.php	(revision 8542)
@@ -0,0 +1,420 @@
+<?php
+
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+require __DIR__ . "/../vendor/autoload.php";
+
+require __DIR__ . "/00_ExampleHelpers.php";
+
+// First we try to load the invoice document from a XML file
+// This will recognize the correctnes and the profile
+
+$documentReader = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/assets/03_ZugferdDocumentReader_ImportFile_XRECHNUNG3.xml');
+
+// Optionally you can load the document from XML stream (string)
+// Note: We simulate the XML stream (string) by calling file_get_contents.
+
+$xmlContent = file_get_contents(__DIR__ . '/assets/03_ZugferdDocumentReader_ImportFile_XRECHNUNG3.xml');
+
+$documentReader = ZugferdDocumentReader::readAndGuessFromContent($xmlContent);
+
+// If no problems have occurred up to this point (invalid XML, unknown profile, etc.), then the document is now available
+// for us to read out
+
+// First we resolve the general invoice information.
+
+$documentReader->getDocumentInformation(
+    $documentNo,
+    $documentTypeCode,
+    $documentDate,
+    $documentCurrency,
+    $documentTaxCurrency,
+    $documentName,
+    $documentLanguage,
+    $effectiveSpecifiedPeriod
+);
+
+$documentReader->getDocumentSupplyChainEvent(
+    $documentDeliveryDate
+);
+
+writeNewLineToCli();
+writeLnToCli("Document Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli(" - Profile ............ %s", $documentReader->getProfileDefinitionParameter("name"));
+writeLnToCli(" - Profile Context .... %s", $documentReader->getProfileDefinitionParameter("contextparameter"));
+writeLnToCli(" - Document No ........ %s", $documentNo);
+writeLnToCli(" - Document Type ...... %s", $documentTypeCode);
+writeLnToCli(" - Document Date ...... %s", $documentDate->format("Y-m-d"));
+writeLnToCli(" - Invoice currency: .. %s", $documentCurrency);
+writeLnToCli(" - Tax currency ....... %s", $documentTaxCurrency);
+writeLnToCli(" - Delivery date ...... %s", $documentDeliveryDate->format("Y-m-d"));
+
+// Now let's get information about the seller. In addition to the methods listed here,
+// there are a few more available, but these are rarely required
+
+$documentReader->getDocumentSeller(
+    $sellerName,
+    $sellerIds,
+    $sellerDescription
+);
+
+$documentReader->getDocumentSellerGlobalId(
+    $sellerGlobalIds
+);
+
+$documentReader->getDocumentSellerTaxRegistration(
+    $sellerTaxRegistations
+);
+
+$documentReader->getDocumentSellerAddress(
+    $sellerAddressLineOne,
+    $sellerAddressLineTwo,
+    $sellerAddressLineThree,
+    $sellerAddressPostCode,
+    $sellerAddressCity,
+    $sellerAddressCountry,
+    $sellerAddressSubDivisions
+);
+
+$documentReader->getDocumentSellerCommunication(
+    $sellerCommunicationUriScheme,
+    $sellerCommunicationUri
+);
+
+writeNewLineToCli();
+writeLnToCli("Seller Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $sellerName);
+writeLnToCli('%s', $sellerAddressLineOne);
+writeLnToCli('%s', $sellerAddressLineTwo);
+writeLnToCli('%s', $sellerAddressLineThree);
+writeLnToCli('%s %s %s', $sellerAddressCountry, $sellerAddressPostCode, $sellerAddressCity);
+writeLnToCli('%s %s', $sellerCommunicationUriScheme, $sellerCommunicationUri);
+writeLnToCli('%s', implode(PHP_EOL, $sellerAddressSubDivisions));
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $sellerTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Seller identifications: %s', implode(",", $sellerIds));
+writeLnToCli('Seller global identifications: %s', implodeAssocArray(",", $sellerGlobalIds));
+
+// We now want to read out the contact information of our seller. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Seller contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentSellerContact()) {
+    do {
+        $documentReader->getDocumentSellerContact(
+            $sellerContactPersonname,
+            $sellerContactDepartmentname,
+            $sellerContactPhoneNo,
+            $sellerContactFaxNo,
+            $sellerContactEmailAddress
+        );
+        writeLnToCli('  %s', $sellerContactPersonname);
+        writeLnToCli('  %s', $sellerContactDepartmentname);
+        writeLnToCli('  %s', $sellerContactPhoneNo);
+        writeLnToCli('  %s', $sellerContactFaxNo);
+        writeLnToCli('  %s', $sellerContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentSellerContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Now let's get information about the buyer. In addition to the methods listed here,
+// there are a few more available, but these are rarely required
+
+$documentReader->getDocumentBuyer(
+    $buyerName,
+    $buyerIds,
+    $buyerDescription
+);
+
+$documentReader->getDocumentBuyerGlobalId(
+    $buyerGlobalIds
+);
+
+$documentReader->getDocumentBuyerTaxRegistration(
+    $buyerTaxRegistations
+);
+
+$documentReader->getDocumentBuyerAddress(
+    $buyerAddressLineOne,
+    $buyerAddressLineTwo,
+    $buyerAddressLineThree,
+    $buyerAddressPostCode,
+    $buyerAddressCity,
+    $buyerAddressCountry,
+    $buyerAddressSubDivisions
+);
+
+$documentReader->getDocumentbuyerCommunication(
+    $buyerCommunicationUriScheme,
+    $buyerCommunicationUri
+);
+
+writeNewLineToCli();
+writeLnToCli("Buyer Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $buyerName);
+writeLnToCli('%s', $buyerAddressLineOne);
+writeLnToCli('%s', $buyerAddressLineTwo);
+writeLnToCli('%s', $buyerAddressLineThree);
+writeLnToCli('%s %s %s', $buyerAddressCountry, $buyerAddressPostCode, $buyerAddressCity);
+writeLnToCli('%s', implode(PHP_EOL, $buyerAddressSubDivisions));
+writeLnToCli('%s %s', $buyerCommunicationUriScheme, $buyerCommunicationUri);
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $buyerTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Buyer identifications: %s', implode(",", $buyerIds));
+writeLnToCli('Buyer global identifications: %s', implodeAssocArray(",", $buyerGlobalIds));
+
+// We now want to read out the contact information of our buyer. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Buyer contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentBuyerContact()) {
+    do {
+        $documentReader->getDocumentBuyerContact(
+            $buyerContactPersonname,
+            $buyerContactDepartmentname,
+            $buyerContactPhoneNo,
+            $buyerContactFaxNo,
+            $buyerContactEmailAddress
+        );
+        writeLnToCli('  %s', $buyerContactPersonname);
+        writeLnToCli('  %s', $buyerContactDepartmentname);
+        writeLnToCli('  %s', $buyerContactPhoneNo);
+        writeLnToCli('  %s', $buyerContactFaxNo);
+        writeLnToCli('  %s', $buyerContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentBuyerContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Next we want to load and show the different shipping location
+
+$documentReader->getDocumentShipTo(
+    $shipToName,
+    $shipToIds,
+    $shipToDescription
+);
+
+$documentReader->getDocumentShipToGlobalId(
+    $shipToGlobalIds
+);
+
+$documentReader->getDocumentShipToTaxRegistration(
+    $shipToTaxRegistations
+);
+
+$documentReader->getDocumentShipToAddress(
+    $shipToAddressLineOne,
+    $shipToAddressLineTwo,
+    $shipToAddressLineThree,
+    $shipToAddressPostCode,
+    $shipToAddressCity,
+    $shipToAddressCountry,
+    $shipToAddressSubDivisions
+);
+
+writeNewLineToCli();
+writeLnToCli("Shipping location Information");
+writeLnToCli("--------------------------------------------------------------------------------");
+writeLnToCli('%s', $shipToName);
+writeLnToCli('%s', $shipToAddressLineOne);
+writeLnToCli('%s', $shipToAddressLineTwo);
+writeLnToCli('%s', $shipToAddressLineThree);
+writeLnToCli('%s %s %s', $shipToAddressCountry, $shipToAddressPostCode, $shipToAddressCity);
+writeLnToCli('%s', implode(PHP_EOL, $shipToAddressSubDivisions));
+writeNewLineToCli();
+writeLnToCli('%s', implodeAssocArray(", ", $shipToTaxRegistations));
+writeNewLineToCli();
+writeLnToCli('Shipping location identifications: %s', implode(",", $shipToIds));
+writeLnToCli('Shipping location global identifications: %s', implodeAssocArray(",", $shipToGlobalIds));
+
+// We now want to read out the contact information of our shipping location. Theoretically, there can be more than one contact,
+// which is why we have to iterate over the transmitted contacts:
+
+writeNewLineToCli();
+writeLnToCli("  Shipping location contact Information");
+writeLnToCli("  ------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentShipToContact()) {
+    do {
+        $documentReader->getDocumentShipToContact(
+            $shipToContactPersonname,
+            $shipToContactDepartmentname,
+            $shipToContactPhoneNo,
+            $shipToContactFaxNo,
+            $shipToContactEmailAddress
+        );
+        writeLnToCli('  %s', $shipToContactPersonname);
+        writeLnToCli('  %s', $shipToContactDepartmentname);
+        writeLnToCli('  %s', $shipToContactPhoneNo);
+        writeLnToCli('  %s', $shipToContactFaxNo);
+        writeLnToCli('  %s', $ShipToContactEmailAddress);
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentShipToContact());
+} else {
+    writeLnToCli('  No contact information found');
+}
+
+// Let's get the document positions. There are several method names starting with getDocumentPosition*. The methods listed
+// here are the most frequently used. We have to use a loop to iterate over the position, similar how we retrieved the party contacts.
+
+writeNewLineToCli();
+writeLnToCli("Document positions");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentPosition()) {
+    do {
+        // Get the general information of the position
+
+        $documentReader->getDocumentPositionGenerals(
+            $positionLineId,
+            $positionLineStatusCode,
+            $positionLineStatusReasonCode
+        );
+
+        // Get the product information
+
+        $documentReader->getDocumentPositionProductDetails(
+            $positionProductName,
+            $positionProductDescription,
+            $positionProductSellerAssignedID,
+            $positionProductBuyerAssignedID,
+            $positionProductGlobalIDType,
+            $positionProductGlobalID
+        );
+
+        // Get the net unit price
+
+        $documentReader->getDocumentPositionNetPrice(
+            $positionNetUnitPrice,
+            $positionBasisQuantity,
+            $positionBasisQuantityUnitCode
+        );
+
+        // Get the position invoiced quantity
+
+        $documentReader->getDocumentPositionQuantity(
+            $positionBilledQuantity,
+            $positionBilledQuantityUnitCode,
+            $positionChargeFreeQuantity,
+            $positionChargeFreeQuantityUnitCpde,
+            $positionPackageQuantity,
+            $positionPackageQuantityUnitCode
+        );
+
+        // Get the position amount summation
+
+        $documentReader->getDocumentPositionLineSummationSimple(
+            $positionTotalNetAmount
+        );
+
+        // Write the position information to CLI
+
+        writeLnToCli('  Position %s', $positionLineId);
+        writeLnToCli("  ------------------------------------------------------------------------------");
+        writeLnToCli('  %s', $positionProductName);
+        writeLnToCli('  %s', $positionProductDescription);
+        writeLnToCli('  Unit Price        %s %s', number_format($positionNetUnitPrice, 2), $documentCurrency);
+        writeLnToCli('  Quantity/Unit     %s %s', number_format($positionBilledQuantity, 5), $positionBilledQuantityUnitCode);
+        writeLnToCli('  Line Amount       %s %s', number_format($positionTotalNetAmount, 2), $documentCurrency);
+
+        // Get the tax information of the position.
+        // According to the data model, several tax rates could also be assigned per item. In Germany, for example, this
+        // is not permitted. We must also use the appropriate first/next method here
+
+        if ($documentReader->firstDocumentPositionTax()) {
+            $documentReader->getDocumentPositionTax(
+                $positionTaxCategoryCode,
+                $positionTaxTypeCode,
+                $positionTaxRateApplicablePercent,
+                $positionTaxCalculatedAmount,
+                $positionTaxExemptionReason,
+                $positionTaxExemptionReasonCode
+            );
+
+            writeLnToCli('  Tax category      %s', $positionTaxCategoryCode);
+            writeLnToCli('  Tax type          %s', $positionTaxTypeCode);
+            writeLnToCli('  Tax percent       %s %%', number_format($positionTaxRateApplicablePercent, 2));
+        }
+
+        writeNewLineToCli();
+    } while ($documentReader->nextDocumentPosition());
+} else {
+    writeLnToCli('No document positions found');
+}
+
+// Finally, we determine the VAT statement and the total amounts of the document.
+// As there could be several tax rates per invoice here, we have to work with the appropriate first/next methods again:
+
+// Get the VAT statement
+
+writeNewLineToCli();
+writeLnToCli("VAT Statement");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+if ($documentReader->firstDocumentTax()) {
+    writeLnToCli("  Tax Category         Tax Type             Tax percent");
+    writeLnToCli("  ------------------------------------------------------------------------------");
+    do {
+        $documentReader->getDocumentTax(
+            $documentTaxcategoryCode,
+            $documentTaxTypeCode,
+            $documentTaxBasisAmount,
+            $documentTaxCalculatedAmount,
+            $documentTaxRateApplicablePercent,
+            $documentTaxExemptionReason,
+            $documentTaxExemptionReasonCode,
+            $documentTaxLineTotalBasisAmount,
+            $documentTaxAllowanceChargeBasisAmount,
+            $documentTaxTaxPointDate,
+            $documentTaxDueDateTypeCode
+        );
+
+        writeLnToCli(
+            '  %s %s %s',
+            str_pad($documentTaxcategoryCode, 20, " ", STR_PAD_RIGHT),
+            str_pad($documentTaxTypeCode, 20, " ", STR_PAD_RIGHT),
+            str_pad(number_format($documentTaxRateApplicablePercent, 2), 10, " ", STR_PAD_RIGHT),
+        );
+    } while ($documentReader->nextDocumentTax());
+} else {
+    writeLnToCli('  No tax information found');
+}
+
+// Get the document totals (summation)
+
+writeNewLineToCli();
+writeLnToCli("Document totals");
+writeLnToCli("--------------------------------------------------------------------------------");
+
+$documentReader->getDocumentSummation(
+    $documentGrandTotalAmount,
+    $documentDuePayableAmount,
+    $documentLineTotalAmount,
+    $documentChargeTotalAmount,
+    $documentAllowanceTotalAmount,
+    $documentTaxBasisTotalAmount,
+    $documentTaxTotalAmount,
+    $documentRoundingAmount,
+    $documentTotalPrepaidAmount
+);
+
+writeLnToCli('Total Net Amount          %s %s', str_pad(number_format($documentLineTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Tax Basis Amount    %s %s', str_pad(number_format($documentTaxBasisTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Tax Amount          %s %s', str_pad(number_format($documentTaxTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Total Gross Amount        %s %s', str_pad(number_format($documentGrandTotalAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Amount already paid       %s %s', str_pad(number_format($documentTotalPrepaidAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
+writeLnToCli('Amount to pay             %s %s', str_pad(number_format($documentDuePayableAmount, 2), 10, " ", STR_PAD_LEFT), $documentCurrency);
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/00_AdditionalDocument.csv
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/00_AdditionalDocument.csv	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/00_AdditionalDocument.csv	(revision 8542)
@@ -0,0 +1,1 @@
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_EN16931.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_EN16931.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_EN16931.xml	(revision 8542)
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>R-2024/00001</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20241231</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+                <ram:Name>TrennblÃ€tter A4</ram:Name>
+                <ram:Description>50er Pack</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.90</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.00</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+                <ram:Name>Joghurt Banane</ram:Name>
+                <ram:Description>B-Ware</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.50</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">50.00</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>ARNR3</ram:SellerAssignedID>
+                <ram:Name>Joghurt Erdbeer</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>4.00</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">100.00</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>400.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:SellerTradeParty>
+                <ram:ID>549910</ram:ID>
+                <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>H. MÃŒller</ram:PersonName>
+                    <ram:DepartmentName>Verkauf</ram:DepartmentName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>+49-111-2222222</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>hm@lieferant.de</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">sales@lieferant.de</ram:URIID>
+                </ram:URIUniversalCommunication>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>GE2020211</ram:ID>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>H. Meier</ram:PersonName>
+                    <ram:DepartmentName>Einkauf</ram:DepartmentName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>+49-333-4444444</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>hm@kunde.de</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">purchase@kunde.de</ram:URIID>
+                </ram:URIUniversalCommunication>
+            </ram:BuyerTradeParty>
+            <ram:SellerOrderReferencedDocument>
+                <ram:IssuerAssignedID>SO-2024-000993337</ram:IssuerAssignedID>
+            </ram:SellerOrderReferencedDocument>
+            <ram:BuyerOrderReferencedDocument>
+                <ram:IssuerAssignedID>PO-2024-0003324</ram:IssuerAssignedID>
+            </ram:BuyerOrderReferencedDocument>
+            <ram:ContractReferencedDocument>
+                <ram:IssuerAssignedID>CON-2024/2025-001</ram:IssuerAssignedID>
+            </ram:ContractReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>REFDOC-2024/00001-1</ram:IssuerAssignedID>
+                <ram:URIID>http.//some.url</ram:URIID>
+                <ram:TypeCode>916</ram:TypeCode>
+                <ram:Name>Inhaltsstoffe Joghurt</ram:Name>
+            </ram:AdditionalReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>REFDOC-2024/00001-2</ram:IssuerAssignedID>
+                <ram:TypeCode>916</ram:TypeCode>
+                <ram:Name>Herkunftsnachweis TrennblÃ€tter</ram:Name>
+                <ram:AttachmentBinaryObject mimeCode="text/csv" filename="00_AdditionalDocument.csv">TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNldGV0dXIgc2FkaXBzY2luZyBlbGl0ciwgc2VkIGRpYW0gbm9udW15IGVpcm1vZCB0ZW1wb3IgaW52aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdXlhbSBlcmF0LCBzZWQgZGlhbSB2b2x1cHR1YS4gQXQgdmVybyBlb3MgZXQgYWNjdXNhbSBldCBqdXN0byBkdW8gZG9sb3JlcyBldCBlYSByZWJ1bS4gU3RldCBjbGl0YSBrYXNkIGd1YmVyZ3Jlbiwgbm8gc2VhIHRha2ltYXRhIHNhbmN0dXMgZXN0IExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2V0ZXR1ciBzYWRpcHNjaW5nIGVsaXRyLCBzZWQgZGlhbSBub251bXkgZWlybW9kIHRlbXBvciBpbnZpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1eWFtIGVyYXQsIHNlZCBkaWFtIHZvbHVwdHVhLiBBdCB2ZXJvIGVvcyBldCBhY2N1c2FtIGV0IGp1c3RvIGR1byBkb2xvcmVzIGV0IGVhIHJlYnVtLiBTdGV0IGNsaXRhIGthc2QgZ3ViZXJncmVuLCBubyBzZWEgdGFraW1hdGEgc2FuY3R1cyBlc3QgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQu</ram:AttachmentBinaryObject>
+            </ram:AdditionalReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>LOS 738625</ram:IssuerAssignedID>
+                <ram:TypeCode>50</ram:TypeCode>
+            </ram:AdditionalReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>125</ram:IssuerAssignedID>
+                <ram:TypeCode>130</ram:TypeCode>
+                <ram:ReferenceTypeCode>SA</ram:ReferenceTypeCode>
+            </ram:AdditionalReferencedDocument>
+            <ram:SpecifiedProcuringProject>
+                <ram:ID>PROJ-2025-001-1</ram:ID>
+                <ram:Name>Allgemeine Dienstleistungen</ram:Name>
+            </ram:SpecifiedProcuringProject>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ShipToTradeParty>
+                <ram:Name>Kunden AG Ost</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>04109</ram:PostcodeCode>
+                    <ram:LineOne>LieferstraÃe 1</ram:LineOne>
+                    <ram:CityName>Leipzig</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:ShipToTradeParty>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20250115</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:CreditorReferenceID>R-2024/00001</ram:CreditorReferenceID>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:PayeeTradeParty>
+                <ram:Name>Kunden AG Zahlungsdienstleistung</ram:Name>
+            </ram:PayeeTradeParty>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>59</ram:TypeCode>
+                <ram:PayerPartyDebtorFinancialAccount>
+                    <ram:IBANID>DE12500105170648489890</ram:IBANID>
+                </ram:PayerPartyDebtorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>47.25</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>675.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:BillingSpecifiedPeriod>
+                <ram:StartDateTime>
+                    <udt:DateTimeString format="102">20250101</udt:DateTimeString>
+                </ram:StartDateTime>
+                <ram:EndDateTime>
+                    <udt:DateTimeString format="102">20250131</udt:DateTimeString>
+                </ram:EndDateTime>
+            </ram:BillingSpecifiedPeriod>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Wird von Konto DE12500105170648489890 abgebucht</ram:Description>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20250131</udt:DateTimeString>
+                </ram:DueDateDateTime>
+                <ram:DirectDebitMandateID>MANDATE-2024/000001</ram:DirectDebitMandateID>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>873.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>873.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">84.87</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>957.87</ram:GrandTotalAmount>
+                <ram:DuePayableAmount>957.87</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_XRECHNUNG3.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_XRECHNUNG3.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/examples/assets/03_ZugferdDocumentReader_ImportFile_XRECHNUNG3.xml	(revision 8542)
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <rsm:ExchangedDocumentContext>
+    <ram:BusinessProcessSpecifiedDocumentContextParameter>
+      <ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>
+    </ram:BusinessProcessSpecifiedDocumentContextParameter>
+    <ram:GuidelineSpecifiedDocumentContextParameter>
+      <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
+    </ram:GuidelineSpecifiedDocumentContextParameter>
+  </rsm:ExchangedDocumentContext>
+  <rsm:ExchangedDocument>
+    <ram:ID>R-2024/00001</ram:ID>
+    <ram:TypeCode>380</ram:TypeCode>
+    <ram:IssueDateTime>
+      <udt:DateTimeString format="102">20241231</udt:DateTimeString>
+    </ram:IssueDateTime>
+    <ram:IncludedNote>
+      <ram:Content>Lieferant GmbH
+LieferantenstraÃe 20
+80333 MÃŒnchen
+Deutschland
+GeschÃ€ftsfÃŒhrer: Hans Muster
+Handelsregisternummer: H A 123
+
+</ram:Content>
+      <ram:SubjectCode>REG</ram:SubjectCode>
+    </ram:IncludedNote>
+  </rsm:ExchangedDocument>
+  <rsm:SupplyChainTradeTransaction>
+    <ram:IncludedSupplyChainTradeLineItem>
+      <ram:AssociatedDocumentLineDocument>
+        <ram:LineID>1</ram:LineID>
+      </ram:AssociatedDocumentLineDocument>
+      <ram:SpecifiedTradeProduct>
+        <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+        <ram:Name>TrennblÃ€tter A4</ram:Name>
+        <ram:Description>50er Pack</ram:Description>
+      </ram:SpecifiedTradeProduct>
+      <ram:SpecifiedLineTradeAgreement>
+        <ram:NetPriceProductTradePrice>
+          <ram:ChargeAmount>9.90</ram:ChargeAmount>
+        </ram:NetPriceProductTradePrice>
+      </ram:SpecifiedLineTradeAgreement>
+      <ram:SpecifiedLineTradeDelivery>
+        <ram:BilledQuantity unitCode="H87">20.00</ram:BilledQuantity>
+      </ram:SpecifiedLineTradeDelivery>
+      <ram:SpecifiedLineTradeSettlement>
+        <ram:ApplicableTradeTax>
+          <ram:TypeCode>VAT</ram:TypeCode>
+          <ram:CategoryCode>S</ram:CategoryCode>
+          <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+        </ram:ApplicableTradeTax>
+        <ram:SpecifiedTradeSettlementLineMonetarySummation>
+          <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+        </ram:SpecifiedTradeSettlementLineMonetarySummation>
+      </ram:SpecifiedLineTradeSettlement>
+    </ram:IncludedSupplyChainTradeLineItem>
+    <ram:IncludedSupplyChainTradeLineItem>
+      <ram:AssociatedDocumentLineDocument>
+        <ram:LineID>2</ram:LineID>
+      </ram:AssociatedDocumentLineDocument>
+      <ram:SpecifiedTradeProduct>
+        <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+        <ram:Name>Joghurt Banane</ram:Name>
+        <ram:Description>B-Ware</ram:Description>
+      </ram:SpecifiedTradeProduct>
+      <ram:SpecifiedLineTradeAgreement>
+        <ram:NetPriceProductTradePrice>
+          <ram:ChargeAmount>5.50</ram:ChargeAmount>
+        </ram:NetPriceProductTradePrice>
+      </ram:SpecifiedLineTradeAgreement>
+      <ram:SpecifiedLineTradeDelivery>
+        <ram:BilledQuantity unitCode="H87">50.00</ram:BilledQuantity>
+      </ram:SpecifiedLineTradeDelivery>
+      <ram:SpecifiedLineTradeSettlement>
+        <ram:ApplicableTradeTax>
+          <ram:TypeCode>VAT</ram:TypeCode>
+          <ram:CategoryCode>S</ram:CategoryCode>
+          <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+        </ram:ApplicableTradeTax>
+        <ram:SpecifiedTradeSettlementLineMonetarySummation>
+          <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+        </ram:SpecifiedTradeSettlementLineMonetarySummation>
+      </ram:SpecifiedLineTradeSettlement>
+    </ram:IncludedSupplyChainTradeLineItem>
+    <ram:IncludedSupplyChainTradeLineItem>
+      <ram:AssociatedDocumentLineDocument>
+        <ram:LineID>3</ram:LineID>
+      </ram:AssociatedDocumentLineDocument>
+      <ram:SpecifiedTradeProduct>
+        <ram:SellerAssignedID>ARNR3</ram:SellerAssignedID>
+        <ram:Name>Joghurt Erdbeer</ram:Name>
+      </ram:SpecifiedTradeProduct>
+      <ram:SpecifiedLineTradeAgreement>
+        <ram:NetPriceProductTradePrice>
+          <ram:ChargeAmount>4.00</ram:ChargeAmount>
+        </ram:NetPriceProductTradePrice>
+      </ram:SpecifiedLineTradeAgreement>
+      <ram:SpecifiedLineTradeDelivery>
+        <ram:BilledQuantity unitCode="H87">100.00</ram:BilledQuantity>
+      </ram:SpecifiedLineTradeDelivery>
+      <ram:SpecifiedLineTradeSettlement>
+        <ram:ApplicableTradeTax>
+          <ram:TypeCode>VAT</ram:TypeCode>
+          <ram:CategoryCode>S</ram:CategoryCode>
+          <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+        </ram:ApplicableTradeTax>
+        <ram:SpecifiedTradeSettlementLineMonetarySummation>
+          <ram:LineTotalAmount>400.00</ram:LineTotalAmount>
+        </ram:SpecifiedTradeSettlementLineMonetarySummation>
+      </ram:SpecifiedLineTradeSettlement>
+    </ram:IncludedSupplyChainTradeLineItem>
+    <ram:ApplicableHeaderTradeAgreement>
+      <ram:BuyerReference>34676-342323</ram:BuyerReference>
+      <ram:SellerTradeParty>
+        <ram:ID>549910</ram:ID>
+        <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+        <ram:Name>Lieferant GmbH</ram:Name>
+        <ram:DefinedTradeContact>
+          <ram:PersonName>H. MÃŒller</ram:PersonName>
+          <ram:DepartmentName>Verkauf</ram:DepartmentName>
+          <ram:TelephoneUniversalCommunication>
+            <ram:CompleteNumber>+49-111-2222222</ram:CompleteNumber>
+          </ram:TelephoneUniversalCommunication>
+          <ram:EmailURIUniversalCommunication>
+            <ram:URIID>hm@lieferant.de</ram:URIID>
+          </ram:EmailURIUniversalCommunication>
+        </ram:DefinedTradeContact>
+        <ram:PostalTradeAddress>
+          <ram:PostcodeCode>80333</ram:PostcodeCode>
+          <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+          <ram:CityName>MÃŒnchen</ram:CityName>
+          <ram:CountryID>DE</ram:CountryID>
+        </ram:PostalTradeAddress>
+        <ram:URIUniversalCommunication>
+          <ram:URIID schemeID="EM">sales@lieferant.de</ram:URIID>
+        </ram:URIUniversalCommunication>
+        <ram:SpecifiedTaxRegistration>
+          <ram:ID schemeID="FC">201/113/40209</ram:ID>
+        </ram:SpecifiedTaxRegistration>
+        <ram:SpecifiedTaxRegistration>
+          <ram:ID schemeID="VA">DE123456789</ram:ID>
+        </ram:SpecifiedTaxRegistration>
+      </ram:SellerTradeParty>
+      <ram:BuyerTradeParty>
+        <ram:ID>GE2020211</ram:ID>
+        <ram:Name>Kunden AG Mitte</ram:Name>
+        <ram:DefinedTradeContact>
+          <ram:PersonName>H. Meier</ram:PersonName>
+          <ram:DepartmentName>Einkauf</ram:DepartmentName>
+          <ram:TelephoneUniversalCommunication>
+            <ram:CompleteNumber>+49-333-4444444</ram:CompleteNumber>
+          </ram:TelephoneUniversalCommunication>
+          <ram:EmailURIUniversalCommunication>
+            <ram:URIID>hm@kunde.de</ram:URIID>
+          </ram:EmailURIUniversalCommunication>
+        </ram:DefinedTradeContact>
+        <ram:PostalTradeAddress>
+          <ram:PostcodeCode>69876</ram:PostcodeCode>
+          <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+          <ram:CityName>Frankfurt</ram:CityName>
+          <ram:CountryID>DE</ram:CountryID>
+        </ram:PostalTradeAddress>
+        <ram:URIUniversalCommunication>
+          <ram:URIID schemeID="EM">purchase@kunde.de</ram:URIID>
+        </ram:URIUniversalCommunication>
+      </ram:BuyerTradeParty>
+      <ram:SellerOrderReferencedDocument>
+        <ram:IssuerAssignedID>SO-2024-000993337</ram:IssuerAssignedID>
+      </ram:SellerOrderReferencedDocument>
+      <ram:BuyerOrderReferencedDocument>
+        <ram:IssuerAssignedID>PO-2024-0003324</ram:IssuerAssignedID>
+      </ram:BuyerOrderReferencedDocument>
+      <ram:ContractReferencedDocument>
+        <ram:IssuerAssignedID>CON-2024/2025-001</ram:IssuerAssignedID>
+      </ram:ContractReferencedDocument>
+      <ram:AdditionalReferencedDocument>
+        <ram:IssuerAssignedID>REFDOC-2024/00001-1</ram:IssuerAssignedID>
+        <ram:URIID>http.//some.url</ram:URIID>
+        <ram:TypeCode>916</ram:TypeCode>
+        <ram:Name>Inhaltsstoffe Joghurt</ram:Name>
+      </ram:AdditionalReferencedDocument>
+      <ram:AdditionalReferencedDocument>
+        <ram:IssuerAssignedID>REFDOC-2024/00001-2</ram:IssuerAssignedID>
+        <ram:TypeCode>916</ram:TypeCode>
+        <ram:Name>Herkunftsnachweis TrennblÃ€tter</ram:Name>
+        <ram:AttachmentBinaryObject mimeCode="text/csv" filename="00_AdditionalDocument.csv">TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNldGV0dXIgc2FkaXBzY2luZyBlbGl0ciwgc2VkIGRpYW0gbm9udW15IGVpcm1vZCB0ZW1wb3IgaW52aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdXlhbSBlcmF0LCBzZWQgZGlhbSB2b2x1cHR1YS4gQXQgdmVybyBlb3MgZXQgYWNjdXNhbSBldCBqdXN0byBkdW8gZG9sb3JlcyBldCBlYSByZWJ1bS4gU3RldCBjbGl0YSBrYXNkIGd1YmVyZ3Jlbiwgbm8gc2VhIHRha2ltYXRhIHNhbmN0dXMgZXN0IExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2V0ZXR1ciBzYWRpcHNjaW5nIGVsaXRyLCBzZWQgZGlhbSBub251bXkgZWlybW9kIHRlbXBvciBpbnZpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1eWFtIGVyYXQsIHNlZCBkaWFtIHZvbHVwdHVhLiBBdCB2ZXJvIGVvcyBldCBhY2N1c2FtIGV0IGp1c3RvIGR1byBkb2xvcmVzIGV0IGVhIHJlYnVtLiBTdGV0IGNsaXRhIGthc2QgZ3ViZXJncmVuLCBubyBzZWEgdGFraW1hdGEgc2FuY3R1cyBlc3QgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQu</ram:AttachmentBinaryObject>
+      </ram:AdditionalReferencedDocument>
+      <ram:AdditionalReferencedDocument>
+        <ram:IssuerAssignedID>LOS 738625</ram:IssuerAssignedID>
+        <ram:TypeCode>50</ram:TypeCode>
+      </ram:AdditionalReferencedDocument>
+      <ram:AdditionalReferencedDocument>
+        <ram:IssuerAssignedID>125</ram:IssuerAssignedID>
+        <ram:TypeCode>130</ram:TypeCode>
+        <ram:ReferenceTypeCode>SA</ram:ReferenceTypeCode>
+      </ram:AdditionalReferencedDocument>
+      <ram:SpecifiedProcuringProject>
+        <ram:ID>PROJ-2025-001-1</ram:ID>
+        <ram:Name>Allgemeine Dienstleistungen</ram:Name>
+      </ram:SpecifiedProcuringProject>
+    </ram:ApplicableHeaderTradeAgreement>
+    <ram:ApplicableHeaderTradeDelivery>
+      <ram:ShipToTradeParty>
+        <ram:Name>Kunden AG Ost</ram:Name>
+        <ram:PostalTradeAddress>
+          <ram:PostcodeCode>04109</ram:PostcodeCode>
+          <ram:LineOne>LieferstraÃe 1</ram:LineOne>
+          <ram:CityName>Leipzig</ram:CityName>
+          <ram:CountryID>DE</ram:CountryID>
+        </ram:PostalTradeAddress>
+      </ram:ShipToTradeParty>
+      <ram:ActualDeliverySupplyChainEvent>
+        <ram:OccurrenceDateTime>
+          <udt:DateTimeString format="102">20250115</udt:DateTimeString>
+        </ram:OccurrenceDateTime>
+      </ram:ActualDeliverySupplyChainEvent>
+    </ram:ApplicableHeaderTradeDelivery>
+    <ram:ApplicableHeaderTradeSettlement>
+      <ram:CreditorReferenceID>R-2024/00001</ram:CreditorReferenceID>
+      <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+      <ram:PayeeTradeParty>
+        <ram:Name>Kunden AG Zahlungsdienstleistung</ram:Name>
+      </ram:PayeeTradeParty>
+      <ram:SpecifiedTradeSettlementPaymentMeans>
+        <ram:TypeCode>59</ram:TypeCode>
+        <ram:PayerPartyDebtorFinancialAccount>
+          <ram:IBANID>DE12500105170648489890</ram:IBANID>
+        </ram:PayerPartyDebtorFinancialAccount>
+      </ram:SpecifiedTradeSettlementPaymentMeans>
+      <ram:ApplicableTradeTax>
+        <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+        <ram:TypeCode>VAT</ram:TypeCode>
+        <ram:BasisAmount>198.00</ram:BasisAmount>
+        <ram:CategoryCode>S</ram:CategoryCode>
+        <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+      </ram:ApplicableTradeTax>
+      <ram:ApplicableTradeTax>
+        <ram:CalculatedAmount>47.25</ram:CalculatedAmount>
+        <ram:TypeCode>VAT</ram:TypeCode>
+        <ram:BasisAmount>675.00</ram:BasisAmount>
+        <ram:CategoryCode>S</ram:CategoryCode>
+        <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+      </ram:ApplicableTradeTax>
+      <ram:BillingSpecifiedPeriod>
+        <ram:StartDateTime>
+          <udt:DateTimeString format="102">20250101</udt:DateTimeString>
+        </ram:StartDateTime>
+        <ram:EndDateTime>
+          <udt:DateTimeString format="102">20250131</udt:DateTimeString>
+        </ram:EndDateTime>
+      </ram:BillingSpecifiedPeriod>
+      <ram:SpecifiedTradePaymentTerms>
+        <ram:Description>Wird von Konto DE12500105170648489890 abgebucht</ram:Description>
+        <ram:DueDateDateTime>
+          <udt:DateTimeString format="102">20250131</udt:DateTimeString>
+        </ram:DueDateDateTime>
+        <ram:DirectDebitMandateID>MANDATE-2024/000001</ram:DirectDebitMandateID>
+      </ram:SpecifiedTradePaymentTerms>
+      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        <ram:LineTotalAmount>873.00</ram:LineTotalAmount>
+        <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+        <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+        <ram:TaxBasisTotalAmount>873.00</ram:TaxBasisTotalAmount>
+        <ram:TaxTotalAmount currencyID="EUR">84.87</ram:TaxTotalAmount>
+        <ram:GrandTotalAmount>957.87</ram:GrandTotalAmount>
+        <ram:DuePayableAmount>957.87</ram:DuePayableAmount>
+      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+    </ram:ApplicableHeaderTradeSettlement>
+  </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genchangelog.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genchangelog.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genchangelog.php	(revision 8542)
@@ -0,0 +1,211 @@
+<?php
+
+if (!function_exists('str_starts_with')) {
+    function str_starts_with(string $haystack, string $needle): bool
+    {
+        return $needle === '' || strpos($haystack, $needle) === 0;
+    }
+}
+
+if (!function_exists('str_contains')) {
+    function str_contains($haystack, $needle)
+    {
+        return (strpos($haystack, (string) $needle) !== false);
+    }
+}
+
+if (!function_exists('str_ends_with')) {
+    function str_ends_with(string $haystack, string $needle): bool
+    {
+        return $needle === '' || substr($haystack, -strlen($needle)) === $needle;
+    }
+}
+
+function stricontains(string $haystack, string $needle): bool
+{
+    return str_contains(strtolower($haystack), strtolower($needle));
+}
+
+function stristartswith(string $haystack, string $needle): bool
+{
+    return str_starts_with(strtolower($haystack), strtolower($needle));
+}
+
+function correctAuthor(string $author): string
+{
+    if (in_array($author, ["horstoeko", "ruff", "Daniel Erling"], true)) {
+        return "HorstOeko";
+    }
+
+    return $author;
+}
+
+function correctSubject(string $commitSubject, ?array &$issues): string
+{
+    $commitSubject = str_replace('[UPDATE-FEATURE]', '', $commitSubject);
+    $commitSubject = str_replace('[TEST-FEATURE]', '', $commitSubject);
+    $commitSubject = str_replace('[UPDATE2-FEATURE]', '', $commitSubject);
+
+    $issues = [];
+
+    if (preg_match_all('/#\d+\b/', $commitSubject, $matches)) {
+        $issues = array_unique($matches[0]);
+    }
+
+    foreach ($issues as $issue) {
+        $commitSubject = str_replace($issue, '', $commitSubject);
+    }
+
+    if (str_starts_with($commitSubject, 'Merge pull request')) {
+        $commitSubject = 'Merged PR';
+    }
+
+    return trim($commitSubject);
+}
+
+function mustHideCommit(?string $commitHash = "", ?string $commitAuthor = "", ?string $commitDate = "", ?string $commitSubject = ""): bool
+{
+    if (in_array($commitSubject, [null, '', '0'], true)) {
+        return true;
+    }
+
+    return stricontains($commitSubject, '[CS]') || stricontains($commitSubject, '[DOC]') || stricontains($commitSubject, '[INFR]') || stricontains($commitSubject, '[INFR}') || stricontains($commitSubject, 'Added CheckStyÃ¶e Script to composer') || stricontains($commitSubject, 'Added dependabot.yml') || stricontains($commitSubject, 'Added PHP8.4 Build') || stricontains($commitSubject, 'Added single workflow for PHP 8.4') || stricontains($commitSubject, 'Added WIKI-Update workflow') || stricontains($commitSubject, 'build.ci') || stricontains($commitSubject, 'build.release') || stricontains($commitSubject, 'buildv2') || stricontains($commitSubject, 'build.yml') || stricontains($commitSubject, 'maintain-issues-stale') || stricontains($commitSubject, 'Class Documentation (Wiki) Generator improved') || stricontains($commitSubject, 'Class markdown generation for the wiki') || stricontains($commitSubject, 'Code styling') || stricontains($commitSubject, 'composer.json') || stricontains($commitSubject, 'Documentation') || stricontains($commitSubject, 'Enable all sources in gencodelists.php') || stricontains($commitSubject, 'Fix .gitgnore') || stricontains($commitSubject, 'Fix build.wiki.yml') || stricontains($commitSubject, 'Fix Class doc generation script') || stricontains($commitSubject, 'Fix class doc generator script') || stricontains($commitSubject, 'Fix DocBlock') || stricontains($commitSubject, 'Fix docs') || stricontains($commitSubject, 'Fix for generator of Wiki class documentation') || stricontains($commitSubject, 'Fix genmethoddocs') || stricontains($commitSubject, 'Fix GitHub workflows') || stricontains($commitSubject, 'Fix maintain-issues-stale.yml') || stricontains($commitSubject, 'Fix name of release workflow') || stricontains($commitSubject, 'Fix PHPStan Config') || stricontains($commitSubject, 'Fix README.md') || stricontains($commitSubject, 'Fix README.mD') || stricontains($commitSubject, 'Fix workflow') || stricontains($commitSubject, 'Fixed CheckStyle Issues') || stricontains($commitSubject, 'Fixed Fixed genmethoddocs') || stricontains($commitSubject, 'Fixed PHPMD issue') || stricontains($commitSubject, 'Format build.phpall.ant') || stricontains($commitSubject, 'Improved class documentation generator script') || stricontains($commitSubject, 'Improved DocBlocks') || stricontains($commitSubject, 'Improved docs') || stricontains($commitSubject, 'Improved linting in github actions') || stricontains($commitSubject, 'Improved matrix build') || stricontains($commitSubject, 'issue templates') || stricontains($commitSubject, 'Matrix build') || stricontains($commitSubject, 'Merge branch') || stricontains($commitSubject, 'Moved pull_request_template.md') || stricontains($commitSubject, 'New Release workflow added') || stricontains($commitSubject, 'PHPDoc') || stricontains($commitSubject, 'README.md') || stricontains($commitSubject, 'Removed build.php84.ant.yml') || stricontains($commitSubject, 'Removed dependabot.yml') || stricontains($commitSubject, 'Reordered methods') || stricontains($commitSubject, 'Reorganized test') || stricontains($commitSubject, 'Run Release Build on PHP 8.4') || stricontains($commitSubject, 'Set XDEBUG mode') || stricontains($commitSubject, 'Update build.wiki.yml') || stricontains($commitSubject, 'Update PHPDoc') || stricontains($commitSubject, 'Update wiki on release build') || stricontains($commitSubject, 'Updated action versions in all workflows') || stricontains($commitSubject, 'Updated README.md') || stricontains($commitSubject, 'Updated README.README.md') || stricontains($commitSubject, 'Updated script to create class overview for WIKI') || stricontains($commitSubject, "Run CI's on PR's") || stricontains($commitSubject, 'Added badges') || stricontains($commitSubject, 'Fix Mock Tests') || stricontains($commitSubject, 'More code coverage') || stricontains($commitSubject, 'Code Doc Styling') || stricontains($commitSubject, 'Updated actions') || stricontains($commitSubject, 'Exclude .github-folder from action runner') || stricontains($commitSubject, 'config.yml') || stricontains($commitSubject, 'CONTRIBUTING.md') || stricontains($commitSubject, 'SECURITY.md') || stricontains($commitSubject, 'CODE_OF_CONDUCT.md') || stricontains($commitSubject, 'pull request template') || stricontains($commitSubject, 'Excluded examples folder from workflow runs') || stricontains($commitSubject, 'Allow manually run specific workflows') || stricontains($commitSubject, 'Added issue template for a question') || stricontains($commitSubject, 'Fix template for bug-report') || stricontains($commitSubject, 'Added issue template for a new feature') || stricontains($commitSubject, 'Fix bug report template') || stricontains($commitSubject, 'pull_request_template.md') || stricontains($commitSubject, 'Fixed CheckStyle Errors') || stricontains($commitSubject, 'Cleanup Buildscript') || stricontains($commitSubject, 'Ignore changes on MD-Files') || stricontains($commitSubject, 'Reformatted code') || stricontains($commitSubject, 'Code beautify') || stricontains($commitSubject, 'Code cleabing') || stricontains($commitSubject, 'Code cleaning') || stricontains($commitSubject, 'Used PHPCBF to make clean code') || stricontains($commitSubject, 'Used PHPCBF to make clean code') || stricontains($commitSubject, 'CheckStyle') || stricontains($commitSubject, 'Test reorganization') || stricontains($commitSubject, 'Made tests ready for PHPUnit10') || stricontains($commitSubject, 'Removed phpdox') || stricontains($commitSubject, 'Rename workflows') || stricontains($commitSubject, 'Removed useless .Jenkinsfile') || stricontains($commitSubject, 'Fix github action') || stricontains($commitSubject, 'Build infrastructure') || stricontains($commitSubject, 'Enhance build target') || stricontains($commitSubject, 'Fix ANT build script') || stricontains($commitSubject, 'Rename release workflow file') || stricontains($commitSubject, 'Fix build scrip') || stricontains($commitSubject, 'Removed temp files') || stricontains($commitSubject, 'gitignore') || stricontains($commitSubject, 'Removed sami') || stricontains($commitSubject, 'GitHub-Actions') || stricontains($commitSubject, 'Fix phpdox download url') || stricontains($commitSubject, 'Added composer scripts') || stricontains($commitSubject, 'Added build workflow') || stricontains($commitSubject, 'Added release workflow') || stricontains($commitSubject, 'Added action for php') || stricontains($commitSubject, 'Phing') || stricontains($commitSubject, 'Fix tests') || stricontains($commitSubject, 'Excluded entities subdirectory from phpdox') || stricontains($commitSubject, 'Fixed code with PHPCBF using PSR12 Standard') || stricontains($commitSubject, 'Added PHPCS Rulez for PSR12') || stricontains($commitSubject, 'Include PHPStan to ANT buildscript') || stricontains($commitSubject, 'Better code quality using phpstan') || stricontains($commitSubject, 'Code cleanup') || stricontains($commitSubject, 'Added workflows/build.ant.yml') || strcasecmp("Fixes", $commitSubject) === 0 || strcasecmp("Fix", $commitSubject) === 0;
+}
+
+function getMarkDown($prevTag, $currTag)
+{
+    $markDown = [];
+
+    echo sprintf('Getting commits from %s to %s', $prevTag, $currTag) . PHP_EOL;
+
+    $commitStr = shell_exec(sprintf('git log --no-merges --oneline --format="%%h|%%an|%%ad|%%s" "%s..%s"', $prevTag, $currTag));
+
+    if (is_null($commitStr) || $commitStr === false) {
+        return $markDown;
+    }
+
+    $commits = array_filter(explode("\n", trim($commitStr)));
+
+    if ($commits === []) {
+        return $markDown;
+    }
+
+    $noOfHiddenCommits = 0;
+
+    $commits = array_filter($commits, function ($commit) use (&$noOfHiddenCommits) {
+        [$commitHash, $commitAuthor, $commitDate, $commitSubject] = explode("|", $commit);
+        $hidden = mustHideCommit($commitHash, $commitAuthor, $commitDate, $commitSubject);
+        if ($hidden) {
+            $noOfHiddenCommits++;
+        }
+
+        return !$hidden;
+    });
+
+    $markDown[] = sprintf('## %s', $currTag);
+    $markDown[] = '';
+
+    if ($commits !== []) {
+        $markDown[] = sprintf('``Previous version %s``', $prevTag);
+        $markDown[] = '';
+        $markDown[] = '| Type | Hash    | Date    | Author  | Subject  | Issue(s)';
+        $markDown[] = '| :--- | :------ | :------ | :------ | :------- | :-----------: ';
+
+        foreach ($commits as $commit) {
+            [$commitHash, $commitAuthor, $commitDate, $commitSubject] = explode("|", $commit);
+
+            if (mustHideCommit($commitHash, $commitAuthor, $commitDate, $commitSubject)) {
+                $noOfHiddenCommits++;
+                continue;
+            }
+
+            $time = (new \DateTime())->setTimeStamp(strtotime($commitDate))->setTimezone(new DateTimeZone('Europe/Berlin'));
+
+            $commitDate = $time->format('Y-m-d H:i:s T');
+            $commitAuthor = correctAuthor($commitAuthor);
+            $commitSubject = correctSubject($commitSubject, $commitIssues);
+            $commitIssuesWithUrls = array_map(function ($issue) {
+                return sprintf('[%1$s](https://github.com/horstoeko/zugferd/issues/%2$s)', $issue, substr($issue, 1));
+            }, $commitIssues);
+
+            $commitSubjectIcons = "";
+            $commitSubjectIcons .= str_starts_with($commitSubject, '[ENH] ') ? ':new: ' : '';
+            $commitSubjectIcons .= str_starts_with($commitSubject, '[DEPR] ') ? ':closed_book: ' : '';
+            $commitSubjectIcons .= str_starts_with($commitSubject, '[FIX] ') ? ':bug: ' : '';
+            $commitSubjectIcons .= str_starts_with($commitSubject, '[FEAT] ') ? ':new: ' : '';
+
+            $commitSubjectIcons .= ($commitSubjectIcons === "" ? ':new_moon: ' : '');
+
+            $markDown[] = sprintf('| %6$s | [%1$s](https://github.com/horstoeko/zugferd/commit/%1$s) | %2$s | %3$s | %4$s | %5$s', $commitHash, $commitDate, $commitAuthor, $commitSubject, implode(", ", $commitIssuesWithUrls), $commitSubjectIcons);
+        }
+
+        $markDown[] = '';
+    }
+
+    if ($noOfHiddenCommits === 1) {
+        $markDown[] = ":exclamation: _There is one internal commit_";
+        $markDown[] = '';
+    }
+
+    if ($noOfHiddenCommits > 1) {
+        $markDown[] = sprintf(":exclamation: _There are %s internal commit(s)_", $noOfHiddenCommits);
+        $markDown[] = '';
+    }
+
+    return $markDown;
+}
+
+function printMarkdown(array $markDown): void
+{
+    foreach ($markDown as $_) {
+        echo $_ . PHP_EOL;
+    }
+}
+
+echo "----------------------------------------------------------------------" . PHP_EOL;
+echo "---- Generating CHANGELOG.md" . PHP_EOL;
+echo "----------------------------------------------------------------------" . PHP_EOL;
+
+if (!isset($argv[1]) && !isset($argv[2])) {
+    echo "No arguments found using latest and current tag" . PHP_EOL;
+    $lastHash = trim(shell_exec('git rev-list --tags --skip=1 --max-count=1'));
+    $prevTag = trim(shell_exec(sprintf('git describe --abbrev=0 --tags %s', $lastHash)));
+    $currTag = trim(shell_exec('git describe --tags --abbrev=0'));
+    echo "Found tags..." . PHP_EOL;
+    echo ' - prevTag: ' . $prevTag . PHP_EOL;
+    echo ' - currTag: ' . $currTag . PHP_EOL;
+    file_put_contents(__DIR__ . '/CHANGELOG.md', implode("\n", getMarkDown($prevTag, $currTag)));
+} elseif (isset($argv[1]) && $argv[1] === "all") {
+    echo "All-argument was presented. Looking for all tags" . PHP_EOL;
+    $completeMarkDown = [];
+    $allTags = explode("\n", trim(shell_exec('git tag --sort=-creatordate')));
+    $allTags = array_filter($allTags, function ($tag) {
+        return str_starts_with($tag, "v0.") === false;
+    });
+    if ($allTags !== []) {
+        echo "Found tags..." . implode(', ', $allTags) . PHP_EOL;
+        foreach ($allTags as $currTagKey => $currTag) {
+            if (!isset($allTags[$currTagKey + 1])) {
+                continue;
+            }
+
+            $prevTag = $allTags[$currTagKey + 1];
+            echo sprintf('Looking for tag %s (Previous: %s)', $currTag, $prevTag) . PHP_EOL;
+            $markDown = getMarkDown($prevTag, $currTag);
+            foreach ($markDown as $markDownLine) {
+                $completeMarkDown[] = $markDownLine;
+            }
+        }
+
+        file_put_contents(__DIR__ . '/CHANGELOG.md', implode("\n", $completeMarkDown));
+    } else {
+        echo "No tags were found" . PHP_EOL;
+    }
+} else {
+    echo "First and previous tag were presented" . PHP_EOL;
+    $prevTag = $argv[1];
+    $currTag = $argv[2];
+    echo ' - prevTag: ' . $prevTag . PHP_EOL;
+    echo ' - currTag: ' . $currTag . PHP_EOL;
+    file_put_contents(__DIR__ . '/CHANGELOG.md', implode("\n", getMarkDown($prevTag, $currTag)));
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genmethoddocs.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genmethoddocs.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/genmethoddocs.php	(revision 8542)
@@ -0,0 +1,731 @@
+<?php
+
+use horstoeko\stringmanagement\StringUtils;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptor;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptorEn16931;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptorExtended;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptorXRechnung;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptorXRechnung2;
+use horstoeko\zugferd\quick\ZugferdQuickDescriptorXRechnung3;
+use horstoeko\zugferd\ZugferdDocument;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+use horstoeko\zugferd\ZugferdDocumentPdfReader;
+use horstoeko\zugferd\ZugferdDocumentPdfReaderExt;
+use horstoeko\zugferd\ZugferdDocumentProfileConverter;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdDocumentValidator;
+use horstoeko\zugferd\ZugferdKositValidator;
+use horstoeko\zugferd\ZugferdPdfValidator;
+use horstoeko\zugferd\ZugferdSettings;
+use horstoeko\zugferd\ZugferdXsdValidator;
+use Nette\PhpGenerator\ClassType;
+use Nette\PhpGenerator\Printer;
+use phpDocumentor\Reflection\DocBlock\Tags\Param;
+use phpDocumentor\Reflection\DocBlock\Tags\Return_;
+use phpDocumentor\Reflection\DocBlockFactory;
+use phpDocumentor\Reflection\Exception\PcreException;
+use Webmozart\Assert\InvalidArgumentException;
+
+require __DIR__ . "/../vendor/autoload.php";
+
+class CustomPhpPrinter extends Printer
+{
+    public function __construct()
+    {
+        parent::__construct();
+
+        $this->indentation = '  ';
+    }
+}
+
+class ExtractClass
+{
+    /**
+     * The class to analyze
+     *
+     * @var string
+     */
+    protected $className = "";
+
+    /**
+     * Class + method name to ignore in inheritance check
+     *
+     * @var array
+     */
+    protected $ignoreInheritance = [];
+
+    /**
+     * Constructor
+     *
+     * @param string $className
+     * @param array  $ignoreInheritance
+     */
+    public function __construct(string $className, array $ignoreInheritance = [])
+    {
+        $this->className = $className;
+        $this->ignoreInheritance = $ignoreInheritance;
+    }
+
+    /**
+     * Returns the current classnane
+     *
+     * @return string
+     * */
+    public function getClassName(): string
+    {
+        return $this->className;
+    }
+
+    /**
+     * Returns the base name of the current classname
+     *
+     * @return string
+     */
+    public function getClassBasename(): string
+    {
+        $classParts = explode('\\', $this->className);
+        return end($classParts);
+    }
+
+    /**
+     * Magic method __toString, String converstion
+     *
+     * @return string
+     * @throws InvalidArgumentException
+     * @throws PcreException
+     * @throws LogicException
+     */
+    public function __toString()
+    {
+        return $this->getJson();
+    }
+
+    /**
+     * Returns the result as array
+     *
+     * @return array
+     * @throws InvalidArgumentException
+     * @throws PcreException
+     * @throws LogicException
+     */
+    public function getArray(): array
+    {
+        $reflection = new ReflectionClass($this->className);
+        $classDocComment = $reflection->getDocComment();
+        $methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC); // Only public methods
+        $docBlockFactory = DocBlockFactory::createInstance();
+        $result = [];
+        $result['methods'] = [];
+
+        if ($classDocComment !== false) {
+            $classDocBlock = $docBlockFactory->create($classDocComment);
+            $deprecatedTag = $classDocBlock->getTagsByName('deprecated');
+            $result['class'] = [
+                'summary' => in_array($classDocBlock->getSummary(), ['', '0'], true) ? '' : $classDocBlock->getSummary(),
+                'description' => (string)$classDocBlock->getDescription() !== '' && (string)$classDocBlock->getDescription() !== '0' ? (string)$classDocBlock->getDescription() : '',
+                'deprecated' => $deprecatedTag === [] ? '' : (string)$deprecatedTag[0]
+            ];
+        } else {
+            $result['class'] = [
+                'summary' => '',
+                'description' => '',
+                'deprecated' => ''
+            ];
+        }
+
+        foreach ($methods as $method) {
+            if ($method->getDeclaringClass()->getName() != $this->className && !in_array(sprintf('%s::%s', $this->className, $method->getName()), $this->ignoreInheritance)) {
+                continue;
+            }
+
+            $docComment = $method->getDocComment();
+            $parameters = [];
+            $returnDetails = [
+                'type' => 'void',
+                'description' => ''
+            ];
+            $methodDetails = [
+                'summary' => '',
+                'description' => '',
+                'static' => false,
+                'abstract' => false,
+                'final' => false,
+                'hasadditional' => false,
+                'deprecated' => '',
+            ];
+
+            if ($docComment !== false) {
+                $docBlock = $docBlockFactory->create($docComment);
+
+                // Extract summary and description
+                $methodDetails['summary'] = in_array($docBlock->getSummary(), ['', '0'], true) ? 'No summary available.' : $docBlock->getSummary();
+                $methodDetails['description'] = (string)$docBlock->getDescription() !== '' && (string)$docBlock->getDescription() !== '0' ? (string)$docBlock->getDescription() : '';
+                $methodDetails['static'] = $method->isStatic();
+                $methodDetails['abstract'] = $method->isAbstract();
+                $methodDetails['final'] = $method->isFinal();
+                $methodDetails['hasadditional'] = $method->isStatic() || $method->isAbstract() || $method->isFinal();
+                $deprecatedTag = $docBlock->getTagsByName('deprecated');
+                if ($deprecatedTag !== []) {
+                    $methodDetails['deprecated'] = (string)$deprecatedTag[0];
+                }
+
+                // Parse @param tags
+                $paramDescriptions = [];
+                foreach ($docBlock->getTagsByName('param') as $tag) {
+                    if ($tag instanceof Param) {
+                        $paramDescriptions[$tag->getVariableName()] = [
+                            'type' => (string) $tag->getType(),
+                            'description' => (string) $tag->getDescription()
+                        ];
+                    }
+                }
+
+                // Parse @return tag
+                $returnTag = $docBlock->getTagsByName('return');
+                if ($returnTag !== [] && $returnTag[0] instanceof Return_) {
+                    $returnDetails['type'] = (string) $returnTag[0]->getType();
+                    $returnDetails['description'] = (string) $returnTag[0]->getDescription();
+                }
+            }
+
+            // Get method parameters and match them with DocBlock descriptions
+            foreach ($method->getParameters() as $parameter) {
+                $parameterName = $parameter->getName();
+                $parameterType = $parameter->getType();
+                $parameterTypeString = "";
+
+                if ($parameterType instanceof ReflectionUnionType) {
+                    $types = $parameterType->getTypes();
+                    foreach ($types as $type) {
+                        $parameterTypeString .= $type->getName() . '|';
+                    }
+
+                    $parameterTypeString = rtrim($parameterTypeString, '|');
+                } elseif ($parameterType instanceof ReflectionNamedType) {
+                    $parameterTypeString = $parameterType->getName();
+                } else {
+                    $parameterTypeString = 'mixed';
+                }
+
+                $parameters[] = [
+                    'name' => $parameterName,
+                    'type' => $parameterTypeString ?: 'mixed',
+                    'isNullable' => $parameterType && $parameterType->allowsNull(),
+                    'defaultValueavailable' => $parameter->isOptional() && $parameter->isDefaultValueAvailable(),
+                    'defaultValue' => $parameter->isOptional() ? ($parameter->isDefaultValueAvailable() ? $parameter->getDefaultValue() : null) : null,
+                    'description' => $paramDescriptions[$parameterName]['description'] ?? ''
+                ];
+            }
+
+            $result['methods'][$method->getName()] = [
+                'methodDetails' => $methodDetails,
+                'parameters' => $parameters,
+                'return' => $returnDetails
+            ];
+        }
+
+        return $result;
+    }
+
+    /**
+     * Returns the result as JSON string
+     *
+     * @return string
+     * @throws InvalidArgumentException
+     * @throws PcreException
+     * @throws LogicException
+     */
+    public function getJson(): string
+    {
+        return json_encode($this->getArray(), JSON_PRETTY_PRINT);
+    }
+
+    /**
+     * Save Json to file
+     *
+     * @param string $filename
+     * @return void
+     * @throws InvalidArgumentException
+     */
+    public function saveJson(string $filename): void
+    {
+        file_put_contents($filename, $this->getJson());
+    }
+}
+
+class MarkDownGenerator
+{
+    /**
+     * Extractor
+     *
+     * @var ExtractClass
+     */
+    protected $extractor;
+
+    /**
+     * The lines for the MD
+     *
+     * @var string[]
+     */
+    protected $lines = [];
+
+    /**
+     * Constructor
+     *
+     * @param ExtractClass $extractor
+     */
+    public function __construct(ExtractClass $extractor)
+    {
+        $this->extractor = $extractor;
+    }
+
+    /**
+     * Generate markdown
+     *
+     * @return MarkDownGenerator
+     */
+    public function generateMarkdown(): MarkDownGenerator
+    {
+        $metaData = $this->extractor->getArray();
+
+        $this->addLineH2("Summary");
+
+        $phpPrinter = new CustomPhpPrinter();
+        $phpClass = new ClassType($this->extractor->getClassBasename());
+
+        if (!empty($metaData['class']['summary'])) {
+            $this->addLine($this->removeSprintfPlaceholder($metaData['class']['summary'] ?? ""))->addEmptyLine();
+        }
+
+        if (!empty($metaData['class']['description'])) {
+            $this->addLine($this->removeSprintfPlaceholder($metaData['class']['description'] ?? ""))->addEmptyLine();
+        }
+
+        if (!empty($metaData['class']['deprecated'])) {
+            $this->addLine("> [!CAUTION]");
+            $this->addLine("> Deprecated %s", $metaData['class']['deprecated']);
+            $this->addEmptyLine();
+        }
+
+        $this->addExample(__DIR__ . sprintf('/md/%s.md', $this->extractor->getClassBasename()), true);
+
+        if (!empty($metaData['methods'])) {
+            $this->addLineH2("Methods");
+        }
+
+        foreach ($metaData['methods'] as $methodName => $methodData) {
+            $this->addLineH3($methodName, $methodData["methodDetails"]["hasadditional"] === false);
+
+            if ($methodData["methodDetails"]["static"] === true) {
+                $this->addToLastLine('<span style="color: white; background-color: blue; padding: 0.2em 0.5em; border-radius: 0.2em; font-size: .8rem">``[static]``</span>', " ");
+            }
+
+            if ($methodData["methodDetails"]["abstract"] === true) {
+                $this->addToLastLine('<span style="color: white; background-color: red; padding: 0.2em 0.5em; border-radius: 0.2em; font-size: .8rem">``[abstract]``</span>', " ");
+            }
+
+            if ($methodData["methodDetails"]["final"] === true) {
+                $this->addToLastLine('<span style="color: white; background-color: green; padding: 0.2em 0.5em; border-radius: 0.2em; font-size: .8rem">``[final]``</span>', " ");
+            }
+
+            if ($methodData["methodDetails"]["hasadditional"] === true) {
+                $this->addEmptyLine();
+            }
+
+            if (!empty($methodData["methodDetails"]["deprecated"])) {
+                $this->addLine("> [!CAUTION]");
+                $this->addLine("> Deprecated %s", $methodData["methodDetails"]["deprecated"]);
+                $this->addEmptyLine();
+            }
+
+            $this->addLineH4("Summary");
+
+            if (!empty($methodData["methodDetails"]["summary"])) {
+                $this->addLineItalic($this->removeSprintfPlaceholder($methodData["methodDetails"]["summary"]))->addEmptyLine();
+            }
+
+            if (!empty($methodData["methodDetails"]["description"])) {
+                $this->addLineItalic($this->removeSprintfPlaceholder($methodData["methodDetails"]["description"]))->addEmptyLine();
+            }
+
+            $this->addLineH4("Signature");
+
+            $phpMethod = $phpClass->addMethod($methodName);
+            $phpMethod->setPublic();
+            $phpMethod->setStatic($methodData["methodDetails"]["static"] === true);
+            $phpMethod->setAbstract($methodData["methodDetails"]["abstract"] === true);
+            $phpMethod->setFinal($methodData["methodDetails"]["final"] === true);
+            $phpMethod->setReturnType($this->fixPhpType($methodData["return"]["type"]));
+            //$phpMethod->setBody(null);
+
+            foreach ($methodData["parameters"] as $parameter) {
+                $phpParameter = $phpMethod
+                    ->addParameter($parameter["name"])
+                    ->setType($this->fixPhpType($parameter["type"]))
+                    ->setNullable($parameter["isNullable"]);
+
+                if ($parameter['defaultValueavailable'] === true) {
+                    $phpParameter->setDefaultValue($parameter["defaultValue"]);
+                }
+            }
+
+            $this->addLineRaw("```php");
+            $this->addLineRaw($phpPrinter->printMethod($phpMethod));
+            $this->addLineRaw("```");
+
+            if (!empty($methodData["parameters"])) {
+                $this->addLineH4("Parameters");
+                $this->addLine("| Name | Type | Allows Null | Description");
+                $this->addLine("| :------ | :------ | :-----: | :------");
+
+                foreach ($methodData["parameters"] as $parameter) {
+                    $this->addLine(
+                        "| %s | %s | %s | %s",
+                        $parameter["name"],
+                        $parameter["type"],
+                        $this->boolToMarkDown($parameter["isNullable"] ? "Yes" : "No"),
+                        $parameter["description"] ?? "",
+                    );
+                }
+
+                $this->addEmptyLine();
+            } else {
+                $this->addEmptyLine();
+            }
+
+            if ($methodData["return"]["type"] && $methodData["return"]["type"] != "void") {
+                $this->addLineH4("Returns");
+                $this->addLineRaw(sprintf("Returns a value of type __%s__", $methodData["return"]["type"]));
+                $this->addEmptyLine();
+            }
+
+            $this->addExample(__DIR__ . sprintf('/md/%s_%s.md', $this->extractor->getClassBasename(), $methodName));
+        }
+
+        return $this;
+    }
+
+    /**
+     * Save MD to file
+     *
+     * @param string $filename
+     * @return MarkDownGenerator
+     */
+    public function saveToFile(string $filename): MarkDownGenerator
+    {
+        file_put_contents($filename, implode(PHP_EOL, $this->lines));
+
+        return $this;
+    }
+
+    /**
+     * Add a line to internal container
+     *
+     * @param string $string
+     * @param mixed ...$args
+     * @return MarkDownGenerator
+     */
+    private function addLine(string $string, ...$args): MarkDownGenerator
+    {
+        if (StringUtils::stringIsNullOrEmpty($string)) {
+            return $this;
+        }
+
+        $this->lines[] = $this->sanatizeString(sprintf($string, ...$args));
+
+        return $this;
+    }
+
+    /**
+     * Add a line to internal container
+     *
+     * @param string $string
+     * @param mixed ...$args
+     * @return MarkDownGenerator
+     */
+    private function addLineRaw(string $string, ...$args): MarkDownGenerator
+    {
+        if (StringUtils::stringIsNullOrEmpty($string)) {
+            return $this;
+        }
+
+        $this->lines[] = sprintf($string, ...$args);
+
+        return $this;
+    }
+
+    /**
+     * Add an empty line to internal container
+     *
+     * @return MarkDownGenerator
+     */
+    private function addEmptyLine(): MarkDownGenerator
+    {
+        $this->lines[] = "";
+
+        return $this;
+    }
+
+    /**
+     * Add an H2-Line to internal container
+     *
+     * @param string $string
+     * @param boolean $newLine
+     * @return MarkDownGenerator
+     */
+    private function addLineH2(string $string, bool $newLine = true): MarkDownGenerator
+    {
+        $this->addLine("## %s", $string);
+
+        if ($newLine) {
+            $this->addEmptyLine();
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add an H3-Line to internal container
+     *
+     * @param string $string
+     * @param boolean $newLine
+     * @return MarkDownGenerator
+     */
+    private function addLineH3(string $string, bool $newLine = true): MarkDownGenerator
+    {
+        $this->addLine("### %s", $string);
+
+        if ($newLine) {
+            $this->addEmptyLine();
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add an H4-Line to internal container
+     *
+     * @param string $string
+     * @param boolean $newLine
+     * @return MarkDownGenerator
+     */
+    private function addLineH4(string $string, bool $newLine = true): MarkDownGenerator
+    {
+        $this->addLine("#### %s", $string);
+
+        if ($newLine) {
+            $this->addEmptyLine();
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add a string to the latest line which was added
+     *
+     * @param string $string
+     * @param string $delimiter
+     * @param mixed ...$args
+     * @return MarkDownGenerator
+     */
+    private function addToLastLine(string $string, string $delimiter = "", ...$args): MarkDownGenerator
+    {
+        if ($this->lines === []) {
+            return $this->addLine($string, ...$args);
+        }
+
+        $lastIndex = count($this->lines) - 1;
+        $this->lines[$lastIndex] = $this->lines[$lastIndex] . $delimiter . sprintf($string, ...$args);
+
+        return $this;
+    }
+
+    /**
+     * Add line as italic formatted
+     *
+     * @param string $string
+     * @param mixed ...$args
+     * @return MarkDownGenerator
+     */
+    private function addLineItalic(string $string, ...$args): MarkDownGenerator
+    {
+        return $this->addLine(sprintf("_%s_", $string), ...$args);
+    }
+
+    /**
+     * Import an example from a markdown file
+     *
+     * @param string $exampleFilename
+     * @param bool $isClass
+     * @return MarkDownGenerator
+     */
+    private function addExample(string $exampleFilename, bool $isClass = false): MarkDownGenerator
+    {
+        if (!file_exists($exampleFilename)) {
+            return $this;
+        }
+
+        $exampleFileContent = file_get_contents($exampleFilename);
+
+        if ($exampleFileContent === false) {
+            return $this;
+        }
+
+        if ($isClass) {
+            $this->addLineH2("Example");
+        } else {
+            $this->addLineH4("Example");
+        }
+
+        $exampleFileContent = str_replace(["\r\n", "\r", "\n"], "\n", $exampleFileContent);
+
+        foreach (explode("\n", $exampleFileContent) as $exampleFileContentLine) {
+            $this->lines[] = $exampleFileContentLine;
+        }
+
+        $this->addEmptyLine();
+
+        return $this;
+    }
+
+    /**
+     * Sanatize a string
+     *
+     * @param string $string
+     * @return string
+     */
+    private function sanatizeString(string $string): string
+    {
+        $string = str_replace("\n", "<br/>", $string);
+        $string = str_replace("__BT-, From __", "", $string);
+        $string = str_replace("__BT-, From", "__BT-??, From", $string);
+
+        return trim($string);
+    }
+
+    /**
+     * Remove sprintf placeholders
+     *
+     * @param string $string
+     * @return string
+     */
+    private function removeSprintfPlaceholder(string $string): string
+    {
+        return str_replace("%", "", $string);
+    }
+
+    /**
+     * Fix the PHP type
+     *
+     * @param string $string
+     * @return string
+     */
+    private function fixPhpType(string $string): string
+    {
+        if (stripos($string, '[]') !== false) {
+            $string = 'array';
+        }
+
+        if (stripos($string, 'array<') === 0) {
+            $string = 'array';
+        }
+
+        if ($string === '$this') {
+            return 'static';
+        }
+
+        return $string;
+    }
+
+    /**
+     * Convert yes/no to markdown markup
+     *
+     * @param string $boolText
+     * @return string
+     */
+    private function boolToMarkDown(string $boolText): string
+    {
+        return strcasecmp($boolText, "no") === 0 ? ":x:" : ":heavy_check_mark:";
+    }
+}
+
+class BatchMarkDownGenerator
+{
+    /**
+     * Start a batch documentation creation
+     *
+     * @param array $classes
+     * @return void
+     * @throws InvalidArgumentException
+     * @throws PcreException
+     * @throws LogicException
+     */
+    public static function generate(array $classes, array $ignoreInheritance = [])
+    {
+        foreach ($classes as $className => $toFilename) {
+            $extractor = new ExtractClass($className, $ignoreInheritance);
+            $generator = new MarkDownGenerator($extractor);
+            $generator->generateMarkdown();
+            $generator->saveToFile($toFilename);
+        }
+    }
+}
+
+BatchMarkDownGenerator::generate([
+    ZugferdDocument::class => __DIR__ . '/Class-ZugferdDocument.md',
+    ZugferdSettings::class => __DIR__ . '/Class-ZugferdSettings.md',
+    ZugferdDocumentBuilder::class => __DIR__ . '/Class-ZugferdDocumentBuilder.md',
+    ZugferdDocumentReader::class => __DIR__ . '/Class-ZugferdDocumentReader.md',
+    ZugferdDocumentPdfReader::class => __DIR__ . '/Class-ZugferdDocumentPdfReader.md',
+    ZugferdDocumentPdfReaderExt::class => __DIR__ . '/Class-ZugferdDocumentPdfReaderExt.md',
+    ZugferdDocumentPdfBuilder::class => __DIR__ . '/Class-ZugferdDocumentPdfBuilder.md',
+    ZugferdDocumentPdfMerger::class => __DIR__ . '/Class-ZugferdDocumentPdfMerger.md',
+    ZugferdDocumentValidator::class => __DIR__ . '/Class-ZugferdDocumentValidator.md',
+    ZugferdXsdValidator::class => __DIR__ . '/Class-ZugferdXsdValidator.md',
+    ZugferdKositValidator::class => __DIR__ . '/Class-ZugferdKositValidator.md',
+    ZugferdPdfValidator::class => __DIR__ . '/Class-ZugferdPdfValidator.md',
+    ZugferdQuickDescriptor::class => __DIR__ . '/Class-ZugferdQuickDescriptor.md',
+    ZugferdQuickDescriptorEn16931::class => __DIR__ . '/Class-ZugferdQuickDescriptorEn16931.md',
+    ZugferdQuickDescriptorExtended::class => __DIR__ . '/Class-ZugferdQuickDescriptorExtended.md',
+    ZugferdQuickDescriptorXRechnung::class => __DIR__ . '/Class-ZugferdQuickDescriptorXRechnung.md',
+    ZugferdQuickDescriptorXRechnung2::class => __DIR__ . '/Class-ZugferdQuickDescriptorXRechnung2.md',
+    ZugferdQuickDescriptorXRechnung3::class => __DIR__ . '/Class-ZugferdQuickDescriptorXRechnung3.md',
+    ZugferdDocumentProfileConverter::class => __DIR__ . '/Class-ZugferdDocumentProfileConverter.md',
+], [
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::generateDocument',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::generateDocument',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::saveDocument',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::saveDocument',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::saveDocumentInline',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::saveDocumentInline',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::downloadString',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::downloadString',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAdditionalCreatorTool',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAdditionalCreatorTool',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAttachmentRelationshipType',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAttachmentRelationshipType',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAttachmentRelationshipTypeToData',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAttachmentRelationshipTypeToData',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAttachmentRelationshipTypeToAlternative',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAttachmentRelationshipTypeToAlternative',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAttachmentRelationshipTypeToSource',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAttachmentRelationshipTypeToSource',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::attachAdditionalFileByRealFile',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::attachAdditionalFileByRealFile',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::attachAdditionalFileByContent',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::attachAdditionalFileByContent',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setDeterministicModeEnabled',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setDeterministicModeEnabled',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setAuthorTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setAuthorTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setKeywordTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setKeywordTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setTitleTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setTitleTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setSubjectTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setSubjectTemplate',
+    \horstoeko\zugferd\ZugferdDocumentPdfBuilder::class . '::setMetaInformationCallback',
+    \horstoeko\zugferd\ZugferdDocumentPdfMerger::class . '::setMetaInformationCallback',
+]);
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder.md	(revision 8542)
@@ -0,0 +1,59 @@
+```php
+  use horstoeko\zugferd\codelists\ZugferdCountryCodes;
+  use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+  use horstoeko\zugferd\codelists\ZugferdElectronicAddressScheme;
+  use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+  use horstoeko\zugferd\codelists\ZugferdReferenceCodeQualifiers;
+  use horstoeko\zugferd\codelists\ZugferdUnitCodes;
+  use horstoeko\zugferd\codelists\ZugferdVatCategoryCodes;
+  use horstoeko\zugferd\codelists\ZugferdVatTypeCodes;
+  use horstoeko\zugferd\ZugferdDocumentBuilder;
+  use horstoeko\zugferd\ZugferdProfiles;
+
+  // Create an empty invoice document in the EN16931 profile
+  $document = ZugferdDocumentBuilder::CreateNew(ZugferdProfiles::PROFILE_EN16931);
+
+  // Add invoice and position information
+  $document
+    ->setDocumentInformation('R-2024/00001', ZugferdInvoiceType::INVOICE, DateTime::createFromFormat("Ymd", "20241231"), ZugferdCurrencyCodes::EURO)
+    ->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'LieferantenstraÃe 20' . PHP_EOL . '80333 MÃŒnchen' . PHP_EOL . 'Deutschland' . PHP_EOL . 'GeschÃ€ftsfÃŒhrer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG')
+    ->setDocumentBillingPeriod(DateTime::createFromFormat("Ymd", "20250101"), DateTime::createFromFormat("Ymd", "20250131"), "01.01.2025 - 31.01.2025")
+    ->setDocumentSeller("Lieferant GmbH", "549910")
+    ->addDocumentSellerGlobalId("4000001123452", "0088")
+    ->addDocumentSellerTaxNumber("201/113/40209")
+    ->addDocumentSellerVATRegistrationNumber("DE123456789")
+    ->setDocumentSellerAddress("LieferantenstraÃe 20", "", "", "80333", "MÃŒnchen", ZugferdCountryCodes::GERMANY)
+    ->setDocumentSellerContact("H. MÃŒller", "Verkauf", "+49-111-2222222", "+49-111-3333333", "hm@lieferant.de")
+    ->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'sales@lieferant.de')
+    ->setDocumentBuyer("Kunden AG Mitte", "GE2020211")
+    ->setDocumentBuyerAddress("KundenstraÃe 15", "", "", "69876", "Frankfurt", ZugferdCountryCodes::GERMANY)
+    ->setDocumentBuyerContact("H. Meier", "Einkauf", "+49-333-4444444", "+49-333-5555555", "hm@kunde.de")
+    ->setDocumentBuyerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM, 'purchase@kunde.de')
+    ->setDocumentShipTo("Kunden AG Ost")
+    ->setDocumentShipToAddress("LieferstraÃe 1", "", "", "04109", "Leipzig", ZugferdCountryCodes::GERMANY)
+    ->setDocumentSupplyChainEvent(DateTime::createFromFormat("Ymd", "20250115"))
+    ->addDocumentPaymentMeanToDirectDebit("DE12500105170648489890", "R-2024/00001")
+    ->addDocumentPaymentTerm('Wird von Konto DE12500105170648489890 abgebucht', DateTime::createFromFormat("Ymd", "20250131"), 'MANDATE-2024/000001')
+    ->addNewPosition("1")
+    ->setDocumentPositionProductDetails("TrennblÃ€tter A4", "50er Pack", "TB100A4")
+    ->setDocumentPositionNetPrice(9.9000)
+    ->setDocumentPositionQuantity(20, ZugferdUnitCodes::REC20_PIECE)
+    ->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 19)
+    ->setDocumentPositionLineSummation(198.0)
+    ->addNewPosition("2")
+    ->setDocumentPositionProductDetails("Joghurt Banane", "B-Ware", "ARNR2")
+    ->setDocumentPositionNetPrice(5.5000)
+    ->setDocumentPositionQuantity(50, ZugferdUnitCodes::REC20_PIECE)
+    ->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7)
+    ->setDocumentPositionLineSummation(275.0)
+    ->addNewPosition("3")
+    ->setDocumentPositionProductDetails("Joghurt Erdbeer", "", "ARNR3")
+    ->setDocumentPositionNetPrice(4.0000)
+    ->setDocumentPositionQuantity(100, ZugferdUnitCodes::REC20_PIECE)
+    ->addDocumentPositionTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 7)
+    ->setDocumentPositionLineSummation(400.0)
+    ->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 198.0, 37.62, 19.0)
+    ->addDocumentTax(ZugferdVatCategoryCodes::STAN_RATE, ZugferdVatTypeCodes::VALUE_ADDED_TAX, 675.0, 47.25, 7.0)
+    ->setDocumentSummation(957.87, 957.87, 873.00, 0.0, 0.0, 873.00, 84.87)
+    ->writeFile(dirname(__FILE__) . "/factur-x.xml");
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder_setDocumentInformation.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder_setDocumentInformation.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentBuilder_setDocumentInformation.md	(revision 8542)
@@ -0,0 +1,4 @@
+```php
+$document = ZugferdDocumentBuilder::CreateNew(ZugferdProfiles::PROFILE_EN16931);
+$document->setDocumentInformation('R-2024/00001', ZugferdInvoiceType::INVOICE, DateTime::createFromFormat("Ymd", "20241231"), ZugferdCurrencyCodes::EURO)
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder.md	(revision 8542)
@@ -0,0 +1,123 @@
+```php
+
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilderAbstract;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilder;
+use horstoeko\zugferd\ZugferdProfiles;
+
+// Build the XML using ZugferdDocumentBuilder
+
+$zugferdDocumentBuilder = ZugferdDocumentBuilder::CreateNew(ZugferdProfiles::PROFILE_EN16931);
+$zugferdDocumentBuilder
+    ->setDocumentInformation('R-2024/00001', ZugferdInvoiceType::INVOICE, DateTime::createFromFormat('Ymd', '20241231'), ZugferdCurrencyCodes::EURO)
+    ->......
+
+// Create a PDF using the XML content from ZugferdDocumentBuilder and an existing print-output file
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// Create a PDF using the XML content from ZugferdDocumentBuilder and a print-content stream (string)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfString($documentBuilder, '%PDF-1.5...........');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// Alternatively, you can also return the merged output as a content stream (string)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->generateDocument();
+$pdfBinaryString = $zugferdDocumentPdfBuilder->generateDocument()->downloadString();
+
+// If you would like to brand the merged PDF with the name of you own solution you can call
+// the method setAdditionalCreatorTool. Before calling this method the creator of the PDF is identified as 'Factur-X library 1.x.x by HorstOeko'.
+// After calling this method you get 'MyERPSolution 1.0 / Factur-X PHP library 1.x.x by HorstOeko' as the creator
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setAdditionalCreatorTool('MyERPSolution 1.0');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// It is also possible to add additional attachments to the merged PDF. These can be any files that can help the invoice
+// recipient with processing. For example, a time sheet as an Excel file would be conceivable.
+
+// The method attachAdditionalFileByRealFile has 3 parameters:
+// - The file to attach which must exist and must be readable
+// - (Optional) A name to display in the attachments of the PDF
+// - (Optional) The type of the relationship of the attachment. Valid values are defined in the class
+// ZugferdDocumentPdfBuilderAbstract. The constants are starting with AF_
+//
+// If you omit the last 2 parameters the following will happen:
+// - The displayname is calculated from the filename you specified
+// - The type of the relationship of the attachment will be AF_RELATIONSHIP_SUPPLEMENT (Supplement)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->attachAdditionalFileByRealFile('/path/to/existing.file', "Some display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// You can also add an attachment to the PDF as an stream (string). The conditions are the same as above for the attachAdditionalFileByRealFile method
+// The only difference to attachAdditionalFileByRealFile is that the attachAdditionalFileByContent method accepts 4 parameters, whereby here (as with attachAdditionalFileByRealFile)
+// the last two can be omitted. You only need to specify a file name under which the file is to be embedded
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->attachAdditionalFileByContent('<xml>....</xml>', 'additionalDocument.csv', "Some other display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// We can change some meta information such as the title, the subject, the author and the keywords. This library essentially provides 4 methods for this:
+// - setAuthorTemplate
+// - setTitleTemplate
+// - setSubjectTemplate
+// - setKeywordTemplate
+// The 4 methods just mentioned accept a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+// The following example would generate...
+// - the author:  .... Issued by seller with name Lieferant GmbH
+// - the title    .... Lieferant GmbH : Invoice R-2024/00001
+// - the subject  .... Invoice-Document, Issued by Lieferant GmbH
+// - the keywords .... R-2024/00001, Invoice, Lieferant GmbH, 2024-12-31
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setAuthorTemplate('Issued by seller with name %3$s');
+$zugferdDocumentPdfBuilder->setTitleTemplate('%3$s : %2$s %1$s');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('%2$s-Document, Issued by %3$s');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('%1$s, %2$s, %3$s, %4$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+// If the previously mentioned options for manipulating the meta information are not sufficient,
+// you can also use a callback function. The following 4 parameters are passed to the callback
+// function in the specified order:
+// - $which               .... one of "author", "title", "subject" and "keywords"
+// - $xmlContent          .... the content of the xml as a string
+// - $invoiceInformation  .... an array with some information about the invoice
+// - $default             .... The default value for the specified field (see $which
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(
+    function ($which) {
+        if ($which === 'title') {
+            return "DummyTitle";
+        }
+        if ($which === 'author') {
+            return "DummyAuthor";
+        }
+        if ($which === 'subject') {
+            return "DummySubject";
+        }
+        if ($which === 'keywords') {
+            return "DummyKeywords";
+        }
+    }
+);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByContent.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByContent.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByContent.md	(revision 8542)
@@ -0,0 +1,12 @@
+```php
+
+// You can also add an attachment to the PDF as an stream (string). The conditions are the same as above for the attachAdditionalFileByRealFile method
+// The only difference to attachAdditionalFileByRealFile is that the attachAdditionalFileByContent method accepts 4 parameters, whereby here (as with attachAdditionalFileByRealFile)
+// the last two can be omitted. You only need to specify a file name under which the file is to be embedded
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->attachAdditionalFileByContent('<xml>....</xml>', 'additionalDocument.csv', "Some other display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByRealFile.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByRealFile.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_attachAdditionalFileByRealFile.md	(revision 8542)
@@ -0,0 +1,18 @@
+```php
+
+// The method attachAdditionalFileByRealFile has 3 parameters:
+// - The file to attach which must exist and must be readable
+// - (Optional) A name to display in the attachments of the PDF
+// - (Optional) The type of the relationship of the attachment. Valid values are defined in the class
+//   ZugferdDocumentPdfBuilderAbstract. The constants are starting with AF_
+//
+// If you omit the last 2 parameters the following will happen:
+// - The displayname is calculated from the filename you specified
+// - The type of the relationship of the attachment will be AF_RELATIONSHIP_SUPPLEMENT (Supplement)
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->attachAdditionalFileByRealFile('/path/to/existing.file', "Some display Name", ZugferdDocumentPdfBuilderAbstract::AF_RELATIONSHIP_SUPPLEMENT);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAdditionalCreatorTool.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAdditionalCreatorTool.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAdditionalCreatorTool.md	(revision 8542)
@@ -0,0 +1,11 @@
+```php
+
+// Before calling this method the creator of the PDF is identified as 'Factur-X library 1.x.x by HorstOeko'.
+// After calling this method you get 'MyERPSolution 1.0 / Factur-X PHP library 1.x.x by HorstOeko' as the creator
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setAdditionalCreatorTool('MyERPSolution 1.0');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAuthorTemplate.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAuthorTemplate.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setAuthorTemplate.md	(revision 8542)
@@ -0,0 +1,18 @@
+```php
+
+// Change the author of the generated (merged) PDF
+
+// This method accepts a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+
+// The follwing example will generate: Issued by seller with name Lieferant GmbH
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setAuthorTemplate('Issued by seller with name %3$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setKeywordTemplate.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setKeywordTemplate.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setKeywordTemplate.md	(revision 8542)
@@ -0,0 +1,18 @@
+```php
+
+// Change the keywords of the generated (merged) PDF
+
+// This method accepts a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+
+// The follwing example will generate: R-2024/00001, Invoice, Lieferant GmbH, 2024-12-31
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setKeywordTemplate('%1$s, %2$s, %3$s, %4$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setMetaInformationCallback.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setMetaInformationCallback.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setMetaInformationCallback.md	(revision 8542)
@@ -0,0 +1,32 @@
+```php
+
+// Use a callback function to manipulate the meta information.
+
+// The following 4 parameters are passed to the callback
+// function in the specified order:
+// - $which               .... one of "author", "title", "subject" and "keywords"
+// - $xmlContent          .... the content of the xml as a string
+// - $invoiceInformation  .... an array with some information about the invoice
+// - $default             .... The default value for the specified field (see $which
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setMetaInformationCallback(
+    function ($which) {
+        if ($which === 'title') {
+            return "DummyTitle";
+        }
+        if ($which === 'author') {
+            return "DummyAuthor";
+        }
+        if ($which === 'subject') {
+            return "DummySubject";
+        }
+        if ($which === 'keywords') {
+            return "DummyKeywords";
+        }
+    }
+);
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setSubjectTemplate.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setSubjectTemplate.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setSubjectTemplate.md	(revision 8542)
@@ -0,0 +1,18 @@
+```php
+
+// Change the subject of the generated (merged) PDF
+
+// This method accepts a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+
+// The follwing example will generate: Invoice-Document, Issued by Lieferant GmbH
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setSubjectTemplate('%2$s-Document, Issued by %3$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setTitleTemplate.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setTitleTemplate.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfBuilder_setTitleTemplate.md	(revision 8542)
@@ -0,0 +1,18 @@
+```php
+
+// Change the title of the generated (merged) PDF
+
+// This method accepts a free text that can accept the following placeholders:
+// - %1$s .... contains the invoice number (is extracted from the XML data)
+// - %2$s .... contains the type of XML document, such as âInvoiceâ (is extracted from the XML data)
+// - %3$s .... contains the name of the seller (extracted from the XML data)
+// - %4$s .... contains the invoice date (extracted from the XML data)
+
+// The follwing example will generate: Lieferant GmbH : Invoice R-2024/00001
+
+$zugferdDocumentPdfBuilder = ZugferdDocumentPdfBuilder::fromPdfFile($zugferdDocumentBuilder, '/tmp/existingprintlayout.pdf');
+$zugferdDocumentPdfBuilder->setTitleTemplate('%3$s : %2$s %1$s');
+$zugferdDocumentPdfBuilder->generateDocument();
+$zugferdDocumentPdfBuilder->saveDocument('/tmp/merged.pdf');
+
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfMerger.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfMerger.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdDocumentPdfMerger.md	(revision 8542)
@@ -0,0 +1,67 @@
+### Example for merging an existing PDF file with an existing XML file
+
+```php
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+
+$existingXmlFile = "/tmp/invoice_1.xml";
+$existingPdfFile = "/tmp/emptypdf.pdf";
+$mergeToPdf = "/tmp/fullpdf.pdf";
+
+if (!file_exists($existingXmlFile) || !file_exists($existingPdfFile)) {
+    throw new \Exception("XML and/or PDF does not exist");
+}
+
+(new ZugferdDocumentPdfMerger($existingXmlFile, $existingPdfFile))
+    ->generateDocument()
+    ->saveDocument($mergeToPdf);
+```
+
+### Example for merging an existing PDF file with a string which contains the XML
+
+```php
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+
+$xmlString= "<xml>...</xml>";
+$existingPdfFile = "/tmp/emptypdf.pdf";
+$mergeToPdf = "/tmp/fullpdf.pdf";
+
+if (!file_exists($existingPdfFile)) {
+    throw new \Exception("XML and/or PDF does not exist");
+}
+
+(new ZugferdDocumentPdfMerger($xmlString, $existingPdfFile))
+    ->generateDocument()
+    ->saveDocument($mergeToPdf);
+```
+
+### Example for merging a string which contains a PDF with an existing XML file
+
+```php
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+
+$existingXmlFile = "/tmp/invoice_1.xml";
+$pdfString = "%PDF-1.4.....";
+$mergeToPdf = "/tmp/fullpdf.pdf";
+
+if (!file_exists($existingXmlFile)) {
+    throw new \Exception("XML and/or PDF does not exist");
+}
+
+(new ZugferdDocumentPdfMerger($existingXmlFile, $pdfString))
+    ->generateDocument()
+    ->saveDocument($mergeToPdf);
+```
+
+### Example for merging a string which contains a PDF with a string which contains the XML
+
+```php
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+
+$xmlString= "<xml>...</xml>";
+$pdfString = "%PDF-1.4.....";
+$mergeToPdf = "/tmp/fullpdf.pdf";
+
+(new ZugferdDocumentPdfMerger($xmlString, $pdfString))
+    ->generateDocument()
+    ->saveDocument($mergeToPdf);
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdKositValidator.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdKositValidator.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/make/md/ZugferdKositValidator.md	(revision 8542)
@@ -0,0 +1,35 @@
+### Validation of a document read by ZugferdDocumentPdfReader
+
+```php
+$kositValidator = new ZugferdKositValidator();
+
+$document = ZugferdDocumentPdfReader::readAndGuessFromFile("/tmp/invoice.pdf");
+$kositValidator->setDocument($document)->disableCleanup()->validate();
+
+if ($kositValidator->hasValidationErrors()) {
+    echo "Validation failed";
+    foreach ($kositValidator->getValidationErrors() as $validationError) {
+        echo " - " . $validationError . PHP_EOL;
+    }
+} else {
+    echo "mValidation passed";
+}
+```
+
+### Validation of a document read by ZugferdDocumentReader
+
+```php
+$kositValidator = new ZugferdKositValidator();
+
+$document = ZugferdDocumentReader::readAndGuessFromFile("/tmp/factur-x.xml");
+$kositValidator->setDocument($document)->disableCleanup()->validate();
+
+if ($kositValidator->hasValidationErrors()) {
+    echo "Validation failed";
+    foreach ($kositValidator->getValidationErrors() as $validationError) {
+        echo " - " . $validationError . PHP_EOL;
+    }
+} else {
+    echo "mValidation passed";
+}
+```
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentPdfReaderExt.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentPdfReaderExt.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentPdfReaderExt.php	(revision 8542)
@@ -0,0 +1,319 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd;
+
+use Exception;
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+use horstoeko\zugferd\exception\ZugferdFileNotReadableException;
+use horstoeko\zugferd\exception\ZugferdNoPdfAttachmentFoundException;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileException;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileParameterException;
+use horstoeko\zugferd\exception\ZugferdUnknownXmlContentException;
+use JMS\Serializer\Exception\RuntimeException;
+use Smalot\PdfParser\Parser as PdfParser;
+
+/**
+ * Class representing the extended document reader for incoming PDF/A-Documents with
+ * attached XML data in BASIC-, EN16931- and EXTENDED profile. The Extended PDF reader
+ * reads also additinal attached documents from PDF
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdDocumentPdfReaderExt
+{
+    /**
+     * List of filenames which are possible for an attached XML-Invoice-Document in PDF
+     */
+    public const ATTACHMENT_FILENAMES = [
+        'ZUGFeRD-invoice.xml'/*1.0*/,
+        'zugferd-invoice.xml'/*2.0*/,
+        'factur-x.xml'/*2.1*/,
+        'xrechnung.xml'
+    ];
+
+    /**
+     * Identifier for a XML-Invoice-Docuemnt
+     */
+    private const ATTACHMENT_TYPE_XMLINVOICE = 0;
+
+    /**
+     * Identifier for an additional document
+     */
+    private const ATTACHMENT_TYPE_ADDITIONAL = 1;
+
+    /**
+     * Key of the type element in the internal attachment list
+     */
+    public const ATTACHMENT_KEY_TYPE = 'type';
+
+    /**
+     * Key of the content element in the internal attachment list
+     */
+    public const ATTACHMENT_KEY_CONTENT = 'content';
+
+    /**
+     * Key of the filename element in the internal attachment list
+     */
+    public const ATTACHMENT_KEY_FILENAME = 'filename';
+
+    /**
+     * Key of the filename element in the internal attachment list
+     */
+    public const ATTACHMENT_KEY_MIMETYPE = 'mimetype';
+
+    /**
+     * Array containing all the attached files found in PDF
+     *
+     * @var array<int, array{type: int, content: string, filename: string, mimetype: string}>
+     */
+    private $attachmentContentList = [];
+
+    /**
+     * (Hidden) Constructor
+     */
+    final protected function __construct()
+    {
+    }
+
+    /**
+     * Load a PDF file
+     *
+     * @param  string $pdfFilename Contains a full-qualified filename which must exist and must be readable
+     * @return ZugferdDocumentPdfReaderExt
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws Exception
+     */
+    public static function fromFile(string $pdfFilename): ZugferdDocumentPdfReaderExt
+    {
+        if (!file_exists($pdfFilename)) {
+            throw new ZugferdFileNotFoundException($pdfFilename);
+        }
+
+        $pdfContent = file_get_contents($pdfFilename);
+
+        if ($pdfContent === false) {
+            throw new ZugferdFileNotReadableException($pdfFilename);
+        }
+
+        return static::fromContent($pdfContent);
+    }
+
+    /**
+     * Load a PDF content string
+     *
+     * @param  string $pdfContent Contains the raw data of a PDF
+     * @return ZugferdDocumentPdfReaderExt
+     * @throws Exception
+     */
+    public static function fromContent(string $pdfContent): ZugferdDocumentPdfReaderExt
+    {
+        return (new ZugferdDocumentPdfReaderExt())->collectAttachmentsFromPdfContent($pdfContent);
+    }
+
+    /**
+     * Load a PDF file and return a ZugferDocumentReader-Instance
+     *
+     * @param  string $pdfFilename Contains a full-qualified filename which must exist and must be readable
+     * @throws Exception
+     * @throws RuntimeException
+     * @return ZugferdDocumentReader
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws ZugferdNoPdfAttachmentFoundException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws ZugferdUnknownXmlContentException
+     * @see    \horstoeko\zugferd\ZugferdDocumentPdfReader::readAndGuessFromFile() For a similar purpose in another context.
+     */
+    public static function readAndGuessFromFile(string $pdfFilename): ZugferdDocumentReader
+    {
+        return static::fromFile($pdfFilename)->resolveInvoiceDocumentReader();
+    }
+
+    /**
+     * Load a PDF content and return a ZugferDocumentReader-Instance
+     *
+     * @param  string $pdfContent Contains the raw data of a PDF
+     * @throws Exception
+     * @throws RuntimeException
+     * @return ZugferdDocumentReader
+     * @throws ZugferdNoPdfAttachmentFoundException
+     * @throws ZugferdUnknownXmlContentException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileParameterException
+     * @see    \horstoeko\zugferd\ZugferdDocumentPdfReader::readAndGuessFromContent() For a similar purpose in another context.
+     */
+    public static function readAndGuessFromContent(string $pdfContent): ZugferdDocumentReader
+    {
+        return static::fromContent($pdfContent)->resolveInvoiceDocumentReader();
+    }
+
+    /**
+     * Returns a invoice document XML content from a PDF file
+     * similar to ZugferdDocumentPdfReader::getXmlFromContent
+     *
+     * @param  string $pdfFilename Contains a full-qualified filename which must exist and must be readable
+     * @return string
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws Exception
+     * @throws ZugferdNoPdfAttachmentFoundException
+     * @see    \horstoeko\zugferd\ZugferdDocumentPdfReader::getXmlFromFile() For a similar purpose in another context.
+     */
+    public static function getInvoiceDocumentContentFromFile(string $pdfFilename): string
+    {
+        return static::fromFile($pdfFilename)->resolveInvoiceDocumentContent();
+    }
+
+    /**
+     * Returns a invoice document XML content from a PDF content string
+     *
+     * @param  string $pdfContent Contains the raw data of a PDF
+     * @return string
+     * @throws Exception
+     * @throws ZugferdNoPdfAttachmentFoundException
+     * @see    \horstoeko\zugferd\ZugferdDocumentPdfReader::getXmlFromContent() For a similar purpose in another context.
+     */
+    public static function getInvoiceDocumentContentFromContent(string $pdfContent): string
+    {
+        return static::fromContent($pdfContent)->resolveInvoiceDocumentContent();
+    }
+
+    /**
+     * Returns all additional documents (except the invoice document) from a PDF file
+     *
+     * @param  string $pdfFilename Contains a full-qualified filename which must exist and must be readable
+     * @return array<int, array{type: int, content: string, filename: string, mimetype: string}>
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws Exception
+     */
+    public static function getAdditionalDocumentContentsFromFile(string $pdfFilename): array
+    {
+        return static::fromFile($pdfFilename)->resolveAdditionalDocumentContents();
+    }
+
+    /**
+     * Returns all additional documents (except the invoice document) from a PDF content string
+     *
+     * @param  string $pdfContent Contains the raw data of a PDF
+     * @return array<int, array{type: int, content: string, filename: string, mimetype: string}>
+     * @throws Exception
+     */
+    public static function getAdditionalDocumentContentsFromContent(string $pdfContent): array
+    {
+        return static::fromContent($pdfContent)->resolveAdditionalDocumentContents();
+    }
+
+    /**
+     * Returns an instance of ZugferdDocumentReader by a valid invoice attachment
+     *
+     * @return ZugferdDocumentReader
+     * @throws ZugferdNoPdfAttachmentFoundException
+     * @throws ZugferdUnknownXmlContentException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws RuntimeException
+     */
+    public function resolveInvoiceDocumentReader(): ZugferdDocumentReader
+    {
+        return ZugferdDocumentReader::readAndGuessFromContent($this->resolveInvoiceDocumentContent());
+    }
+
+    /**
+     * Returns the content as string if a valid invoice attachment was found, otherwise
+     * an exception will be raised
+     *
+     * @return string
+     * @throws ZugferdNoPdfAttachmentFoundException
+     */
+    public function resolveInvoiceDocumentContent(): string
+    {
+        $invoiceContent =
+            array_values(
+                array_filter(
+                    $this->attachmentContentList,
+                    function ($attachmentContentItem) {
+                        return $attachmentContentItem[ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE] === ZugferdDocumentPdfReaderExt::ATTACHMENT_TYPE_XMLINVOICE;
+                    }
+                )
+            );
+
+        if ($invoiceContent === []) {
+            throw new ZugferdNoPdfAttachmentFoundException();
+        }
+
+        return $invoiceContent[0][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_CONTENT];
+    }
+
+    /**
+     * Returns a list of all additional attached documents except the invoice document
+     *
+     * @return array<int, array{type: int, content: string, filename: string, mimetype: string}>
+     */
+    public function resolveAdditionalDocumentContents(): array
+    {
+        return
+            array_values(
+                array_filter(
+                    $this->attachmentContentList,
+                    function ($attachmentContentItem) {
+                        return $attachmentContentItem[ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE] === ZugferdDocumentPdfReaderExt::ATTACHMENT_TYPE_ADDITIONAL;
+                    }
+                )
+            );
+    }
+
+    /**
+     * Get a list of all the attachments.
+     *
+     * @param  string $pdfContent Contains the raw data of a PDF
+     * @return ZugferdDocumentPdfReaderExt
+     * @throws Exception
+     */
+    protected function collectAttachmentsFromPdfContent(string $pdfContent): ZugferdDocumentPdfReaderExt
+    {
+        $this->attachmentContentList = [];
+
+        $pdfParser = new PdfParser();
+        $pdfParsed = $pdfParser->parseContent($pdfContent);
+        $fileSpecs = $pdfParsed->getObjectsByType('Filespec');
+
+        $fileSpecs = array_filter(
+            $fileSpecs,
+            function ($fileSpec) {
+                return $fileSpec->has('F') && $fileSpec->has('EF');
+            }
+        );
+
+        $fileSpecs = array_filter(
+            $fileSpecs,
+            function ($fileSpec) {
+                return $fileSpec->get('EF')->has('F');
+            }
+        );
+
+        foreach ($fileSpecs as $fileSpec) {
+            $this->attachmentContentList[] = [
+                ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE => in_array($fileSpec->get('F')->getContent(), ZugferdDocumentPdfReaderExt::ATTACHMENT_FILENAMES) ? ZugferdDocumentPdfReaderExt::ATTACHMENT_TYPE_XMLINVOICE : ZugferdDocumentPdfReaderExt::ATTACHMENT_TYPE_ADDITIONAL,
+                ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_CONTENT => $fileSpec->get('EF')->get('F')->getContent(),
+                ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_FILENAME => $fileSpec->get('F')->getContent(),
+                ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_MIMETYPE => $fileSpec->get('EF')->get('F')->has('Subtype') ? (string)($fileSpec->get('EF')->get('F')->get('Subtype')->getContent()) : "",
+            ];
+        }
+
+        return $this;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentProfileConverter.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentProfileConverter.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdDocumentProfileConverter.php	(revision 8542)
@@ -0,0 +1,291 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd;
+
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+use horstoeko\zugferd\exception\ZugferdFileNotReadableException;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileException;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileIdException;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileParameterException;
+use horstoeko\zugferd\exception\ZugferdUnknownXmlContentException;
+use JMS\Serializer\Exception\InvalidArgumentException;
+use JMS\Serializer\Exception\RuntimeException;
+
+/**
+ * Class representing a converter to change a document's profile to another profile
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdDocumentProfileConverter extends ZugferdDocument
+{
+    /**
+     * The source
+     *
+     * @var string
+     */
+    protected $convertFromContent = "";
+
+    /**
+     * The new profile ID
+     *
+     * @var int
+     */
+    protected $convertToProfileId = -1;
+
+    /**
+     * Path to the profile id
+     */
+    protected const PATH_1 = 'getExchangedDocumentContext.getGuidelineSpecifiedDocumentContextParameter.setID';
+
+    /**
+     * Path to the context parameter
+     */
+    protected const PATH_2 = 'getExchangedDocumentContext.setBusinessProcessSpecifiedDocumentContextParameter';
+
+    /**
+     * Path to the context parameter id
+     */
+    protected const PATH_3 = 'getExchangedDocumentContext.getBusinessProcessSpecifiedDocumentContextParameter.setID';
+
+    /**
+     * Convert from file to file
+     *
+     * @param  string $fromFilename
+     * @param  string $toFile
+     * @param  int    $newProfileId
+     * @return void
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws ZugferdUnknownXmlContentException
+     */
+    public static function convertFromFileToFile(string $fromFilename, string $toFile, int $newProfileId): void
+    {
+        static::convertFromFile($fromFilename, $newProfileId)->convertToFile($toFile);
+    }
+
+    /**
+     * Convert from file to string
+     *
+     * @param  string $fromFilename
+     * @param  int    $newProfileId
+     * @return string
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws ZugferdUnknownXmlContentException
+     */
+    public static function convertFromFileToString(string $fromFilename, int $newProfileId): string
+    {
+        return static::convertFromFile($fromFilename, $newProfileId)->convertToString();
+    }
+
+    /**
+     * Convert from content to file
+     *
+     * @param  string $fromContent
+     * @param  string $toFile
+     * @param  int    $newProfileId
+     * @return void
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws ZugferdUnknownXmlContentException
+     */
+    public static function convertFromContentToFile(string $fromContent, string $toFile, int $newProfileId): void
+    {
+        static::convertFromContent($fromContent, $newProfileId)->convertToFile($toFile);
+    }
+
+    /**
+     * Convert from content to string
+     *
+     * @param  string $fromContent
+     * @param  int    $newProfileId
+     * @return string
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdUnknownProfileException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     * @throws ZugferdUnknownXmlContentException
+     */
+    public static function convertFromContentToString(string $fromContent, int $newProfileId): string
+    {
+        return static::convertFromContent($fromContent, $newProfileId)->convertToString();
+    }
+
+    /**
+     * Create an instance by filename
+     *
+     * @param  string $fromFilename
+     * @param  int    $newProfileId
+     * @return ZugferdDocumentProfileConverter
+     * @throws ZugferdFileNotFoundException
+     * @throws ZugferdFileNotReadableException
+     * @throws ZugferdUnknownXmlContentException
+     * @throws ZugferdUnknownProfileException
+     */
+    protected static function convertFromFile(string $fromFilename, int $newProfileId): ZugferdDocumentProfileConverter
+    {
+        if (!file_exists($fromFilename)) {
+            throw new ZugferdFileNotFoundException($fromFilename);
+        }
+
+        $fromContent = file_get_contents($fromFilename);
+
+        if ($fromContent === false) {
+            throw new ZugferdFileNotReadableException($fromFilename);
+        }
+
+        return static::convertFromContent($fromContent, $newProfileId);
+    }
+
+    /**
+     * Create an instance by cpntent
+     *
+     * @param  string $fromContent
+     * @param  int    $newProfileId
+     * @return ZugferdDocumentProfileConverter
+     * @throws ZugferdUnknownXmlContentException
+     * @throws ZugferdUnknownProfileException
+     */
+    protected static function convertFromContent(string $fromContent, int $newProfileId): ZugferdDocumentProfileConverter
+    {
+        $fromProfileId = ZugferdProfileResolver::resolveProfileId($fromContent);
+
+        $profileConverter = new static($fromProfileId);
+        $profileConverter->setConvertFromContent($fromContent);
+        $profileConverter->setConvertToProfileId($newProfileId);
+
+        return $profileConverter;
+    }
+
+    /**
+     * Set the destination (the new) profile id
+     *
+     * @param  int $toProfileId
+     * @return ZugferdDocumentProfileConverter
+     */
+    protected function setConvertToProfileId(int $toProfileId): ZugferdDocumentProfileConverter
+    {
+        $this->convertToProfileId = $toProfileId;
+
+        return $this;
+    }
+
+    /**
+     * Set the source-content
+     *
+     * @param  string $fromContent
+     * @return ZugferdDocumentProfileConverter
+     */
+    protected function setConvertFromContent(string $fromContent): ZugferdDocumentProfileConverter
+    {
+        $this->convertFromContent = $fromContent;
+
+        return $this;
+    }
+
+    /**
+     * Convert and save to file
+     *
+     * @param  string $toFile
+     * @return ZugferdDocumentProfileConverter
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     */
+    protected function convertToFile(string $toFile): ZugferdDocumentProfileConverter
+    {
+        file_put_contents($toFile, $this->performConversion()->convertToString());
+
+        return $this;
+    }
+
+    /**
+     * Convert and get xml content as string
+     *
+     * @return string
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     */
+    protected function convertToString(): string
+    {
+        return $this->performConversion()->serializeAsXml();
+    }
+
+    /**
+     * Internal conversion method
+     *
+     * @return ZugferdDocumentProfileConverter
+     * @throws InvalidArgumentException
+     * @throws RuntimeException
+     * @throws ZugferdUnknownProfileIdException
+     * @throws ZugferdUnknownProfileParameterException
+     */
+    protected function performConversion(): ZugferdDocumentProfileConverter
+    {
+        $this->initProfile($this->convertToProfileId);
+        $this->initObjectHelper();
+        $this->initSerialzer();
+        $this->deserialize($this->convertFromContent);
+        $this->updateProfileInInvoiceObject();
+
+        return $this;
+    }
+
+    /**
+     * Update profile parameters in the internal invoice object
+     *
+     * @return void
+     * @throws ZugferdUnknownProfileIdException
+     */
+    protected function updateProfileInInvoiceObject()
+    {
+        $profileDef = ZugferdProfileResolver::resolveProfileDefById($this->convertToProfileId);
+
+        $this->getObjectHelper()->tryCallByPath(
+            $this->getInvoiceObject(),
+            static::PATH_1,
+            $this->getObjectHelper()->getIdType($profileDef['contextparameter'])
+        );
+
+        if ($profileDef['businessprocess']) {
+            $this->getObjectHelper()->tryCallByPath(
+                $this->getInvoiceObject(),
+                static::PATH_2,
+                $this->getObjectHelper()->createClassInstance('ram\DocumentContextParameterType')
+            );
+            $this->getObjectHelper()->tryCallByPath(
+                $this->getInvoiceObject(),
+                static::PATH_3,
+                $this->getObjectHelper()->getIdType($profileDef['businessprocess'])
+            );
+        }
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdPdfValidator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdPdfValidator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdPdfValidator.php	(revision 8542)
@@ -0,0 +1,1069 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd;
+
+use LogicException;
+use Throwable;
+use ZipArchive;
+use horstoeko\stringmanagement\PathUtils;
+use horstoeko\stringmanagement\StringUtils;
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+use horstoeko\zugferd\exception\ZugferdFileNotReadableException;
+use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
+use Symfony\Component\Finder\Finder;
+use Symfony\Component\Process\ExecutableFinder;
+use Symfony\Component\Process\Process;
+
+/**
+ * Class representing the validator against PDF files using VeraPDF.
+ * This class requires a JAVA running setup
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdPdfValidator
+{
+    /**
+     * The PDF content
+     *
+     * @var string|null
+     */
+    private $pdfContent;
+
+    /**
+     * Internal message bag
+     *
+     * @var array
+     */
+    private $messageBag = [];
+
+    /**
+     * Base directory (download)
+     *
+     * @var string
+     */
+    private $baseDirectory;
+
+    /**
+     * VeraPDF Validator download url
+     *
+     * @var string
+     */
+    private $validatorDownloadUrl = "https://software.verapdf.org/rel/verapdf-installer.zip";
+
+    /**
+     * The filename of the validation application zip archive
+     *
+     * @var string $validatorAppZipFilename
+     */
+    private $validatorAppZipFilename = "verapdf-installer.zip";
+
+    /**
+     * The ruleset to use
+     * Allowed values are 0, 1a, 1b, 2a, 2b, 2u, 3a, 3b, 3u, 4, 4f, 4e, ua1, ua2
+     *
+     * @var string
+     */
+    private $validatorRuleset = "3a";
+
+    /**
+     * The temporary filename which contains the PDF data to validate
+     *
+     * @var string
+     */
+    private $fileToValidateFilename = "";
+
+    /**
+     * Internal flag which indicates that the cleanup of the base directory is disables
+     *
+     * @var boolean
+     */
+    private $cleanupBaseDirectoryIsDisabled = false;
+
+    /**
+     * Message Type "Internal Error"
+     */
+    protected const MSG_TYPE_INTERNALERROR = 'internalerror';
+
+    /**
+     * Message Type "Validation Error"
+     */
+    protected const MSG_TYPE_VALIDATIONERROR = 'validationerror';
+
+    /**
+     * Message Type "Validation Warning"
+     */
+    protected const MSG_TYPE_VALIDATIONWARNING = 'validationwarning';
+
+    /**
+     * Message Type "Validation info"
+     */
+    protected const MSG_TYPE_VALIDATIONINFORMATION = 'validationinformation';
+
+    /**
+     * Message Type "Process Output"
+     */
+    protected const MSG_TYPE_PROCESSOUTPUT = 'processoutput';
+
+    /**
+     * Ruleset for Automatic detection based on a file's metadata
+     */
+    public const RULESET_PDF_A_0 = '0';
+
+    /**
+     * Ruleset PDF/A-1A validation profile
+     */
+    public const RULESET_PDF_A_1A = '1a';
+
+    /**
+     * Ruleset PDF/A-1B validation profile
+     */
+    public const RULESET_PDF_A_1B = '1b';
+
+    /**
+     * Ruleset PDF/A-2A validation profile
+     */
+    public const RULESET_PDF_A_2A = '2a';
+
+    /**
+     * Ruleset PDF/A-2B validation profile
+     */
+    public const RULESET_PDF_A_2B = '2b';
+
+    /**
+     * Ruleset PDF/A-2U validation profile
+     */
+    public const RULESET_PDF_A_2U = '2u';
+
+    /**
+     * Ruleset PDF/A-3A validation profile
+     */
+    public const RULESET_PDF_A_3A = '3a';
+
+    /**
+     * Ruleset PDF/A-3B validation profile
+     */
+    public const RULESET_PDF_A_3B = '3b';
+
+    /**
+     * Ruleset PDF/A-3U validation profile
+     */
+    public const RULESET_PDF_A_3U = '3u';
+
+    /**
+     * Ruleset PDF/A-4 validation profile
+     */
+    public const RULESET_PDF_A_4 = '4';
+
+    /**
+     * Ruleset PDF/A-4F validation profile
+     */
+    public const RULESET_PDF_A_4F = '4f';
+
+    /**
+     * Ruleset PDF/A-4E validation profile
+     */
+    public const RULESET_PDF_A_4E = '4e';
+
+    /**
+     * Ruleset PDF/UA-1 validation profile
+     */
+    public const RULESET_PDF_UA_1 = 'ua1';
+
+    /**
+     * Ruleset PDF/UA-2 + Tagged PDF validation profile
+     */
+    public const RULESET_PDF_UA_2 = 'ua2';
+
+    /**
+     * Create a ZugferdPdfValidator-Instance by an existing PDF-File
+     *
+     * @param  string $pdfFilename
+     * @return ZugferdPdfValidator
+     */
+    public static function fromFile(string $pdfFilename): ZugferdPdfValidator
+    {
+        if (!file_exists($pdfFilename)) {
+            throw new ZugferdFileNotFoundException($pdfFilename);
+        }
+
+        $pdfContent = file_get_contents($pdfFilename);
+
+        if ($pdfContent === false) {
+            throw new ZugferdFileNotReadableException($pdfFilename);
+        }
+
+        return ZugferdPdfValidator::fromContent($pdfContent);
+    }
+
+    /**
+     * Create a ZugferdPdfValidator-Instance by a given content string
+     *
+     * @param  string $pdfContent
+     * @return ZugferdPdfValidator
+     */
+    public static function fromContent(string $pdfContent): ZugferdPdfValidator
+    {
+        return new ZugferdPdfValidator($pdfContent);
+    }
+
+    /**
+     * Constructor
+     *
+     * @param string|null $pdfContent
+     */
+    final protected function __construct(?string $pdfContent = null)
+    {
+        $this->setBaseDirectory(sys_get_temp_dir());
+        $this->setPdfContent($pdfContent);
+    }
+
+    /**
+     * Set the PDF content to validate
+     *
+     * @param  string $pdfContent
+     * @return ZugferdPdfValidator
+     */
+    public function setPdfContent(string $pdfContent): ZugferdPdfValidator
+    {
+        $this->pdfContent = $pdfContent;
+
+        return $this;
+    }
+
+    /**
+     * Setup the base directory. In the base directory all files will be downloaded
+     * and created
+     *
+     * @param  string $newBaseDirectory
+     * @return ZugferdPdfValidator
+     */
+    public function setBaseDirectory(string $newBaseDirectory): ZugferdPdfValidator
+    {
+        if (is_dir($newBaseDirectory)) {
+            $this->baseDirectory = $newBaseDirectory;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Setup the VeraPDF validator application download url
+     *
+     * @param  string $newValidatorDownloadUrl
+     * @return ZugferdPdfValidator
+     */
+    public function setValidatorDownloadUrl(string $newValidatorDownloadUrl): ZugferdPdfValidator
+    {
+        if (filter_var($newValidatorDownloadUrl, FILTER_VALIDATE_URL) !== false) {
+            $this->validatorDownloadUrl = $newValidatorDownloadUrl;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set the filename of the ZIP file which contains the validation application
+     *
+     * @param  string $newValidatorAppZipFilename
+     * @return ZugferdPdfValidator
+     */
+    public function setValidatorAppZipFilename(string $newValidatorAppZipFilename): ZugferdPdfValidator
+    {
+        $this->validatorAppZipFilename = $newValidatorAppZipFilename;
+
+        return $this;
+    }
+
+    /**
+     * Set the Ruleset to use for validation.
+     * Allowed values are 0, 1a, 1b, 2a, 2b, 2u, 3a, 3b, 3u, 4, 4f, 4e, ua1, ua2
+     *
+     * @param  string $newVlidatorRuleset
+     * @return ZugferdPdfValidator
+     */
+    public function setValidatorRuleset(string $newVlidatorRuleset): ZugferdPdfValidator
+    {
+        $newVlidatorRuleset = strtolower($newVlidatorRuleset);
+
+        if (in_array($newVlidatorRuleset, [static::RULESET_PDF_A_0, static::RULESET_PDF_A_1A, static::RULESET_PDF_A_1B, static::RULESET_PDF_A_2A, static::RULESET_PDF_A_2B, static::RULESET_PDF_A_2U, static::RULESET_PDF_A_3A, static::RULESET_PDF_A_3B, static::RULESET_PDF_A_3U, static::RULESET_PDF_A_4, static::RULESET_PDF_A_4E, static::RULESET_PDF_A_4F, static::RULESET_PDF_UA_1, static::RULESET_PDF_UA_2])) {
+            $this->validatorRuleset = $newVlidatorRuleset;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Disable cleanup base directory
+     *
+     * @return ZugferdPdfValidator
+     */
+    public function disableCleanup(): ZugferdPdfValidator
+    {
+        $this->cleanupBaseDirectoryIsDisabled = true;
+
+        return $this;
+    }
+
+    /**
+     * Enable cleanup base directory
+     *
+     * @return ZugferdPdfValidator
+     */
+    public function enableCleanup(): ZugferdPdfValidator
+    {
+        $this->cleanupBaseDirectoryIsDisabled = false;
+
+        return $this;
+    }
+
+    /**
+     * Perform validation
+     *
+     * @return ZugferdPdfValidator
+     */
+    public function validate(): ZugferdPdfValidator
+    {
+        $this->clearMessageBag();
+
+        if ($this->checkRequirements() === false) {
+            return $this;
+        }
+
+        if ($this->downloadRequiredFiles() === false) {
+            $this->cleanupBaseDirectory();
+            return $this;
+        }
+
+        if ($this->unpackRequiredFiles() === false) {
+            $this->cleanupBaseDirectory();
+            return $this;
+        }
+
+        if ($this->installValidator() === false) {
+            $this->cleanupBaseDirectory();
+            return $this;
+        }
+
+        $this->performValidation();
+
+        $this->cleanupBaseDirectory();
+
+        return $this;
+    }
+
+    /**
+     * Internal get (and create) the directory for downloads and file creation
+     *
+     * @return string
+     */
+    private function resolveBaseDirectory(): string
+    {
+        $baseDirectorySuffix = md5($this->validatorDownloadUrl);
+
+        $baseDirectory = PathUtils::combinePathWithPath($this->baseDirectory, sprintf("verapdf-%s", $baseDirectorySuffix));
+
+        if (!is_dir($baseDirectory)) {
+            @mkdir($baseDirectory);
+        }
+
+        return $baseDirectory;
+    }
+
+    /**
+     * Get the full filename of the archive to download which contains the Java validation application
+     *
+     * @return string
+     */
+    private function resolveAppZipFilename(): string
+    {
+        return PathUtils::combinePathWithFile($this->resolveBaseDirectory(), $this->validatorAppZipFilename);
+    }
+
+    /**
+     * Get the executable of the validator
+     *
+     * @return string
+     */
+    private function resolveValidatorExecutable(): string
+    {
+        return PathUtils::combinePathWithFile($this->resolveBaseDirectory(), 'verapdf');
+    }
+
+    /**
+     * Reset the internal filename where data of the PDF to validate are stored
+     *
+     * @return void
+     */
+    private function resetFileToValidateFilename(): void
+    {
+        $this->fileToValidateFilename = "";
+    }
+
+    /**
+     * Get the full filename which contains the PDF to validate
+     *
+     * @return string
+     */
+    private function resolveFileToValidateFilename(): string
+    {
+        if (StringUtils::stringIsNullOrEmpty($this->fileToValidateFilename)) {
+            $this->fileToValidateFilename = PathUtils::combinePathWithFile($this->resolveBaseDirectory(), sprintf('filetovalidate-%s-%s.pdf', uniqid(), uniqid()));
+        }
+
+        return $this->fileToValidateFilename;
+    }
+
+    /**
+     * Clear the internal error bag
+     *
+     * @return void
+     */
+    private function clearMessageBag(): void
+    {
+        $this->messageBag = [];
+    }
+
+    /**
+     * Add message to error bag
+     *
+     * @param  string|Throwable $error
+     * @return void
+     */
+    private function addToMessageBag($error, string $messageType = ""): void
+    {
+        $messageType = StringUtils::stringIsNullOrEmpty($messageType) ? static::MSG_TYPE_INTERNALERROR : $messageType;
+
+        if (is_string($error)) {
+            $this->messageBag[] = ["type" => $messageType, "message" => $error];
+        } elseif ($error instanceof Throwable) {
+            $this->messageBag[] = ["type" => $messageType, "message" => $error->getMessage()];
+        }
+    }
+
+    /**
+     * Get messages from messagebag filtered by message type
+     *
+     * @param  string $messageType
+     * @return array
+     */
+    private function getMessageBagFiltered(string $messageType): array
+    {
+        return array_map(
+            function ($data) {
+                return $data["message"];
+            },
+            array_filter(
+                $this->messageBag,
+                function ($data) use ($messageType) {
+                    return $data['type'] == $messageType;
+                }
+            )
+        );
+    }
+
+    /**
+     * Returns an array of all validation errors
+     *
+     * @return array
+     */
+    public function getValidationErrors(): array
+    {
+        return $this->getMessageBagFiltered(static::MSG_TYPE_VALIDATIONERROR);
+    }
+
+    /**
+     * Returns true if __no__ validation errors are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasNoValidationErrors(): bool
+    {
+        return $this->getValidationErrors() === [];
+    }
+
+    /**
+     * Returns true if validation errors are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasValidationErrors(): bool
+    {
+        return !$this->hasNoValidationErrors();
+    }
+
+    /**
+     * Returns an array of all validation warnings
+     *
+     * @return array
+     */
+    public function getValidationWarnings(): array
+    {
+        return $this->getMessageBagFiltered(static::MSG_TYPE_VALIDATIONWARNING);
+    }
+
+    /**
+     * Returns true if __no__ validation warnings are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasNoValidationWarnings(): bool
+    {
+        return $this->getValidationWarnings() === [];
+    }
+
+    /**
+     * Returns true if validation warnings are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasValidationWarnings(): bool
+    {
+        return !$this->hasNoValidationWarnings();
+    }
+
+    /**
+     * Returns an array of all validation information
+     *
+     * @return array
+     */
+    public function getValidationInformation(): array
+    {
+        return $this->getMessageBagFiltered(static::MSG_TYPE_VALIDATIONINFORMATION);
+    }
+
+    /**
+     * Returns true if __no__ validation information are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasNoValidationInformation(): bool
+    {
+        return $this->getValidationInformation() === [];
+    }
+
+    /**
+     * Returns true if validation Information are present otherwise false
+     *
+     * @return boolean
+     */
+    public function hasValidationInformation(): bool
+    {
+        return !$this->hasNoValidationInformation();
+    }
+
+    /**
+     * Return an array of all internal errors (such as download error or system exceptions)
+     *
+     * @return array
+     */
+    public function getProcessErrors(): array
+    {
+        return $this->getMessageBagFiltered(static::MSG_TYPE_INTERNALERROR);
+    }
+
+    /**
+     * Returns true if there are __no__ system errors (e.g. exceptions before the validation app was called)
+     *
+     * @return boolean
+     */
+    public function hasNoProcessErrors(): bool
+    {
+        return $this->getProcessErrors() === [];
+    }
+
+    /**
+     * Returns true if there are any system errors (e.g. exceptions before the validation app was called)
+     *
+     * @return boolean
+     */
+    public function hasProcessErrors(): bool
+    {
+        return !$this->hasNoProcessErrors();
+    }
+
+    /**
+     * Returns an array of all messages from process system (calling external applications)
+     *
+     * @return array
+     */
+    public function getProcessOutput(): array
+    {
+        return $this->getMessageBagFiltered(static::MSG_TYPE_PROCESSOUTPUT);
+    }
+
+    /**
+     * Check Requirements
+     *
+     * @return boolean
+     */
+    private function checkRequirements(): bool
+    {
+        if (is_null($this->pdfContent)) {
+            $this->addToMessageBag("You must specify the content or a filename of a PDF to validate");
+            return false;
+        }
+
+        if (!extension_loaded('zip')) {
+            $this->addToMessageBag("ZIP extension not installed");
+            return false;
+        }
+
+        $executableFinder = new ExecutableFinder();
+
+        if (is_null($executableFinder->find('java'))) {
+            $this->addToMessageBag("JAVA not installed on this machine");
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Download required files
+     *
+     * @return boolean
+     */
+    private function downloadRequiredFiles(): bool
+    {
+        if (!$this->runFileDownload($this->validatorDownloadUrl, $this->resolveAppZipFilename())) {
+            $this->addToMessageBag(sprintf("Unable to download from %s containing the JAVA-Application", $this->validatorDownloadUrl));
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Unpack required files
+     *
+     * @return boolean
+     */
+    private function unpackRequiredFiles(): bool
+    {
+        $validatorAppFile = $this->resolveAppZipFilename();
+
+        if (!$this->unpackRequiredFile($validatorAppFile, true)) {
+            $this->addToMessageBag(sprintf("Unable to unpack archive %s containing the JAVA-Application", $validatorAppFile));
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Unpack single required file
+     *
+     * @param  string $zipFilename
+     * @param  bool   $flatExtraction
+     * @return bool
+     */
+    private function unpackRequiredFile(string $zipFilename, bool $flatExtraction = false): bool
+    {
+        if ($flatExtraction) {
+            return $this->unpackRequiredFileFlat($zipFilename);
+        }
+
+        return $this->unpackRequiredFileNonFlat($zipFilename);
+    }
+
+    /**
+     * Unpack single required file (Non-Flat)
+     *
+     * @param  string $zipFilename
+     * @return bool
+     */
+    private function unpackRequiredFileNonFlat(string $zipFilename): bool
+    {
+        $zipArchive = new ZipArchive();
+
+        if ($zipArchive->open($zipFilename) !== true) {
+            $this->addToMessageBag(sprintf("Failed to open ZIP archive %s", $zipFilename));
+            return false;
+        }
+
+        $numFilesExists = 0;
+
+        for ($i = 0; $i < $zipArchive->numFiles; $i++) {
+            $zipStat = $zipArchive->statIndex($i);
+            $realfilename = PathUtils::combinePathWithFile($this->resolveBaseDirectory(), $zipStat['name']);
+            if (file_exists($realfilename)) {
+                $numFilesExists++;
+            }
+        }
+
+        if ($numFilesExists === $zipArchive->numFiles) {
+            return true;
+        }
+
+        if (!$zipArchive->extractTo($this->resolveBaseDirectory())) {
+            $zipArchive->close();
+            $this->addToMessageBag(sprintf("Failed to extract ZIP archive %s", $zipFilename));
+            return false;
+        }
+
+        $zipArchive->close();
+
+        return true;
+    }
+
+    /**
+     * Unpack single required file (Flat)
+     *
+     * @param  string $zipFilename
+     * @return bool
+     */
+    private function unpackRequiredFileFlat(string $zipFilename): bool
+    {
+        $zipArchive = new ZipArchive();
+
+        if ($zipArchive->open($zipFilename) !== true) {
+            $this->addToMessageBag(sprintf("Failed to open ZIP archive %s", $zipFilename));
+            return false;
+        }
+
+        for ($i = 0; $i < $zipArchive->numFiles; $i++) {
+            $filenameInZip = $zipArchive->getNameIndex($i);
+
+            if (substr($filenameInZip, -1) === '/') {
+                continue;
+            }
+
+            $realfilename = $this->resolveBaseDirectory() . DIRECTORY_SEPARATOR . basename($filenameInZip);
+
+            if (file_exists($realfilename)) {
+                continue;
+            }
+
+            if (!copy('zip://' . realpath($zipFilename) . '#' . $filenameInZip, $realfilename)) {
+                $zipArchive->close();
+                $this->addToMessageBag(sprintf("Failed to extract %s", $filenameInZip));
+                return false;
+            }
+        }
+
+        $zipArchive->close();
+
+        return true;
+    }
+
+    /**
+     * Install the validator
+     *
+     * @return bool
+     * @throws DirectoryNotFoundException
+     * @throws LogicException
+     */
+    private function installValidator(): bool
+    {
+        if (file_exists($this->resolveValidatorExecutable())) {
+            return true;
+        }
+
+        $installerJarFinder = new Finder();
+        $installerJarFinder->files()->name('verapdf-izpack-installer*.jar')->in($this->resolveBaseDirectory());
+
+        if ($installerJarFinder->hasResults() === false) {
+            $this->addToMessageBag("There was no installer in the form of a JAR-File found");
+            return false;
+        }
+
+        $installerScriptFilename = PathUtils::combinePathWithFile($this->resolveBaseDirectory(), 'install.xml');
+
+        if (
+            file_put_contents(
+                $installerScriptFilename,
+                sprintf(
+                    '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+            <AutomatedInstallation langpack="eng">
+                <com.izforge.izpack.panels.htmlhello.HTMLHelloPanel id="welcome"/>
+                <com.izforge.izpack.panels.target.TargetPanel id="install_dir">
+                    <installpath>%s</installpath>
+                </com.izforge.izpack.panels.target.TargetPanel>
+                <com.izforge.izpack.panels.packs.PacksPanel id="sdk_pack_select">
+                    <pack index="0" name="veraPDF Mac and *nix Scripts" selected="true"/>
+                    <pack index="1" name="veraPDF Validation model" selected="true"/>
+                    <pack index="2" name="veraPDF Documentation" selected="true"/>
+                    <pack index="3" name="veraPDF Sample Plugins" selected="true"/>
+                </com.izforge.izpack.panels.packs.PacksPanel>
+                <com.izforge.izpack.panels.install.InstallPanel id="install"/>
+                <com.izforge.izpack.panels.finish.FinishPanel id="finish"/>
+            </AutomatedInstallation>',
+                    $this->resolveBaseDirectory()
+                )
+            ) === false
+        ) {
+            $this->addToMessageBag("Failed to create install script");
+            return false;
+        }
+
+        $installerJarIterator = $installerJarFinder->getIterator();
+        $installerJarIterator->rewind();
+
+        $installerJarFilename = $installerJarIterator->current()->getPathname();
+
+        $installerJarOptions = [
+            'java',
+            '-jar',
+            $installerJarFilename,
+            $installerScriptFilename,
+        ];
+
+        if ($this->runProcess($installerJarOptions, $this->resolveBaseDirectory()) === false) {
+            $this->addToMessageBag("Failed to run installer");
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Runs the validator java application
+     *
+     * @return boolean
+     */
+    private function performValidation(): bool
+    {
+        if (!file_exists($this->resolveValidatorExecutable())) {
+            $this->addToMessageBag("Validation application not found");
+            return false;
+        }
+
+        $this->resetFileToValidateFilename();
+
+        if (file_put_contents($this->resolveFileToValidateFilename(), $this->pdfContent) === false) {
+            $this->addToMessageBag("Cannot create temporary file which contains the PDF to validate");
+            return false;
+        }
+
+        $validatorExecutableOptions = [
+            $this->resolveValidatorExecutable(),
+            '--format',
+            'json',
+            '--flavour',
+            $this->validatorRuleset,
+            $this->resolveFileToValidateFilename(),
+        ];
+
+        if ($this->runProcessAndGetOutput($validatorExecutableOptions, $this->resolveBaseDirectory(), $validatorExecutableOutput) === false) {
+            $this->checkValidatorExecutableOutput($validatorExecutableOutput);
+            return false;
+        }
+
+        return $this->checkValidatorExecutableOutput($validatorExecutableOutput);
+    }
+
+    /**
+     * Read and parse the JSON response
+     *
+     * @param  string $validatorExecutableOutput
+     * @return bool
+     */
+    private function checkValidatorExecutableOutput(string $validatorExecutableOutput): bool
+    {
+        $validatorExecutableOutputObject = json_decode($validatorExecutableOutput);
+
+        if ($validatorExecutableOutputObject === null && json_last_error() !== JSON_ERROR_NONE) {
+            $this->addToMessageBag(sprintf("Cannot decode JSON result. Error %s", json_last_error_msg()), static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!isset($validatorExecutableOutputObject->report)) {
+            $this->addToMessageBag("Invalid report response - no report property found", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!isset($validatorExecutableOutputObject->report->jobs)) {
+            $this->addToMessageBag("Invalid report response - no jobs property found", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!is_array($validatorExecutableOutputObject->report->jobs)) {
+            $this->addToMessageBag("Invalid report response - jobs property is not an array", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (count($validatorExecutableOutputObject->report->jobs) !== 1) {
+            $this->addToMessageBag("Invalid report response - jobs property should be an array with one element", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        $validatorExecutableOutputJobObject = $validatorExecutableOutputObject->report->jobs[0];
+
+        if (!isset($validatorExecutableOutputJobObject->validationResult)) {
+            $this->addToMessageBag("Invalid report response - job has not a validationResult property", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!isset($validatorExecutableOutputJobObject->validationResult->details)) {
+            $this->addToMessageBag("Invalid report response - job has not a details property", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!isset($validatorExecutableOutputJobObject->validationResult->details->failedRules)) {
+            $this->addToMessageBag("Invalid report response - job has not a failedRules property", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if (!isset($validatorExecutableOutputJobObject->validationResult->details->failedChecks)) {
+            $this->addToMessageBag("Invalid report response - job has not a failedChecks property", static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        if ($validatorExecutableOutputJobObject->validationResult->details->failedRules == 0 && $validatorExecutableOutputJobObject->validationResult->details->failedChecks == 0) {
+            return true;
+        }
+
+        $this->addToMessageBag(
+            sprintf(
+                "Validation failed. Failed rules: %s, Failed Checks: %s",
+                $validatorExecutableOutputJobObject->validationResult->details->failedRules,
+                $validatorExecutableOutputJobObject->validationResult->details->failedChecks
+            ),
+            static::MSG_TYPE_VALIDATIONERROR
+        );
+
+        foreach ($validatorExecutableOutputJobObject->validationResult->details->ruleSummaries ?? [] as $ruleSummary) {
+            $this->addToMessageBag(
+                sprintf(
+                    "%s, %s, %s --> %s",
+                    $ruleSummary->specification,
+                    $ruleSummary->clause,
+                    $ruleSummary->object,
+                    $ruleSummary->description
+                ),
+                static::MSG_TYPE_VALIDATIONERROR
+            );
+        }
+
+        return false;
+    }
+
+    /**
+     * Cleanup downloads and created files
+     *
+     * @return void
+     */
+    private function cleanupBaseDirectory(): void
+    {
+        if ($this->cleanupBaseDirectoryIsDisabled === true) {
+            return;
+        }
+
+        if (!is_dir($this->resolveBaseDirectory())) {
+            return;
+        }
+
+        $this->cleanupBaseDirectoryInternal($this->resolveBaseDirectory());
+    }
+
+    /**
+     * Helper method for removeBaseDirectory
+     *
+     * @param  string $directoryToRemove
+     * @return void
+     */
+    private function cleanupBaseDirectoryInternal(string $directoryToRemove): void
+    {
+        if (!is_dir($directoryToRemove)) {
+            return;
+        }
+
+        $objects = scandir($directoryToRemove);
+
+        foreach ($objects as $object) {
+            if ($object !== "." && $object !== "..") {
+                $fullFilename = PathUtils::combinePathWithFile($directoryToRemove, $object);
+                if (is_dir($fullFilename) && !is_link($fullFilename)) {
+                    $this->cleanupBaseDirectoryInternal($fullFilename);
+                } else {
+                    unlink($fullFilename);
+                }
+            }
+        }
+
+        rmdir($directoryToRemove);
+    }
+
+    /**
+     * Runs a process. If the process runned successfully this method
+     * returns true, otherwise false
+     *
+     * @param  array  $command
+     * @param  string $workingdirectory
+     * @return bool
+     */
+    private function runProcess(array $command, string $workingdirectory): bool
+    {
+        return $this->runProcessAndGetOutput($command, $workingdirectory, $_);
+    }
+
+    /**
+     * Runs a process. If the process runned successfully this method
+     * returns true, otherwise false. The output of the process wil be
+     * returned in $processOutput
+     *
+     * @param  array       $command
+     * @param  string      $workingdirectory
+     * @param  null|string &$processOutput
+     * @return bool
+     */
+    private function runProcessAndGetOutput(array $command, string $workingdirectory, ?string &$processOutput): bool
+    {
+        try {
+            $process = new Process($command);
+            $process->setTimeout(0.0);
+            $process->setWorkingDirectory($workingdirectory);
+            $process->run();
+
+            $processOutput = $process->getOutput();
+
+            foreach (preg_split("/\r\n|\n|\r/", $processOutput) as $outputLine) {
+                $this->addToMessageBag($outputLine, static::MSG_TYPE_PROCESSOUTPUT);
+            }
+
+            if (!$process->isSuccessful()) {
+                return false;
+            }
+        } catch (Throwable $throwable) {
+            $this->addToMessageBag($throwable, static::MSG_TYPE_VALIDATIONERROR);
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Run a file download.
+     *
+     * @param  string $url
+     * @param  string $toFilePath
+     * @param  bool   $forceOverwrite
+     * @return bool
+     */
+    private function runFileDownload(string $url, string $toFilePath, bool $forceOverwrite = false): bool
+    {
+        try {
+            if (file_exists($toFilePath) && !$forceOverwrite) {
+                return true;
+            }
+
+            file_put_contents($toFilePath, file_get_contents($url));
+        } catch (Throwable $throwable) {
+            $this->addToMessageBag($throwable);
+            return false;
+        }
+
+        return true;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdSpecificationVersions.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdSpecificationVersions.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/ZugferdSpecificationVersions.php	(revision 8542)
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd;
+
+/**
+ * Class representing the information source of the used specification versions
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdSpecificationVersions
+{
+    /**
+     * The latest ZUGFeRD version used
+     */
+    public const VERSION_ZUGFERD = "2.3.2";
+
+    /**
+     * The latest Factur-X version used
+     */
+    public const VERSION_FACTURX = "1.07.2";
+
+    /**
+     * The latest XRechnung version used
+     */
+    public const VERSION_XRECHNUNG = "3.0.2";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdDocumentType.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdDocumentType.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdDocumentType.php	(revision 8542)
@@ -0,0 +1,6422 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelists;
+
+/**
+ * Class representing list of document name codes
+ * Name of list: UNTDID 1001 Document name code
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ * @see      https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:untdid.1001
+ */
+class ZugferdDocumentType
+{
+    /**
+     * A claim for parts and/or labour charges (290)
+     *
+     * A claim for parts and/or labour charges incurred .
+     */
+    public const A_CLAIM_FOR_PARTS_ANDOR_LABOUR_CHARGES = '290';
+
+    /**
+     * Accounting statement (832)
+     *
+     * Document specifying an accounting statement.
+     */
+    public const ACCOUNTING_STATEMENT = '832';
+
+    /**
+     * Accounting voucher (526)
+     *
+     * A document/message justifying an accounting entry.
+     */
+    public const ACCOUNTING_VOUCHER = '526';
+
+    /**
+     * Acknowledgement message (312)
+     *
+     * Message providing acknowledgement information at the business application
+     * level concerning the processing of a message.
+     */
+    public const ACKNOWLEDGEMENT_MESSAGE = '312';
+
+    /**
+     * Acknowledgement of change of supplier (414)
+     *
+     * Acknowledgement of the change of supplier.
+     */
+    public const ACKNOWLEDGEMENT_OF_CHANGE_OF_SUPPLIER = '414';
+
+    /**
+     * Acknowledgement of order (320)
+     *
+     * Document/message acknowledging an undertaking to fulfil an order and
+     * confirming conditions or acceptance of conditions.
+     */
+    public const ACKNOWLEDGEMENT_OF_ORDER = '320';
+
+    /**
+     * Acknowledgment of receipt (767)
+     *
+     * Document/message confirming a receipt to the sending party.
+     */
+    public const ACKNOWLEDGMENT_OF_RECEIPT = '767';
+
+    /**
+     * Advice of an amendment of a documentary credit (198)
+     *
+     * Advice of an amendment of a documentary credit.
+     */
+    public const ADVICE_OF_AN_AMENDMENT_OF_A_DOCUMENTARY_CREDIT = '198';
+
+    /**
+     * Advice of collection (790)
+     *
+     * (1030) Document that is joined to the transport or sent by separate means,
+     * giving to the departure rail organization the proof that the cash-on
+     * delivery amount has been encashed by the arrival rail organization before
+     * reimbursement of the consignor.
+     */
+    public const ADVICE_OF_COLLECTION = '790';
+
+    /**
+     * Advice of distribution of documents (370)
+     *
+     * Document/message in which the party responsible for the issue of a set of
+     * trade documents specifies the various recipients of originals and copies of
+     * these documents, with an indication of the number of copies distributed to
+     * each of them.
+     */
+    public const ADVICE_OF_DISTRIBUTION_OF_DOCUMENTS = '370';
+
+    /**
+     * Advice report (769)
+     *
+     * Document reporting advice.
+     */
+    public const ADVICE_REPORT = '769';
+
+    /**
+     * Advising items to be booked to a financial account (141)
+     *
+     * A document and/or message advising of items which have to be booked to a
+     * financial account.
+     */
+    public const ADVISING_ITEMS_TO_BE_BOOKED_TO_A_FINANCIAL_ACCOUNT = '141';
+
+    /**
+     * AEO Certificate Full (891)
+     *
+     * Certificate issued to business that fulfils specified criteria to both AEO
+     * Certificate of Security and/or Safety and AEO Certificate of Conformity or
+     * Compliance by a national AEO recognized program (e.g. AEO-Customs
+     * Simplifications/Security and Safety (AEOC/AEOS) - Regulation(EU) No
+     * 952/2013).
+     */
+    public const AEO_CERTIFICATE_FULL = '891';
+
+    /**
+     * AEO Certificate of Conformity or Compliance (879)
+     *
+     * Certificate issued to business that fulfils specified criteria for
+     * compliance with tax and customs obligations, as well as financial solvency
+     * by a national AEO recognized program (e.g. AEO-Customs Simplifications
+     * (AEOC) - Regulation (EU) No 952/2013).
+     */
+    public const AEO_CERTIFICATE_OF_CONFORMITY_OR_COMPLIANCE = '879';
+
+    /**
+     * AEO Certificate of Security and/or Safety (878)
+     *
+     * Certificate issued to business that fulfils specified criteria applied to
+     * the security and safety of the logistics chain in the flow of foreign trade
+     * operations by a national AEO recognized program (e.g. AEO-Security and
+     * Safety (AEOS) - Regulation (EU) No 952/2013).
+     */
+    public const AEO_CERTIFICATE_OF_SECURITY_ANDOR_SAFETY = '878';
+
+    /**
+     * Agreement to pay (212)
+     *
+     * Document/message in which the debtor expresses the intention to pay.
+     */
+    public const AGREEMENT_TO_PAY = '212';
+
+    /**
+     * Air waybill (740)
+     *
+     * Document/message made out by or on behalf of the shipper which evidences
+     * the contract between the shipper and carrier(s) for carriage of goods over
+     * routes of the carrier(s) and which is identified by the airline prefix
+     * issuing the document plus a serial (IATA).
+     */
+    public const AIR_WAYBILL = '740';
+
+    /**
+     * Amicable agreement (846)
+     *
+     * Document specifying an amicable agreement.
+     */
+    public const AMICABLE_AGREEMENT = '846';
+
+    /**
+     * Announcement for returns (732)
+     *
+     * A message by which a party announces to another party details of goods for
+     * return due to specified reasons (e.g. returns for repair, returns because
+     * of damage, etc).
+     */
+    public const ANNOUNCEMENT_FOR_RETURNS = '732';
+
+    /**
+     * Application acknowledgement and error report (294)
+     *
+     * A message used by an application to acknowledge reception of a message
+     * and/or to report any errors.
+     */
+    public const APPLICATION_ACKNOWLEDGEMENT_AND_ERROR_REPORT = '294';
+
+    /**
+     * Application error and acknowledgement (305)
+     *
+     * A message to inform a message issuer that a previously sent message has
+     * been received by the addressee's application, or that a previously sent
+     * message has been rejected by the addressee's application.
+     */
+    public const APPLICATION_ERROR_AND_ACKNOWLEDGEMENT = '305';
+
+    /**
+     * Application error message (313)
+     *
+     * Message indicating that a message was rejected due to errors encountered at
+     * the application level.
+     */
+    public const APPLICATION_ERROR_MESSAGE = '313';
+
+    /**
+     * Application for banker's draft (412)
+     *
+     * Application by a customer to his bank to issue a banker's draft stating the
+     * amount and currency of the draft, the name of the payee and the place and
+     * country of payment.
+     */
+    public const APPLICATION_FOR_BANKERS_DRAFT = '412';
+
+    /**
+     * Application for banker's guarantee (429)
+     *
+     * Document/message whereby a customer requests his bank to issue a guarantee
+     * in favour of a nominated party in another country, stating the amount and
+     * currency and the specific conditions of the guarantee.
+     */
+    public const APPLICATION_FOR_BANKERS_GUARANTEE = '429';
+
+    /**
+     * Application for designation of berthing places (317)
+     *
+     * Document to apply for designation of berthing places.
+     */
+    public const APPLICATION_FOR_DESIGNATION_OF_BERTHING_PLACES = '317';
+
+    /**
+     * Application for documentary credit (996)
+     *
+     * Message with application for opening of a documentary credit.
+     */
+    public const APPLICATION_FOR_DOCUMENTARY_CREDIT = '996';
+
+    /**
+     * Application for exchange allocation (925)
+     *
+     * Document/message whereby an importer/buyer requests the competent body to
+     * allocate an amount of foreign exchange to be transferred to an
+     * exporter/seller in payment for goods.
+     */
+    public const APPLICATION_FOR_EXCHANGE_ALLOCATION = '925';
+
+    /**
+     * Application for goods control certificate (840)
+     *
+     * Document/message submitted to a competent body by party requesting a Goods
+     * control certificate to be issued in accordance with national or
+     * international standards, or conforming to legislation in the importing
+     * country, or as specified in the contract.
+     */
+    public const APPLICATION_FOR_GOODS_CONTROL_CERTIFICATE = '840';
+
+    /**
+     * Application for inspection certificate (855)
+     *
+     * Document/message submitted to a competent body by a party requesting an
+     * Inspection certificate to be issued in accordance with national or
+     * international standards, or conforming to legislation in the country in
+     * which it is required, or as specified in the contract.
+     */
+    public const APPLICATION_FOR_INSPECTION_CERTIFICATE = '855';
+
+    /**
+     * Application for phytosanitary certificate (850)
+     *
+     * Document/message submitted to a competent body by party requesting a
+     * Phytosanitary certificate to be issued.
+     */
+    public const APPLICATION_FOR_PHYTOSANITARY_CERTIFICATE = '850';
+
+    /**
+     * Application for shifting from the designated place in port (318)
+     *
+     * Document to apply for shifting from the designated place in port.
+     */
+    public const APPLICATION_FOR_SHIFTING_FROM_THE_DESIGNATED_PLACE_IN_PORT = '318';
+
+    /**
+     * Application for usage of berth or mooring facilities (316)
+     *
+     * Document to apply for usage of berth or mooring facilities.
+     */
+    public const APPLICATION_FOR_USAGE_OF_BERTH_OR_MOORING_FACILITIES = '316';
+
+    /**
+     * Application for vessel's entering into port area in night-time (353)
+     *
+     * Document to apply for vessel's entering into port area in night-time.
+     */
+    public const APPLICATION_FOR_VESSELS_ENTERING_INTO_PORT_AREA_IN_NIGHTTIME = '353';
+
+    /**
+     * Approved unpriced bill of quantity (216)
+     *
+     * Document/message providing an approved detailed, quantity based
+     * specification (bill of quantity), in an unpriced form.
+     */
+    public const APPROVED_UNPRICED_BILL_OF_QUANTITY = '216';
+
+    /**
+     * Arrival information (98)
+     *
+     * Message reporting the arrival details of goods or cargo.
+     */
+    public const ARRIVAL_INFORMATION = '98';
+
+    /**
+     * Arrival notice (goods) (781)
+     *
+     * Notification from the carrier to the consignee in writing, by telephone or
+     * by any other means (express letter, message, telegram, etc.) informing him
+     * that a consignment addressed to him is being or will shortly be held at his
+     * disposal at a specified point in the place of destination.
+     */
+    public const ARRIVAL_NOTICE_GOODS = '781';
+
+    /**
+     * Assessment report (818)
+     *
+     * Document reporting an assessment.
+     */
+    public const ASSESSMENT_REPORT = '818';
+
+    /**
+     * ATA carnet (955)
+     *
+     * International Customs document (Admission Temporaire / Temporary Admission)
+     * which, issued under the terms of the ATA Convention (1961), incorporates an
+     * internationally valid guarantee and may be used, in lieu of national
+     * Customs documents and as security for import duties and taxes, to cover the
+     * temporary admission of goods and, where appropriate, the transit of goods.
+     * If accepted for controlling the temporary export and reimport of goods,
+     * international guarantee does not apply (CCC).
+     */
+    public const ATA_CARNET = '955';
+
+    /**
+     * Audio (859)
+     *
+     * Document consisting of an audio recording (e.g. a telephone conversation or
+     * alike).
+     */
+    public const AUDIO = '859';
+
+    /**
+     * Authorisation to plan and ship orders (173)
+     *
+     * Document or message that authorises receiver to plan and ship orders based
+     * on information in this message.
+     */
+    public const AUTHORISATION_TO_PLAN_AND_SHIP_ORDERS = '173';
+
+    /**
+     * Authorisation to plan and suggest orders (172)
+     *
+     * Document or message that authorises receiver to plan orders, based on
+     * information in this message, and send these orders as suggestions to the
+     * sender.
+     */
+    public const AUTHORISATION_TO_PLAN_AND_SUGGEST_ORDERS = '172';
+
+    /**
+     * Bailment contract (148)
+     *
+     * A document authorizing the bailing of goods.
+     */
+    public const BAILMENT_CONTRACT = '148';
+
+    /**
+     * Balance confirmation (182)
+     *
+     * Confirmation of a balance at an entry date.
+     */
+    public const BALANCE_CONFIRMATION = '182';
+
+    /**
+     * Bank to bank funds transfer (247)
+     *
+     * The message is a bank to bank funds transfer.
+     */
+    public const BANK_TO_BANK_FUNDS_TRANSFER = '247';
+
+    /**
+     * Banker's draft (485)
+     *
+     * Draft drawn in favour of a third party either by one bank on another bank,
+     * or by a branch of a bank on its head office (or vice versa) or upon another
+     * branch of the same bank. In either case, the draft should comply with the
+     * specifications laid down for cheques in the country in which it is to be
+     * payable.
+     */
+    public const BANKERS_DRAFT = '485';
+
+    /**
+     * Banker's guarantee (430)
+     *
+     * Document/message in which a bank undertakes to pay out a limited amount of
+     * money to a designated party, on conditions stated therein (other than those
+     * laid down in the Uniform Customs Practice).
+     */
+    public const BANKERS_GUARANTEE = '430';
+
+    /**
+     * Banking status (46)
+     *
+     * A banking status document and/or message.
+     */
+    public const BANKING_STATUS = '46';
+
+    /**
+     * Basic agreement (149)
+     *
+     * A document indicating an agreement containing basic terms and conditions
+     * applicable to future contracts between two parties.
+     */
+    public const BASIC_AGREEMENT = '149';
+
+    /**
+     * Bayplan/stowage plan, full (658)
+     *
+     * A full bayplan containing all occupied and/or blocked stowage locations.
+     */
+    public const BAYPLANSTOWAGE_PLAN_FULL = '658';
+
+    /**
+     * Bayplan/stowage plan, partial (659)
+     *
+     * A partial bayplan. containing only a selected part of the available stowage
+     * locations.
+     */
+    public const BAYPLANSTOWAGE_PLAN_PARTIAL = '659';
+
+    /**
+     * Bill of exchange (490)
+     *
+     * Document/message, issued and signed in conformity with the applicable
+     * legislation, which contains an unconditional order whereby the drawer
+     * directs the drawee to pay a definite sum of money to the payee or to his
+     * order, on demand or at a definite time, against the surrender of the
+     * document itself.
+     */
+    public const BILL_OF_EXCHANGE = '490';
+
+    /**
+     * Bill of lading (705)
+     *
+     * Negotiable document/message which evidences a contract of carriage by sea
+     * and the taking over or loading of goods by carrier, and by which carrier
+     * undertakes to deliver goods against surrender of the document. A provision
+     * in the document that goods are to be delivered to the order of a named
+     * person, or to order, or to bearer, constitutes such an undertaking.
+     */
+    public const BILL_OF_LADING = '705';
+
+    /**
+     * Bill of lading copy (707)
+     *
+     * A copy of the bill of lading issued by a transport company.
+     */
+    public const BILL_OF_LADING_COPY = '707';
+
+    /**
+     * Bill of lading original (706)
+     *
+     * The original of the bill of lading issued by a transport company. When
+     * issued by the maritime industry it could signify ownership of the cargo.
+     */
+    public const BILL_OF_LADING_ORIGINAL = '706';
+
+    /**
+     * Binding customer agreement for contract (772)
+     *
+     * Document which is a binding agreement from the customer for a contract,
+     * such as an insurance contract.
+     */
+    public const BINDING_CUSTOMER_AGREEMENT_FOR_CONTRACT = '772';
+
+    /**
+     * Binding offer (771)
+     *
+     * Document which is a binding offer from one party to another.
+     */
+    public const BINDING_OFFER = '771';
+
+    /**
+     * Blanket order (221)
+     *
+     * Usage of document/message for general order purposes with later split into
+     * quantities and delivery dates and maybe delivery locations.
+     */
+    public const BLANKET_ORDER = '221';
+
+    /**
+     * Booking confirmation (770)
+     *
+     * Document/message issued by a carrier to confirm that space has been
+     * reserved for a consignment in means of transport.
+     */
+    public const BOOKING_CONFIRMATION = '770';
+
+    /**
+     * Booking request (335)
+     *
+     * Document/message issued by a supplier to a carrier requesting space to be
+     * reserved for a specified consignment, indicating desirable conveyance,
+     * despatch time, etc.
+     */
+    public const BOOKING_REQUEST = '335';
+
+    /**
+     * Bordereau (787)
+     *
+     * Document/message used in road transport, listing the cargo carried on a
+     * road vehicle, often referring to appended copies of Road consignment note.
+     */
+    public const BORDEREAU = '787';
+
+    /**
+     * Buy America certificate of compliance (168)
+     *
+     * A document certifying that more than 50 percent of the cost of an item is
+     * attributed to US origin.
+     */
+    public const BUY_AMERICA_CERTIFICATE_OF_COMPLIANCE = '168';
+
+    /**
+     * Calculation note (844)
+     *
+     * Document detailing a calculation, such as an invoice calculation or a costs
+     * calculation.
+     */
+    public const CALCULATION_NOTE = '844';
+
+    /**
+     * Call for tender (754)
+     *
+     * A document/message used by a buyer to define the procurement procedure and
+     * request suppliers to participate.
+     */
+    public const CALL_FOR_TENDER = '754';
+
+    /**
+     * Call off order (226)
+     *
+     * Document/message to provide split quantities and delivery dates referring
+     * to a previous blanket order.
+     */
+    public const CALL_OFF_ORDER = '226';
+
+    /**
+     * Call-off delivery (76)
+     *
+     * Document/message to provide split quantities and delivery dates referring
+     * to a previous delivery instruction.
+     */
+    public const CALLOFF_DELIVERY = '76';
+
+    /**
+     * Calling forward notice (775)
+     *
+     * Instructions for release or delivery of goods.
+     */
+    public const CALLING_FORWARD_NOTICE = '775';
+
+    /**
+     * Campaign price/sales catalogue (234)
+     *
+     * A price/sales catalogue containing special prices which are valid only for
+     * a specified period or under specified conditions.
+     */
+    public const CAMPAIGN_PRICESALES_CATALOGUE = '234';
+
+    /**
+     * Cargo acceptance order (170)
+     *
+     * Order to accept cargo to be delivered by a carrier.
+     */
+    public const CARGO_ACCEPTANCE_ORDER = '170';
+
+    /**
+     * Cargo analysis voyage report (260)
+     *
+     * An analysis of the cargo for a voyage.
+     */
+    public const CARGO_ANALYSIS_VOYAGE_REPORT = '260';
+
+    /**
+     * Cargo declaration (arrival) (933)
+     *
+     * Generic term, sometimes referred to as Freight declaration, applied to the
+     * documents providing the particulars required by the Customs concerning the
+     * cargo (freight) carried by commercial means of transport (CCC).
+     */
+    public const CARGO_DECLARATION_ARRIVAL = '933';
+
+    /**
+     * Cargo declaration (departure) (833)
+     *
+     * Generic term, sometimes referred to as Freight declaration, applied to the
+     * documents providing the particulars required by the Customs concerning the
+     * cargo (freight) carried by commercial means of transport (CCC).
+     */
+    public const CARGO_DECLARATION_DEPARTURE = '833';
+
+    /**
+     * Cargo manifest (785)
+     *
+     * Listing of goods comprising the cargo carried in a means of transport or in
+     * a transport-unit. The cargo manifest gives the commercial particulars of
+     * the goods, such as transport document numbers, consignors, consignees,
+     * shipping marks, number and kind of packages and descriptions and quantities
+     * of the goods.
+     */
+    public const CARGO_MANIFEST = '785';
+
+    /**
+     * Cargo movement event log (259)
+     *
+     * A document detailing times and dates of events pertaining to a cargo
+     * movement.
+     */
+    public const CARGO_MOVEMENT_EVENT_LOG = '259';
+
+    /**
+     * Cargo movement voyage summary (314)
+     *
+     * A consolidated voyage summary which contains the information in a
+     * certificate of analysis, a voyage analysis and a cargo movement time log
+     * for a voyage.
+     */
+    public const CARGO_MOVEMENT_VOYAGE_SUMMARY = '314';
+
+    /**
+     * Cargo release notification (99)
+     *
+     * Message/document sent by the cargo handler indicating that the cargo has
+     * moved from a Customs controlled premise.
+     */
+    public const CARGO_RELEASE_NOTIFICATION = '99';
+
+    /**
+     * Cargo status (34)
+     *
+     * Message identifying the status of cargo.
+     */
+    public const CARGO_STATUS = '34';
+
+    /**
+     * Cargo vessel discharge order (145)
+     *
+     * Order that the containers or cargo specified are to be discharged from a
+     * vessel.
+     */
+    public const CARGO_VESSEL_DISCHARGE_ORDER = '145';
+
+    /**
+     * Cargo vessel loading order (146)
+     *
+     * Order that specified cargo, containers or groups of containers are to be
+     * loaded in or on a vessel.
+     */
+    public const CARGO_VESSEL_LOADING_ORDER = '146';
+
+    /**
+     * Cargo/goods handling and movement message (738)
+     *
+     * A message from a party to a warehouse, distribution centre, or logistics
+     * service provider identifying the handling services and where required the
+     * movement of specified goods, limited to warehouses within the jurisdiction
+     * of the distribution centre or log.
+     */
+    public const CARGOGOODS_HANDLING_AND_MOVEMENT_MESSAGE = '738';
+
+    /**
+     * Cartage order (local transport) (343)
+     *
+     * Document/message giving instructions regarding local transport of goods,
+     * e.g. from the premises of an enterprise to those of a carrier undertaking
+     * further transport.
+     */
+    public const CARTAGE_ORDER_LOCAL_TRANSPORT = '343';
+
+    /**
+     * Cash pool financial statement (306)
+     *
+     * A financial statement for a cash pool.
+     */
+    public const CASH_POOL_FINANCIAL_STATEMENT = '306';
+
+    /**
+     * Casing sanitary certificate (93)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that casing products comply with the requirements set by
+     * the importing country.
+     */
+    public const CASING_SANITARY_CERTIFICATE = '93';
+
+    /**
+     * Certificate (16)
+     *
+     * Document by means of which the documentary credit applicant specifies the
+     * conditions for the certificate and by whom the certificate is to be issued.
+     */
+    public const CERTIFICATE = '16';
+
+    /**
+     * Certificate of analysis (1)
+     *
+     * Certificate providing the values of an analysis.
+     */
+    public const CERTIFICATE_OF_ANALYSIS = '1';
+
+    /**
+     * Certificate of compliance with standards of the World Organization for
+     * Animal Health (OIE) (648)
+     *
+     * A certification that the products have been treated in a way consistent
+     * with the standards set by the World Organization for Animal Health (OIE).
+     */
+    public const CERTIFICATE_OF_COMPLIANCE_WITH_STANDARDS_OF_THE_WORLD_ORGANIZATION_FOR_ANIMAL_HEALTH_OIE = '648';
+
+    /**
+     * Certificate of conformity (2)
+     *
+     * Certificate certifying the conformity to predefined definitions.
+     */
+    public const CERTIFICATE_OF_CONFORMITY = '2';
+
+    /**
+     * Certificate of disembarkation permission (487)
+     *
+     * Document or message issuing permission to disembark.
+     */
+    public const CERTIFICATE_OF_DISEMBARKATION_PERMISSION = '487';
+
+    /**
+     * Certificate of food item transport readiness (642)
+     *
+     * A certificate to verify readiness of a transport or transport area such as
+     * a reservoir or hold to transport food items.
+     */
+    public const CERTIFICATE_OF_FOOD_ITEM_TRANSPORT_READINESS = '642';
+
+    /**
+     * Certificate of origin (861)
+     *
+     * Document/message identifying goods, in which the authority or body
+     * authorized to issue it certifies expressly that the goods to which the
+     * certificate relates originate in a specific country. The word "country" may
+     * include a group of countries, a region or a part of a country. This
+     * certificate may also include a declaration by the manufacturer, producer,
+     * supplier, exporter or other competent person.
+     */
+    public const CERTIFICATE_OF_ORIGIN = '861';
+
+    /**
+     * Certificate of origin form GSP (865)
+     *
+     * Specific form of certificate of origin for goods qualifying for
+     * preferential treatment under the generalized system of preferences
+     * (includes a combined declaration of origin and certificate, form A).
+     */
+    public const CERTIFICATE_OF_ORIGIN_FORM_GSP = '865';
+
+    /**
+     * Certificate of origin, application for (860)
+     *
+     * Document/message submitted to a competent body by an interested party
+     * requesting a Certificate of origin to be issued in accordance with relevant
+     * criteria, and on the basis of evidence of the origin of the goods.
+     */
+    public const CERTIFICATE_OF_ORIGIN_APPLICATION_FOR = '860';
+
+    /**
+     * Certificate of paid insurance premium (835)
+     *
+     * Document certifying the payment of the insurance premium.
+     */
+    public const CERTIFICATE_OF_PAID_INSURANCE_PREMIUM = '835';
+
+    /**
+     * Certificate of quality (3)
+     *
+     * Certificate certifying the quality of goods, services etc.
+     */
+    public const CERTIFICATE_OF_QUALITY = '3';
+
+    /**
+     * Certificate of quantity (19)
+     *
+     * Certificate certifying the quantity of goods, services etc.
+     */
+    public const CERTIFICATE_OF_QUANTITY = '19';
+
+    /**
+     * Certificate of refrigerated transport equipment inspection (639)
+     *
+     * Inspection document shows that the container, the cooling devices and
+     * measured temperature is in good working condition.
+     */
+    public const CERTIFICATE_OF_REFRIGERATED_TRANSPORT_EQUIPMENT_INSPECTION = '639';
+
+    /**
+     * Certificate of registry (798)
+     *
+     * Official certificate stating the vessel's registry.
+     */
+    public const CERTIFICATE_OF_REGISTRY = '798';
+
+    /**
+     * Certificate of sealing of export meat lockers (33)
+     *
+     * Document / message issued by the authority in the exporting country
+     * evidencing the sealing of export meat lockers.
+     */
+    public const CERTIFICATE_OF_SEALING_OF_EXPORT_MEAT_LOCKERS = '33';
+
+    /**
+     * Certificate of shipment (375)
+     *
+     * (1109) Certificate providing confirmation that a consignment has been
+     * shipped.
+     */
+    public const CERTIFICATE_OF_SHIPMENT = '375';
+
+    /**
+     * Certificate of suitability for transport of grains and legumes (638)
+     *
+     * Certificate of inspection for the vessel stating its readiness and
+     * suitability for transporting grains and legumes.
+     */
+    public const CERTIFICATE_OF_SUITABILITY_FOR_TRANSPORT_OF_GRAINS_AND_LEGUMES = '638';
+
+    /**
+     * Certificate of sustainability (753)
+     *
+     * Document/message issued by a competent body certifying sustainability.
+     */
+    public const CERTIFICATE_OF_SUSTAINABILITY = '753';
+
+    /**
+     * Certified cost and price data (159)
+     *
+     * A document indicating cost and price data whose accuracy has been
+     * certified.
+     */
+    public const CERTIFIED_COST_AND_PRICE_DATA = '159';
+
+    /**
+     * Certified inspection and test results (162)
+     *
+     * A certification as to the accuracy of inspection and test results.
+     */
+    public const CERTIFIED_INSPECTION_AND_TEST_RESULTS = '162';
+
+    /**
+     * Certified list of ingredients (634)
+     *
+     * A document legalized from a competent authority that shows the components
+     * of the product (food additive, detergent, disinfectant and sanitizer).
+     */
+    public const CERTIFIED_LIST_OF_INGREDIENTS = '634';
+
+    /**
+     * Chargeback (68)
+     *
+     * Document/message issued by a factor to a seller or to another factor to
+     * indicate that the rest of the amounts of one or more invoices uncollectable
+     * from buyers are charged back to clear the invoice(s) off the ledger.
+     */
+    public const CHARGEBACK = '68';
+
+    /**
+     * Charges note (789)
+     *
+     * Document used by the rail organization to indicate freight charges or
+     * additional charges in each case where the departure station is not able to
+     * calculate the charges for the total voyage (e.g. tariff not yet updated,
+     * part of voyage not covered by the tariff). This document must be considered
+     * as joined to the transport.
+     */
+    public const CHARGES_NOTE = '789';
+
+    /**
+     * Civil liability for oil certificate (794)
+     *
+     * Document declaring a ship owner's liability for oil propelling or carried
+     * on a vessel.
+     */
+    public const CIVIL_LIABILITY_FOR_OIL_CERTIFICATE = '794';
+
+    /**
+     * Civil status document (768)
+     *
+     * Document which confirms the civil status of a person.
+     */
+    public const CIVIL_STATUS_DOCUMENT = '768';
+
+    /**
+     * Claim history certificate (831)
+     *
+     * Document which certifies the history of claims.
+     */
+    public const CLAIM_HISTORY_CERTIFICATE = '831';
+
+    /**
+     * Claim notification (817)
+     *
+     * Document notifying a claim.
+     */
+    public const CLAIM_NOTIFICATION = '817';
+
+    /**
+     * Close of claim (827)
+     *
+     * Document reporting the closing of a claim file.
+     */
+    public const CLOSE_OF_CLAIM = '827';
+
+    /**
+     * Closing statement of an account (56)
+     *
+     * Last statement of a period containing the interest calculation and the
+     * final balance of the last entry date.
+     */
+    public const CLOSING_STATEMENT_OF_AN_ACCOUNT = '56';
+
+    /**
+     * Co-insurance ceding bordereau (329)
+     *
+     * The document or message contains a bordereau describing co-insurance ceding
+     * information.
+     */
+    public const COINSURANCE_CEDING_BORDEREAU = '329';
+
+    /**
+     * Code change request (273)
+     *
+     * Request a change to an existing code.
+     */
+    public const CODE_CHANGE_REQUEST = '273';
+
+    /**
+     * Collateral account (70)
+     *
+     * Document message issued by a factor to indicate the movements of invoices,
+     * credit notes and payments of a seller's account.
+     */
+    public const COLLATERAL_ACCOUNT = '70';
+
+    /**
+     * Collection order (447)
+     *
+     * Document/message whereby a bank is instructed (or requested) to handle
+     * financial and/or commercial documents in order to obtain acceptance and/or
+     * payment, or to deliver documents on such other terms and conditions as may
+     * be specified.
+     */
+    public const COLLECTION_ORDER = '447';
+
+    /**
+     * Collection payment advice (425)
+     *
+     * Document/message whereby a bank advises that a collection has been paid,
+     * giving details and methods of funds disposal.
+     */
+    public const COLLECTION_PAYMENT_ADVICE = '425';
+
+    /**
+     * Combined certificate of value and origin (17)
+     *
+     * Document identifying goods in which the issuing authority expressly
+     * certifies that the goods originate in a specific country or part of, or
+     * group of countries. It also states the price and/or cost of the goods with
+     * the purpose of determining the customs origin.
+     */
+    public const COMBINED_CERTIFICATE_OF_VALUE_AND_ORIGIN = '17';
+
+    /**
+     * Combined transport bill of lading/multimodal bill of lading (766)
+     *
+     * Document which evidences a multimodal transport contract, the taking in
+     * charge of the goods by the multimodal transport operator, and an
+     * undertaking by him to deliver the goods in accordance with the terms of the
+     * contract.
+     */
+    public const COMBINED_TRANSPORT_BILL_OF_LADINGMULTIMODAL_BILL_OF_LADING = '766';
+
+    /**
+     * Combined transport document (generic) (764)
+     *
+     * Negotiable or non-negotiable document evidencing a contract for the
+     * performance and/or procurement of performance of combined transport of
+     * goods and bearing on its face either the heading "Negotiable combined
+     * transport document issued subject to Uniform Rules for a Combined Transport
+     * Document (ICC Brochure No. 298)" or the heading "Non-negotiable Combined
+     * Transport Document issued subject to Uniform Rules for a Combined Transport
+     * Document (ICC Brochure No. 298)".
+     */
+    public const COMBINED_TRANSPORT_DOCUMENT_GENERIC = '764';
+
+    /**
+     * Commercial account summary (731)
+     *
+     * A message enabling the transmission of commercial data concerning payments
+     * made and outstanding items on an account over a period of time.
+     */
+    public const COMMERCIAL_ACCOUNT_SUMMARY = '731';
+
+    /**
+     * Commercial account summary response (397)
+     *
+     * A document providing a response to a previously sent commercial account
+     * summary message.
+     */
+    public const COMMERCIAL_ACCOUNT_SUMMARY_RESPONSE = '397';
+
+    /**
+     * Commercial dispute (67)
+     *
+     * Document/message issued by a party (usually the buyer) to indicate that one
+     * or more invoices or one or more credit notes are disputed for payment.
+     */
+    public const COMMERCIAL_DISPUTE = '67';
+
+    /**
+     * Commercial invoice (380)
+     *
+     * (1334) Document/message claiming payment for goods or services supplied
+     * under conditions agreed between seller and buyer.
+     */
+    public const COMMERCIAL_INVOICE = '380';
+
+    /**
+     * Commercial invoice which includes a packing list (331)
+     *
+     * Commercial transaction (invoice) will include a packing list.
+     */
+    public const COMMERCIAL_INVOICE_WHICH_INCLUDES_A_PACKING_LIST = '331';
+
+    /**
+     * Commission note (382)
+     *
+     * (1111) Document/message in which a seller specifies the amount of
+     * commission, the percentage of the invoice amount, or some other basis for
+     * the calculation of the commission to which a sales agent is entitled.
+     */
+    public const COMMISSION_NOTE = '382';
+
+    /**
+     * Communication from opposite party (845)
+     *
+     * Document containing a communication from the opposite party, such as in
+     * legal action.
+     */
+    public const COMMUNICATION_FROM_OPPOSITE_PARTY = '845';
+
+    /**
+     * Composite data element change request (277)
+     *
+     * Request a change to an existing composite data element.
+     */
+    public const COMPOSITE_DATA_ELEMENT_CHANGE_REQUEST = '277';
+
+    /**
+     * Composite data element request (276)
+     *
+     * Requesting a new composite data element.
+     */
+    public const COMPOSITE_DATA_ELEMENT_REQUEST = '276';
+
+    /**
+     * Consignment despatch advice (748)
+     *
+     * Document/message by means of which the supplier informs the buyer about the
+     * despatch of goods ordered on consignment (goods to be delivered into stock
+     * with agreement on payment when goods are sold out of this stock).
+     */
+    public const CONSIGNMENT_DESPATCH_ADVICE = '748';
+
+    /**
+     * Consignment invoice (395)
+     *
+     * Commercial invoice that covers a transaction other than one involving a
+     * sale.
+     */
+    public const CONSIGNMENT_INVOICE = '395';
+
+    /**
+     * Consignment order (227)
+     *
+     * Order to deliver goods into stock with agreement on payment when goods are
+     * sold out of this stock.
+     */
+    public const CONSIGNMENT_ORDER = '227';
+
+    /**
+     * Consignment status report (77)
+     *
+     * Message covers information about the consignment status.
+     */
+    public const CONSIGNMENT_STATUS_REPORT = '77';
+
+    /**
+     * Consignment unpack report (88)
+     *
+     * A document code to indicate that the message being transmitted is a
+     * consignment unpack report only.
+     */
+    public const CONSIGNMENT_UNPACK_REPORT = '88';
+
+    /**
+     * Consolidated credit note - goods and services (262)
+     *
+     * Credit note for goods and services that covers multiple transactions
+     * involving more than one invoice.
+     */
+    public const CONSOLIDATED_CREDIT_NOTE_GOODS_AND_SERVICES = '262';
+
+    /**
+     * Consolidated invoice (385)
+     *
+     * Commercial invoice that covers multiple transactions involving more than
+     * one vendor.
+     */
+    public const CONSOLIDATED_INVOICE = '385';
+
+    /**
+     * Consular invoice (870)
+     *
+     * Document/message to be prepared by an exporter in his country and presented
+     * to a diplomatic representation of the importing country for endorsement and
+     * subsequently to be presented by the importer in connection with the import
+     * of the goods described therein.
+     */
+    public const CONSULAR_INVOICE = '870';
+
+    /**
+     * Container discharge list (25)
+     *
+     * Message/document itemising containers to be discharged from vessel.
+     */
+    public const CONTAINER_DISCHARGE_LIST = '25';
+
+    /**
+     * Container list (235)
+     *
+     * Document or message issued by party identifying the containers for which
+     * they are responsible.
+     */
+    public const CONTAINER_LIST = '235';
+
+    /**
+     * Container manifest (unit packing list) (788)
+     *
+     * Document/message specifying the contents of particular freight containers
+     * or other transport units, prepared by the party responsible for their
+     * loading into the container or unit.
+     */
+    public const CONTAINER_MANIFEST_UNIT_PACKING_LIST = '788';
+
+    /**
+     * Container off-hire notice (169)
+     *
+     * Notice to return leased containers.
+     */
+    public const CONTAINER_OFFHIRE_NOTICE = '169';
+
+    /**
+     * Container stripping order (183)
+     *
+     * Order to unload goods from a container.
+     */
+    public const CONTAINER_STRIPPING_ORDER = '183';
+
+    /**
+     * Container stuffing order (184)
+     *
+     * Order to stuff specified goods or consignments in a container.
+     */
+    public const CONTAINER_STUFFING_ORDER = '184';
+
+    /**
+     * Container transfer note (976)
+     *
+     * Document for the carriage of containers. Syn: transfer note.
+     */
+    public const CONTAINER_TRANSFER_NOTE = '976';
+
+    /**
+     * Contract (315)
+     *
+     * (1296) Document/message evidencing an agreement between the seller and the
+     * buyer for the supply of goods or services; its effects are equivalent to
+     * those of an order followed by an acknowledgement of order.
+     */
+    public const CONTRACT = '315';
+
+    /**
+     * Contract bill of quantities - BOQ (207)
+     *
+     * Document/message providing a formal specification identifying quantities
+     * and prices that are the basis of a contract for a construction project. BOQ
+     * means: Bill of quantity.
+     */
+    public const CONTRACT_BILL_OF_QUANTITIES_BOQ = '207';
+
+    /**
+     * Contract clauses (776)
+     *
+     * Document specifying the clauses applying to a contract.
+     */
+    public const CONTRACT_CLAUSES = '776';
+
+    /**
+     * Contract Funds Status Report (CFSR) (161)
+     *
+     * A report to provide the status of funds applicable to the contract.
+     */
+    public const CONTRACT_FUNDS_STATUS_REPORT_CFSR = '161';
+
+    /**
+     * Contract price and delivery quote (365)
+     *
+     * Document/message confirming contractual price conditions and contractual
+     * delivery conditions under which goods are offered.
+     */
+    public const CONTRACT_PRICE_AND_DELIVERY_QUOTE = '365';
+
+    /**
+     * Contract price quote (364)
+     *
+     * Document/message confirming contractual price conditions under which goods
+     * are offered.
+     */
+    public const CONTRACT_PRICE_QUOTE = '364';
+
+    /**
+     * Contract security classification specification (166)
+     *
+     * A document that indicates the specification contains the security and
+     * classification requirements for a contract.
+     */
+    public const CONTRACT_SECURITY_CLASSIFICATION_SPECIFICATION = '166';
+
+    /**
+     * Control document T5 (823)
+     *
+     * Control document (export declaration) used particularly in case of
+     * re-sending without use with only VAT collection, refusal, unconformity with
+     * contract etc.
+     */
+    public const CONTROL_DOCUMENT_T = '823';
+
+    /**
+     * Convention on International Trade in Endangered Species of Wild Fauna and
+     * Flora (CITES) Certificate (626)
+     *
+     * A certificate used in the trade of endangered species in accordance with
+     * the CITES convention.
+     */
+    public const CONVENTION_ON_INTERNATIONAL_TRADE_IN_ENDANGERED_SPECIES_OF_WILD_FAUNA_AND_FLORA_CITES_CERTIFICATE = '626';
+
+    /**
+     * Conveyance declaration (874)
+     *
+     * Declaration of the conveyance to a public authority.
+     */
+    public const CONVEYANCE_DECLARATION = '874';
+
+    /**
+     * Conveyance declaration (arrival) (185)
+     *
+     * Declaration to the public authority upon arrival of the conveyance.
+     */
+    public const CONVEYANCE_DECLARATION_ARRIVAL = '185';
+
+    /**
+     * Conveyance declaration (combined) (187)
+     *
+     * Combined declaration of arrival and departure to the public authority.
+     */
+    public const CONVEYANCE_DECLARATION_COMBINED = '187';
+
+    /**
+     * Conveyance declaration (departure) (186)
+     *
+     * Declaration to the public authority upon departure of the conveyance.
+     */
+    public const CONVEYANCE_DECLARATION_DEPARTURE = '186';
+
+    /**
+     * Copy accounting voucher (534)
+     *
+     * To indicate that the document/message justifying an accounting entry is a
+     * copy.
+     */
+    public const COPY_ACCOUNTING_VOUCHER = '534';
+
+    /**
+     * Corporate superannuation contributions advice (26)
+     *
+     * Document/message providing contributions advice used for corporate
+     * superannuation schemes.
+     */
+    public const CORPORATE_SUPERANNUATION_CONTRIBUTIONS_ADVICE = '26';
+
+    /**
+     * Corporate superannuation member maintenance message (28)
+     *
+     * Member maintenance message used for corporate superannuation schemes.
+     */
+    public const CORPORATE_SUPERANNUATION_MEMBER_MAINTENANCE_MESSAGE = '28';
+
+    /**
+     * Corrected invoice (384)
+     *
+     * Commercial invoice that includes revised information differing from an
+     * earlier submission of the same invoice.
+     */
+    public const CORRECTED_INVOICE = '384';
+
+    /**
+     * Cost data summary (158)
+     *
+     * A document indicating a summary of cost data.
+     */
+    public const COST_DATA_SUMMARY = '158';
+
+    /**
+     * Cost performance report (304)
+     *
+     * A report to convey cost performance data for a project or contract.
+     */
+    public const COST_PERFORMANCE_REPORT = '304';
+
+    /**
+     * Cost Performance Report (CPR) format 5 (180)
+     *
+     * A report identifying the cost performance on a contract that summarizes
+     * cost or schedule variances (format 5 - explanations and problem analysis).
+     */
+    public const COST_PERFORMANCE_REPORT_CPR_FORMAT = '180';
+
+    /**
+     * Cost Schedule Status Report (CSSR) (176)
+     *
+     * A report providing the status of the cost and schedule applicable to a
+     * contract.
+     */
+    public const COST_SCHEDULE_STATUS_REPORT_CSSR = '176';
+
+    /**
+     * Court judgment (854)
+     *
+     * Document specifying a judgment of a court.
+     */
+    public const COURT_JUDGMENT = '854';
+
+    /**
+     * Cover note (580)
+     *
+     * Document/message issued by an insurer (insurance broker, agent, etc.) to
+     * notify the insured that his insurance have been carried out.
+     */
+    public const COVER_NOTE = '580';
+
+    /**
+     * Coverage confirmation note (773)
+     *
+     * Document confirming that insurance coverage is granted.
+     */
+    public const COVERAGE_CONFIRMATION_NOTE = '773';
+
+    /**
+     * Credit advice (454)
+     *
+     * Document/message sent by an account servicing institution to one of its
+     * account owners, to inform the account owner of an entry which has been or
+     * will be credited to its account for a specified amount on the date
+     * indicated.
+     */
+    public const CREDIT_ADVICE = '454';
+
+    /**
+     * Credit cover (65)
+     *
+     * Document/message issued either by a factor to give a credit cover on a
+     * buyer, or by a seller to request a factor's credit cover.
+     */
+    public const CREDIT_COVER = '65';
+
+    /**
+     * Credit note (381)
+     *
+     * (1113) Document/message for providing credit information to the relevant
+     * party.
+     */
+    public const CREDIT_NOTE = '381';
+
+    /**
+     * Credit note for price variation (296)
+     *
+     * A credit note which is issued against a price variation invoice.
+     */
+    public const CREDIT_NOTE_FOR_PRICE_VARIATION = '296';
+
+    /**
+     * Credit note related to financial adjustments (83)
+     *
+     * Document message for providing credit information related to financial
+     * adjustments to the relevant party, e.g., bonuses.
+     */
+    public const CREDIT_NOTE_RELATED_TO_FINANCIAL_ADJUSTMENTS = '83';
+
+    /**
+     * Credit note related to goods or services (81)
+     *
+     * Document message used to provide credit information related to a
+     * transaction for goods or services to the relevant party.
+     */
+    public const CREDIT_NOTE_RELATED_TO_GOODS_OR_SERVICES = '81';
+
+    /**
+     * Crew list declaration (250)
+     *
+     * Declaration regarding crew members aboard the conveyance.
+     */
+    public const CREW_LIST_DECLARATION = '250';
+
+    /**
+     * Crew's effects declaration (744)
+     *
+     * Declaration to Customs regarding the personal effects of crew members
+     * aboard the conveyance; equivalent to IMO FAL 4.
+     */
+    public const CREWS_EFFECTS_DECLARATION = '744';
+
+    /**
+     * Cross docking despatch advice (398)
+     *
+     * Document by means of which the supplier or consignor informs the buyer,
+     * consignee or the distribution centre about the despatch of goods for cross
+     * docking.
+     */
+    public const CROSS_DOCKING_DESPATCH_ADVICE = '398';
+
+    /**
+     * Cross docking services order (237)
+     *
+     * A document or message to order cross docking services.
+     */
+    public const CROSS_DOCKING_SERVICES_ORDER = '237';
+
+    /**
+     * Current account (66)
+     *
+     * Document/message issued by a factor to indicate the money movements of a
+     * seller's or another factor's account with him.
+     */
+    public const CURRENT_ACCOUNT = '66';
+
+    /**
+     * Customer payment order(s) (248)
+     *
+     * The message contains customer payment order(s).
+     */
+    public const CUSTOMER_PAYMENT_ORDERS = '248';
+
+    /**
+     * Customs clearance notice (132)
+     *
+     * Notification of customs clearance of cargo or items of transport equipment.
+     */
+    public const CUSTOMS_CLEARANCE_NOTICE = '132';
+
+    /**
+     * Customs crew and conveyance (336)
+     *
+     * Document/message contains information regarding the crew list and
+     * conveyance.
+     */
+    public const CUSTOMS_CREW_AND_CONVEYANCE = '336';
+
+    /**
+     * Customs declaration (post parcels) (936)
+     *
+     * Document/message which, according to Article 106 of the "Agreement
+     * concerning Postal Parcels" under the UPU Convention, must accompany post
+     * parcels and in which the contents of such parcels are specified.
+     */
+    public const CUSTOMS_DECLARATION_POST_PARCELS = '936';
+
+    /**
+     * Customs declaration for cargo examination (333)
+     *
+     * Declaration provided to customs for cargo examination.
+     */
+    public const CUSTOMS_DECLARATION_FOR_CARGO_EXAMINATION = '333';
+
+    /**
+     * Customs declaration for cargo examination, alternate (334)
+     *
+     * Alternate declaration provided to customs for cargo examination.
+     */
+    public const CUSTOMS_DECLARATION_FOR_CARGO_EXAMINATION_ALTERNATE = '334';
+
+    /**
+     * Customs declaration for TIR Carnet goods (587)
+     *
+     * A Customs declaration in which goods move under cover of TIR Carnets.
+     */
+    public const CUSTOMS_DECLARATION_FOR_TIR_CARNET_GOODS = '587';
+
+    /**
+     * Customs declaration with commercial and item detail (914)
+     *
+     * CUSDEC transmission that includes data from both the commercial detail and
+     * item detail sections of the message.
+     */
+    public const CUSTOMS_DECLARATION_WITH_COMMERCIAL_AND_ITEM_DETAIL = '914';
+
+    /**
+     * Customs declaration without commercial detail (913)
+     *
+     * CUSDEC transmission that does not include data from the commercial detail
+     * section of the message.
+     */
+    public const CUSTOMS_DECLARATION_WITHOUT_COMMERCIAL_DETAIL = '913';
+
+    /**
+     * Customs declaration without item detail (915)
+     *
+     * CUSDEC transmission that does not include data from the item detail section
+     * of the message.
+     */
+    public const CUSTOMS_DECLARATION_WITHOUT_ITEM_DETAIL = '915';
+
+    /**
+     * Customs delivery note (932)
+     *
+     * Document/message whereby a Customs authority releases goods under its
+     * control to be placed at the disposal of the party concerned. Synonym:
+     * Customs release note.
+     */
+    public const CUSTOMS_DELIVERY_NOTE = '932';
+
+    /**
+     * Customs documents expiration notice (133)
+     *
+     * Notice specifying expiration of Customs documents relating to cargo or
+     * items of transport equipment.
+     */
+    public const CUSTOMS_DOCUMENTS_EXPIRATION_NOTICE = '133';
+
+    /**
+     * Customs immediate release declaration (931)
+     *
+     * Document/message issued by an importer notifying Customs that goods have
+     * been removed from an importing means of transport to the importer's
+     * premises under a Customs-approved arrangement for immediate release, or
+     * requesting authorization to do so.
+     */
+    public const CUSTOMS_IMMEDIATE_RELEASE_DECLARATION = '931';
+
+    /**
+     * Customs invoice (935)
+     *
+     * Document/message required by the Customs in an importing country in which
+     * an exporter states the invoice or other price (e.g. selling price, price of
+     * identical goods), and specifies costs for freight, insurance and packing,
+     * etc., terms of delivery and payment, for the purpose of determining the
+     * Customs value in the importing country of goods consigned to that country.
+     */
+    public const CUSTOMS_INVOICE = '935';
+
+    /**
+     * Customs manifest (85)
+     *
+     * Message/document identifying a customs manifest. The document itemises a
+     * list of cargo prepared by shipping companies from bills of landing and
+     * presented to customs for formal report of cargo.
+     */
+    public const CUSTOMS_MANIFEST = '85';
+
+    /**
+     * Customs summary declaration with commercial detail, alternate (337)
+     *
+     * Alternate Customs declaration summary with commercial transaction details.
+     */
+    public const CUSTOMS_SUMMARY_DECLARATION_WITH_COMMERCIAL_DETAIL_ALTERNATE = '337';
+
+    /**
+     * Customs summary declaration without commercial detail, alternate (355)
+     *
+     * Alternate Customs declaration summary without any commercial transaction
+     * details.
+     */
+    public const CUSTOMS_SUMMARY_DECLARATION_WITHOUT_COMMERCIAL_DETAIL_ALTERNATE = '355';
+
+    /**
+     * Damage certification (49)
+     *
+     * Official certification that damages to the goods to be transported have
+     * been discovered.
+     */
+    public const DAMAGE_CERTIFICATION = '49';
+
+    /**
+     * Dangerous goods declaration (890)
+     *
+     * (1115) Document/message issued by a consignor in accordance with applicable
+     * conventions or regulations, describing hazardous goods or materials for
+     * transport purposes, and stating that the latter have been packed and
+     * labelled in accordance with the provisions of the relevant conventions or
+     * regulations.
+     */
+    public const DANGEROUS_GOODS_DECLARATION = '890';
+
+    /**
+     * Dangerous goods list (298)
+     *
+     * Listing of all details of dangerous goods carried.
+     */
+    public const DANGEROUS_GOODS_LIST = '298';
+
+    /**
+     * Dangerous Goods Notification for non-tanker vessel (523)
+     *
+     * Dangerous Goods Notification for a vessel carrying cargo other than bulk
+     * liquid cargo.
+     */
+    public const DANGEROUS_GOODS_NOTIFICATION_FOR_NONTANKER_VESSEL = '523';
+
+    /**
+     * Dangerous Goods Notification for Tanker vessel (522)
+     *
+     * Dangerous Goods Notification for a vessel carrying liquid cargo in bulk.
+     */
+    public const DANGEROUS_GOODS_NOTIFICATION_FOR_TANKER_VESSEL = '522';
+
+    /**
+     * Data Plot Sheet (415)
+     *
+     * Document/Message providing technical description and information of the
+     * crop production.
+     */
+    public const DATA_PLOT_SHEET = '415';
+
+    /**
+     * Data protection regulations statement (868)
+     *
+     * Document specifying the terms of data protection regulations.
+     */
+    public const DATA_PROTECTION_REGULATIONS_STATEMENT = '868';
+
+    /**
+     * Debit advice (456)
+     *
+     * Advice on a debit.
+     */
+    public const DEBIT_ADVICE = '456';
+
+    /**
+     * Debit note (383)
+     *
+     * Document/message for providing debit information to the relevant party.
+     */
+    public const DEBIT_NOTE = '383';
+
+    /**
+     * Debit note related to financial adjustments (84)
+     *
+     * Document/message for providing debit information related to financial
+     * adjustments to the relevant party.
+     */
+    public const DEBIT_NOTE_RELATED_TO_FINANCIAL_ADJUSTMENTS = '84';
+
+    /**
+     * Debit note related to goods or services (80)
+     *
+     * Debit information related to a transaction for goods or services to the
+     * relevant party.
+     */
+    public const DEBIT_NOTE_RELATED_TO_GOODS_OR_SERVICES = '80';
+
+    /**
+     * Declaration for radioactive material (654)
+     *
+     * A declaration to be presented to the competent authority when radioactive
+     * material moves cross-border.
+     */
+    public const DECLARATION_FOR_RADIOACTIVE_MATERIAL = '654';
+
+    /**
+     * Declaration of final beneficiary (813)
+     *
+     * Declaration document to identify the final beneficiary of an asset.
+     */
+    public const DECLARATION_OF_FINAL_BENEFICIARY = '813';
+
+    /**
+     * Declaration of origin (862)
+     *
+     * Appropriate statement as to the origin of the goods, made in connection
+     * with their exportation by the manufacturer, producer, supplier, exporter or
+     * other competent person on the Commercial invoice or any other document
+     * relating to the goods (CCC).
+     */
+    public const DECLARATION_OF_ORIGIN = '862';
+
+    /**
+     * Declaration regarding the inward and outward movement of vessel (349)
+     *
+     * Document to declare inward and outward movement of a vessel.
+     */
+    public const DECLARATION_REGARDING_THE_INWARD_AND_OUTWARD_MOVEMENT_OF_VESSEL = '349';
+
+    /**
+     * Delcredere credit note (308)
+     *
+     * A credit note sent to the party paying on behalf of a number of buyers.
+     */
+    public const DELCREDERE_CREDIT_NOTE = '308';
+
+    /**
+     * Delcredere invoice (390)
+     *
+     * An invoice sent to the party paying for a number of buyers.
+     */
+    public const DELCREDERE_INVOICE = '390';
+
+    /**
+     * Delivery forecast (236)
+     *
+     * A message which enables the transmission of delivery or product forecasting
+     * requirements.
+     */
+    public const DELIVERY_FORECAST = '236';
+
+    /**
+     * Delivery instructions (240)
+     *
+     * (1174) Document/message giving instruction regarding the delivery of goods.
+     */
+    public const DELIVERY_INSTRUCTIONS = '240';
+
+    /**
+     * Delivery just-in-time (242)
+     *
+     * Usage of DELJIT-message.
+     */
+    public const DELIVERY_JUSTINTIME = '242';
+
+    /**
+     * Delivery note (270)
+     *
+     * Paper document attached to a consignment informing the receiving party
+     * about contents of this consignment.
+     */
+    public const DELIVERY_NOTE = '270';
+
+    /**
+     * Delivery notice (goods) (784)
+     *
+     * Notification in writing, sent by the carrier to the sender, to inform him
+     * at his request of the actual date of delivery of the goods.
+     */
+    public const DELIVERY_NOTICE_GOODS = '784';
+
+    /**
+     * Delivery notice (rail transport) (746)
+     *
+     * Document/message created by the consignor or by the departure station,
+     * joined to the transport or sent to the consignee, giving the possibility to
+     * the consignee or the arrival station to attest the delivery of the goods.
+     * The document must be returned to the consignor or to the departure station.
+     */
+    public const DELIVERY_NOTICE_RAIL_TRANSPORT = '746';
+
+    /**
+     * Delivery order (640)
+     *
+     * Document/message issued by a party entitled to authorize the release of
+     * goods specified therein to a named consignee, to be retained by the
+     * custodian of the goods.
+     */
+    public const DELIVERY_ORDER = '640';
+
+    /**
+     * Delivery point list. (440)
+     *
+     * A list of delivery point addresses.
+     */
+    public const DELIVERY_POINT_LIST = '440';
+
+    /**
+     * Delivery quote (362)
+     *
+     * Document/message confirming delivery conditions under which goods are
+     * offered.
+     */
+    public const DELIVERY_QUOTE = '362';
+
+    /**
+     * Delivery release (245)
+     *
+     * Document/message issued by a buyer releasing the despatch of goods after
+     * receipt of the Ready for despatch advice from the seller.
+     */
+    public const DELIVERY_RELEASE = '245';
+
+    /**
+     * Delivery schedule (241)
+     *
+     * Usage of DELFOR-message.
+     */
+    public const DELIVERY_SCHEDULE = '241';
+
+    /**
+     * Delivery schedule response (291)
+     *
+     * A message providing a response to a previously transmitted delivery
+     * schedule.
+     */
+    public const DELIVERY_SCHEDULE_RESPONSE = '291';
+
+    /**
+     * Delivery verification certificate (901)
+     *
+     * Document/message whereby an official authority (Customs or governmental)
+     * certifies that goods have been delivered.
+     */
+    public const DELIVERY_VERIFICATION_CERTIFICATE = '901';
+
+    /**
+     * Derat document (796)
+     *
+     * Document certifying that a ship is free of rats, valid to a specified date.
+     */
+    public const DERAT_DOCUMENT = '796';
+
+    /**
+     * Deratting exemption certificate (488)
+     *
+     * Document certifying that the object was free of rats when inspected and
+     * that it is exempt from a deratting statement.
+     */
+    public const DERATTING_EXEMPTION_CERTIFICATE = '488';
+
+    /**
+     * Despatch advice (351)
+     *
+     * Document/message by means of which the seller or consignor informs the
+     * consignee about the despatch of goods.
+     */
+    public const DESPATCH_ADVICE = '351';
+
+    /**
+     * Despatch note (post parcels) (750)
+     *
+     * Document/message which, according to Article 106 of the "Agreement
+     * concerning Postal Parcels" under the UPU convention, is to accompany post
+     * parcels.
+     */
+    public const DESPATCH_NOTE_POST_PARCELS = '750';
+
+    /**
+     * Despatch note model T2 (822)
+     *
+     * Ascertainment that the declared goods were originally produced in an
+     * European Union (EU) country.
+     */
+    public const DESPATCH_NOTE_MODEL_T = '822';
+
+    /**
+     * Despatch note model T2L (825)
+     *
+     * Ascertainment that the declared goods were originally produced in an
+     * European Union (EU) country. May only be used for goods that are loaded on
+     * one single means of transport in one single departure point for one single
+     * delivery point.
+     */
+    public const DESPATCH_NOTE_MODEL_TL = '825';
+
+    /**
+     * Despatch order (350)
+     *
+     * Document/message issued by a supplier initiating the despatch of goods to a
+     * buyer (consignee).
+     */
+    public const DESPATCH_ORDER = '350';
+
+    /**
+     * Direct debit authorisation (838)
+     *
+     * Document giving the addressee the right to debit from an account of the
+     * authorizing party.
+     */
+    public const DIRECT_DEBIT_AUTHORISATION = '838';
+
+    /**
+     * Direct delivery (transport) (494)
+     *
+     * Document/message ordering the direct delivery of goods/consignment from one
+     * means of transport into another means of transport in one movement.
+     */
+    public const DIRECT_DELIVERY_TRANSPORT = '494';
+
+    /**
+     * Direct payment valuation (202)
+     *
+     * Document/message addressed, for instance, by a general contractor to the
+     * owner, in order that a direct payment be made to a subcontractor.
+     */
+    public const DIRECT_PAYMENT_VALUATION = '202';
+
+    /**
+     * Direct payment valuation request (201)
+     *
+     * Request to establish a direct payment valuation.
+     */
+    public const DIRECT_PAYMENT_VALUATION_REQUEST = '201';
+
+    /**
+     * Document for establishing the Customs Status of goods for San Marino
+     * (T2LSM) (586)
+     *
+     * Form establishing the Community status of goods ("T2L" under European
+     * Legislation) in the context of trade between the EU and San Marino.
+     * ("T2LSM" under EU Legislation).
+     */
+    public const DOCUMENT_FOR_ESTABLISHING_THE_CUSTOMS_STATUS_OF_GOODS_FOR_SAN_MARINO_TLSM = '586';
+
+    /**
+     * Document response (Customs) (962)
+     *
+     * Document response message to permit the transfer of data from Customs to
+     * the transmitter of the previous message.
+     */
+    public const DOCUMENT_RESPONSE_CUSTOMS = '962';
+
+    /**
+     * Documentary credit (465)
+     *
+     * Document/message in which a bank states that it has issued a documentary
+     * credit under which the beneficiary is to obtain payment, acceptance or
+     * negotiation on compliance with certain terms and conditions and against
+     * presentation of stipulated documents and such drafts as may be specified.
+     * The credit may or may not be confirmed by another bank.
+     */
+    public const DOCUMENTARY_CREDIT = '465';
+
+    /**
+     * Documentary credit acceptance advice (427)
+     *
+     * Document/message whereby a bank advises acceptance under a documentary
+     * credit.
+     */
+    public const DOCUMENTARY_CREDIT_ACCEPTANCE_ADVICE = '427';
+
+    /**
+     * Documentary credit amendment (469)
+     *
+     * Document/message whereby a bank notifies a beneficiary of the details of an
+     * amendment to the terms and conditions of a documentary credit.
+     */
+    public const DOCUMENTARY_CREDIT_AMENDMENT = '469';
+
+    /**
+     * Documentary credit amendment information (197)
+     *
+     * Documentary credit amendment information.
+     */
+    public const DOCUMENTARY_CREDIT_AMENDMENT_INFORMATION = '197';
+
+    /**
+     * Documentary credit amendment notification (468)
+     *
+     * Document/message whereby a bank advises that the terms and conditions of a
+     * documentary credit have been amended.
+     */
+    public const DOCUMENTARY_CREDIT_AMENDMENT_NOTIFICATION = '468';
+
+    /**
+     * Documentary credit application (460)
+     *
+     * Document/message whereby a bank is requested to issue a documentary credit
+     * on the conditions specified therein.
+     */
+    public const DOCUMENTARY_CREDIT_APPLICATION = '460';
+
+    /**
+     * Documentary credit collection instruction (195)
+     *
+     * Instruction for the collection of the documentary credit.
+     */
+    public const DOCUMENTARY_CREDIT_COLLECTION_INSTRUCTION = '195';
+
+    /**
+     * Documentary credit issuance information (200)
+     *
+     * Provides information on documentary credit issuance.
+     */
+    public const DOCUMENTARY_CREDIT_ISSUANCE_INFORMATION = '200';
+
+    /**
+     * Documentary credit letter of indemnity (431)
+     *
+     * Document/message in which a beneficiary of a documentary credit accepts
+     * responsibility for non-compliance with the terms and conditions of the
+     * credit, and undertakes to refund the money received under the credit, with
+     * interest and charges accrued.
+     */
+    public const DOCUMENTARY_CREDIT_LETTER_OF_INDEMNITY = '431';
+
+    /**
+     * Documentary credit negotiation advice (428)
+     *
+     * Document/message whereby a bank advises negotiation under a documentary
+     * credit.
+     */
+    public const DOCUMENTARY_CREDIT_NEGOTIATION_ADVICE = '428';
+
+    /**
+     * Documentary credit notification (466)
+     *
+     * Document/message issued by an advising bank in order to transmit a
+     * documentary credit to a beneficiary, or to another advising bank.
+     */
+    public const DOCUMENTARY_CREDIT_NOTIFICATION = '466';
+
+    /**
+     * Documentary credit payment advice (426)
+     *
+     * Document/message whereby a bank advises payment under a documentary credit.
+     */
+    public const DOCUMENTARY_CREDIT_PAYMENT_ADVICE = '426';
+
+    /**
+     * Documentary credit transfer advice (467)
+     *
+     * Document/message whereby a bank advises that (part of) a documentary credit
+     * is being or has been transferred in favour of a second beneficiary.
+     */
+    public const DOCUMENTARY_CREDIT_TRANSFER_ADVICE = '467';
+
+    /**
+     * Documents presentation form (448)
+     *
+     * Document/message whereby a draft or similar instrument and/or commercial
+     * documents are presented to a bank for acceptance, discounting, negotiation,
+     * payment or collection, whether or not against a documentary credit.
+     */
+    public const DOCUMENTS_PRESENTATION_FORM = '448';
+
+    /**
+     * Draft bill of quantity (194)
+     *
+     * Document/message providing a draft bill of quantity, issued in an unpriced
+     * form.
+     */
+    public const DRAFT_BILL_OF_QUANTITY = '194';
+
+    /**
+     * Drawing (174)
+     *
+     * The document or message is a drawing.
+     */
+    public const DRAWING = '174';
+
+    /**
+     * Driving licence (international) (41)
+     *
+     * An official document giving a native of one country permission to drive a
+     * vehicle in certain other countries.
+     */
+    public const DRIVING_LICENCE_INTERNATIONAL = '41';
+
+    /**
+     * Driving licence (national) (40)
+     *
+     * An official document giving permission to drive a vehicle in a given
+     * country.
+     */
+    public const DRIVING_LICENCE_NATIONAL = '40';
+
+    /**
+     * Drug shelf life study report (647)
+     *
+     * A document containing results from the study which determines the shelf
+     * life, namely the time period of storage at a specified condition within
+     * which a drug substance or drug product still meets its established
+     * specifications; its identity, strength, quality and purity.
+     */
+    public const DRUG_SHELF_LIFE_STUDY_REPORT = '647';
+
+    /**
+     * Duty suspended goods (974)
+     *
+     * Document giving details for the carriage of excisable goods on a
+     * duty-suspended basis.
+     */
+    public const DUTY_SUSPENDED_GOODS = '974';
+
+    /**
+     * EC carnet (953)
+     *
+     * EC customs transit document issued by EC customs authorities for transit
+     * and/or temporary user of goods within the EC.
+     */
+    public const EC_CARNET = '953';
+
+    /**
+     * EDI associated object administration message (344)
+     *
+     * A message giving additional information about the exchange of an EDI
+     * associated object.
+     */
+    public const EDI_ASSOCIATED_OBJECT_ADMINISTRATION_MESSAGE = '344';
+
+    /**
+     * Embargo permit (941)
+     *
+     * Document/message giving the permission to export specified goods.
+     */
+    public const EMBARGO_PERMIT = '941';
+
+    /**
+     * Empty container bill (708)
+     *
+     * Bill of lading indicating an empty container.
+     */
+    public const EMPTY_CONTAINER_BILL = '708';
+
+    /**
+     * Empty container disposition order (144)
+     *
+     * Order to make available empty containers.
+     */
+    public const EMPTY_CONTAINER_DISPOSITION_ORDER = '144';
+
+    /**
+     * End use authorization (990)
+     *
+     * Document issued by Customs granting the end-use Customs procedure.
+     */
+    public const END_USE_AUTHORIZATION = '990';
+
+    /**
+     * Enquiry (210)
+     *
+     * Document/message issued by a party interested in the purchase of goods
+     * specified therein and indicating particular, desirable conditions regarding
+     * delivery terms, etc., addressed to a prospective supplier with a view to
+     * obtaining an offer.
+     */
+    public const ENQUIRY = '210';
+
+    /**
+     * Error response (Customs) (963)
+     *
+     * Error response message to permit the transfer of data from Customs to the
+     * transmitter of the previous message.
+     */
+    public const ERROR_RESPONSE_CUSTOMS = '963';
+
+    /**
+     * Escort official recognition (723)
+     *
+     * Document/message which gives right to the owner to exert all functions
+     * normally transferred to a guard in a train by which an escorted consignment
+     * is transported.
+     */
+    public const ESCORT_OFFICIAL_RECOGNITION = '723';
+
+    /**
+     * Estimated priced bill of quantity (193)
+     *
+     * An estimate based upon a detailed, quantity based specification (bill of
+     * quantity).
+     */
+    public const ESTIMATED_PRICED_BILL_OF_QUANTITY = '193';
+
+    /**
+     * EU Customs declaration for External Community Transit (T1) (578)
+     *
+     * Customs declaration for goods under the external Community/common transit
+     * procedure. This applies to "non-Community goods" ("T1" under EU legislation
+     * and EC-EFTA "Transit Convention").
+     */
+    public const EU_CUSTOMS_DECLARATION_FOR_EXTERNAL_COMMUNITY_TRANSIT_T = '578';
+
+    /**
+     * EU Customs declaration for internal Community Transit (T2) (579)
+     *
+     * Customs declaration for goods under the internal Community/common transit
+     * procedure. This applies to "Community goods" ("T2" under EU legislation and
+     * EC-EFTA "Transit Convention").
+     */
+    public const EU_CUSTOMS_DECLARATION_FOR_INTERNAL_COMMUNITY_TRANSIT_T = '579';
+
+    /**
+     * EU Customs declaration for internal transit to San Marino (T2SM) (582)
+     *
+     * Customs declaration for goods under the internal Community transit
+     * procedure between the Community and San Marino. ("T2SM" under EU
+     * Legislation).
+     */
+    public const EU_CUSTOMS_DECLARATION_FOR_INTERNAL_TRANSIT_TO_SAN_MARINO_TSM = '582';
+
+    /**
+     * EU Customs declaration for mixed consignments (T) (583)
+     *
+     * Customs declaration for goods under the Community/common transit procedure
+     * for mixed consignments (i.e. consignments that comprise goods of different
+     * statuses, like "T1" and "T2") ("T" under EU Legislation).
+     */
+    public const EU_CUSTOMS_DECLARATION_FOR_MIXED_CONSIGNMENTS_T = '583';
+
+    /**
+     * EU Customs declaration for non-fiscal area internal Community Transit (T2F) (581)
+     *
+     * Declaration for goods under the internal Community transit procedure in the
+     * context of trade between the "VAT" territory of EU Member States and EU
+     * territories where the VAT rules do not apply, such as Canary islands, some
+     * French overseas territories, the Channel islands and the Aaland islands,
+     * and between those territories. ("T2F" under EU Legislation).
+     */
+    public const EU_CUSTOMS_DECLARATION_FOR_NONFISCAL_AREA_INTERNAL_COMMUNITY_TRANSIT_TF = '581';
+
+    /**
+     * EU Document for establishing the Community status of goods (T2L) (584)
+     *
+     * Form establishing the Community status of goods ("T2L" under EU
+     * Legislation).
+     */
+    public const EU_DOCUMENT_FOR_ESTABLISHING_THE_COMMUNITY_STATUS_OF_GOODS_TL = '584';
+
+    /**
+     * EU Document for establishing the Community status of goods for certain
+     * fiscal purposes (T2LF) (585)
+     *
+     * Form establishing the Community status of goods in the context of trade
+     * between the "VAT" territory of EU Member States and EU territories where
+     * the VAT rules do not apply, such as Canary islands, some French overseas
+     * territories, the Channel islands and the Aaland islands, and between those
+     * territories ("T2LF" under EU Legislation).
+     */
+    public const EU_DOCUMENT_FOR_ESTABLISHING_THE_COMMUNITY_STATUS_OF_GOODS_FOR_CERTAIN_FISCAL_PURPOSES_TLF = '585';
+
+    /**
+     * EUR 1 certificate of origin (954)
+     *
+     * Customs certificate used in preferential goods interchanges between EC
+     * countries and EC external countries.
+     */
+    public const EUR__CERTIFICATE_OF_ORIGIN = '954';
+
+    /**
+     * European Single Procurement Document (759)
+     *
+     * A document/message containing a self-declaration by the supplier, providing
+     * preliminary evidence during the tendering phase.
+     */
+    public const EUROPEAN_SINGLE_PROCUREMENT_DOCUMENT = '759';
+
+    /**
+     * European Single Procurement Document request (756)
+     *
+     * A document/message requesting a self-declaration from the supplier,
+     * providing preliminary evidence during the tendering phase.
+     */
+    public const EUROPEAN_SINGLE_PROCUREMENT_DOCUMENT_REQUEST = '756';
+
+    /**
+     * Exceptional order (400)
+     *
+     * An order which falls outside the framework of an agreement.
+     */
+    public const EXCEPTIONAL_ORDER = '400';
+
+    /**
+     * Exchange control declaration (import) (927)
+     *
+     * Document/message completed by an importer/buyer as a means for the
+     * competent body to control that a trade transaction for which foreign
+     * exchange has been allocated has been executed and that money has been
+     * transferred in accordance with the conditions of payment and the exchange
+     * control regulations in force.
+     */
+    public const EXCHANGE_CONTROL_DECLARATION_IMPORT = '927';
+
+    /**
+     * Exchange control declaration, export (812)
+     *
+     * Document/message completed by an exporter/seller as a means whereby the
+     * competent body may control that the amount of foreign exchange accrued from
+     * a trade transaction is repatriated in accordance with the conditions of
+     * payment and exchange control regulations in force.
+     */
+    public const EXCHANGE_CONTROL_DECLARATION_EXPORT = '812';
+
+    /**
+     * Excise certificate (100)
+     *
+     * Certificate asserting that the goods have been submitted to the excise
+     * authorities before departure from the exporting country or before delivery
+     * in case of import traffic.
+     */
+    public const EXCISE_CERTIFICATE = '100';
+
+    /**
+     * Exclusive brokerage mandate (869)
+     *
+     * Document expressing the mandate of a client for a service only by the
+     * mandated broker.
+     */
+    public const EXCLUSIVE_BROKERAGE_MANDATE = '869';
+
+    /**
+     * Export licence (811)
+     *
+     * Permit issued by a government authority permitting exportation of a
+     * specified commodity subject to specified conditions as quantity, country of
+     * destination, etc. Synonym: Embargo permit.
+     */
+    public const EXPORT_LICENCE = '811';
+
+    /**
+     * Export licence, application for (810)
+     *
+     * Application for a permit issued by a government authority permitting
+     * exportation of a specified commodity subject to specified conditions as
+     * quantity, country of destination, etc.
+     */
+    public const EXPORT_LICENCE_APPLICATION_FOR = '810';
+
+    /**
+     * Export price certificate (645)
+     *
+     * A certification executed by the competent authority from country of
+     * exportation stating the export price of the goods.
+     */
+    public const EXPORT_PRICE_CERTIFICATE = '645';
+
+    /**
+     * Extended credit advice (455)
+     *
+     * Document/message sent by an account servicing institution to one of its
+     * account owners, to inform the account owner of an entry that has been or
+     * will be credited to its account for a specified amount on the date
+     * indicated. It provides extended commercial information concerning the
+     * relevant remittance advice.
+     */
+    public const EXTENDED_CREDIT_ADVICE = '455';
+
+    /**
+     * Extended payment order (451)
+     *
+     * Document/message containing information needed to initiate the payment. It
+     * may cover the financial settlement for several commercial trade
+     * transactions, which it is possible to specify in a special payments detail
+     * part. It is an instruction to the ordered bank to arrange for the payment
+     * of one specified amount to the beneficiary.
+     */
+    public const EXTENDED_PAYMENT_ORDER = '451';
+
+    /**
+     * Extra-Community trade statistical declaration (47)
+     *
+     * Document/message in which a declarant provides information about
+     * extra-Community trade of goods required by the body responsible for the
+     * collection of trade statistics. Trade by a country in the European Union
+     * with a country outside the European Union.
+     */
+    public const EXTRACOMMUNITY_TRADE_STATISTICAL_DECLARATION = '47';
+
+    /**
+     * Factored credit note (396)
+     *
+     * Credit note related to assigned invoice(s).
+     */
+    public const FACTORED_CREDIT_NOTE = '396';
+
+    /**
+     * Factored invoice (393)
+     *
+     * Invoice assigned to a third party for collection.
+     */
+    public const FACTORED_INVOICE = '393';
+
+    /**
+     * Farmyard manure analysis (417)
+     *
+     * Farmyard manure analysis document.
+     */
+    public const FARMYARD_MANURE_ANALYSIS = '417';
+
+    /**
+     * Federal label approval (11)
+     *
+     * A pre-approved document relating to federal label approval requirements.
+     */
+    public const FEDERAL_LABEL_APPROVAL = '11';
+
+    /**
+     * Final construction invoice (877)
+     *
+     * Invoice concluding all previous partial invoices and partial final
+     * construction invoices in the context of a specific construction project.
+     */
+    public const FINAL_CONSTRUCTION_INVOICE = '877';
+
+    /**
+     * Final payment request based on completion of work (218)
+     *
+     * The final payment request of a series of payment requests submitted upon
+     * completion of all the work.
+     */
+    public const FINAL_PAYMENT_REQUEST_BASED_ON_COMPLETION_OF_WORK = '218';
+
+    /**
+     * First sample test report (8)
+     *
+     * Document/message describes the test report of the first sample.
+     */
+    public const FIRST_SAMPLE_TEST_REPORT = '8';
+
+    /**
+     * Food grade certificate (637)
+     *
+     * A document that shows that the product (food additive, detergent,
+     * disinfectant and sanitizer) is suitable to be used in the food industry.
+     */
+    public const FOOD_GRADE_CERTIFICATE = '637';
+
+    /**
+     * Food packaging contact certificate (643)
+     *
+     * A document legalized from a competent authority that shows that the food
+     * packaging product is safe to come into contact with food.
+     */
+    public const FOOD_PACKAGING_CONTACT_CERTIFICATE = '643';
+
+    /**
+     * Foreign exchange permit (926)
+     *
+     * Document/message issued by the competent body authorizing an importer/buyer
+     * to transfer an amount of foreign exchange to an exporter/seller in payment
+     * for goods.
+     */
+    public const FOREIGN_EXCHANGE_PERMIT = '926';
+
+    /**
+     * Forwarder's advice to exporter (622)
+     *
+     * Document/message issued by a freight forwarder informing an exporter of the
+     * action taken in fulfillment of instructions received.
+     */
+    public const FORWARDERS_ADVICE_TO_EXPORTER = '622';
+
+    /**
+     * Forwarder's advice to import agent (621)
+     *
+     * Document/message issued by a freight forwarder in an exporting country
+     * advising his counterpart in an importing country about the forwarding of
+     * goods described therein.
+     */
+    public const FORWARDERS_ADVICE_TO_IMPORT_AGENT = '621';
+
+    /**
+     * Forwarder's bill of lading (716)
+     *
+     * Non-negotiable document issued by a freight forwarder evidencing a contract
+     * for the carriage of goods by sea and the taking over or loading of the
+     * goods by the freight forwarder, and by which the freight forwarder
+     * undertakes to deliver the goods to the consignee named in the document.
+     */
+    public const FORWARDERS_BILL_OF_LADING = '716';
+
+    /**
+     * Forwarder's certificate of receipt (624)
+     *
+     * Non-negotiable document issued by a forwarder to certify that he has
+     * assumed control of a specified consignment, with irrevocable instructions
+     * to send it to the consignee indicated in the document or to hold it at his
+     * disposal. E.g. FIATA-FCR.
+     */
+    public const FORWARDERS_CERTIFICATE_OF_RECEIPT = '624';
+
+    /**
+     * Forwarder's certificate of transport (763)
+     *
+     * Negotiable document/message issued by a forwarder to certify that he has
+     * taken charge of a specified consignment for despatch and delivery in
+     * accordance with the consignor's instructions, as indicated in the document,
+     * and that he accepts responsibility for delivery of the goods to the holder
+     * of the document through the intermediary of a delivery agent of his choice.
+     * E.g. FIATA-FCT.
+     */
+    public const FORWARDERS_CERTIFICATE_OF_TRANSPORT = '763';
+
+    /**
+     * Forwarder's invoice (623)
+     *
+     * Invoice issued by a freight forwarder specifying services rendered and
+     * costs incurred and claiming payment therefore.
+     */
+    public const FORWARDERS_INVOICE = '623';
+
+    /**
+     * Forwarder's warehouse receipt (631)
+     *
+     * Document/message issued by a forwarder acting as Warehouse Keeper
+     * acknowledging receipt of goods placed in a warehouse, and stating or
+     * referring to the conditions which govern the warehousing and the release of
+     * goods. The document contains detailed provisions regarding the rights of
+     * holders-by-endorsement, transfer of ownership, etc. E.g. FIATA-FWR.
+     */
+    public const FORWARDERS_WAREHOUSE_RECEIPT = '631';
+
+    /**
+     * Forwarderâs credit note (532)
+     *
+     * Document/message for providing credit information to the relevant party.
+     */
+    public const FORWARDERS_CREDIT_NOTE = '532';
+
+    /**
+     * Forwarderâs invoice discrepancy report (553)
+     *
+     * Document/message reporting invoice discrepancies indentified by the
+     * forwarder.
+     */
+    public const FORWARDERS_INVOICE_DISCREPANCY_REPORT = '553';
+
+    /**
+     * Forwarding instructions (610)
+     *
+     * Document/message issued to a freight forwarder, giving instructions
+     * regarding the action to be taken by the forwarder for the forwarding of
+     * goods described therein.
+     */
+    public const FORWARDING_INSTRUCTIONS = '610';
+
+    /**
+     * Framework Agreement (539)
+     *
+     * An agreement between one or more contracting authorities and one or more
+     * economic operators, the purpose of which is to establish the terms
+     * governing contracts to be awarded during a given period, in particular with
+     * regard to price and, where appropriate, the quantity envisaged.
+     */
+    public const FRAMEWORK_AGREEMENT = '539';
+
+    /**
+     * Free pass (42)
+     *
+     * A document giving free access to a service.
+     */
+    public const FREE_PASS = '42';
+
+    /**
+     * Free Sale Certificate in the Country of Origin (627)
+     *
+     * A certificate confirming that a specified product is free for sale in the
+     * country of origin.
+     */
+    public const FREE_SALE_CERTIFICATE_IN_THE_COUNTRY_OF_ORIGIN = '627';
+
+    /**
+     * Freight invoice (780)
+     *
+     * Document/message issued by a transport operation specifying freight costs
+     * and charges incurred for a transport operation and stating conditions of
+     * payment.
+     */
+    public const FREIGHT_INVOICE = '780';
+
+    /**
+     * Freight manifest (786)
+     *
+     * Document/message containing the same information as a cargo manifest, and
+     * additional details on freight amounts, charges, etc.
+     */
+    public const FREIGHT_MANIFEST = '786';
+
+    /**
+     * Fumigation certificate (267)
+     *
+     * Certificate attesting that fumigation has been performed.
+     */
+    public const FUMIGATION_CERTIFICATE = '267';
+
+    /**
+     * Gate pass (655)
+     *
+     * Document/message authorizing goods specified therein to be brought out of a
+     * fenced-in port or terminal area.
+     */
+    public const GATE_PASS = '655';
+
+    /**
+     * General cargo summary manifest report (87)
+     *
+     * A document code to indicate that the message being transmitted is summary
+     * manifest information for general cargo.
+     */
+    public const GENERAL_CARGO_SUMMARY_MANIFEST_REPORT = '87';
+
+    /**
+     * General message (719)
+     *
+     * Document/message providing agreed textual information.
+     */
+    public const GENERAL_MESSAGE = '719';
+
+    /**
+     * General response (Customs) (961)
+     *
+     * General response message to permit the transfer of data from Customs to the
+     * transmitter of the previous message.
+     */
+    public const GENERAL_RESPONSE_CUSTOMS = '961';
+
+    /**
+     * General terms and conditions (774)
+     *
+     * Document specifying general terms and conditions.
+     */
+    public const GENERAL_TERMS_AND_CONDITIONS = '774';
+
+    /**
+     * Good Manufacturing Practice (GMP) Certificate (538)
+     *
+     * Certificate that guarantees quality manufacturing and processing of food
+     * products, medications, cosmetics, etc.
+     */
+    public const GOOD_MANUFACTURING_PRACTICE_GMP_CERTIFICATE = '538';
+
+    /**
+     * Goods control certificate (841)
+     *
+     * Document/message issued by a competent body evidencing the quality of the
+     * goods described therein, in accordance with national or international
+     * standards, or conforming to legislation in the importing country, or as
+     * specified in the contract.
+     */
+    public const GOODS_CONTROL_CERTIFICATE = '841';
+
+    /**
+     * Goods declaration for Customs transit (950)
+     *
+     * Document/message by which the sender declares goods for Customs transit
+     * according to Annex E.1 (concerning Customs transit) to the Kyoto convention
+     * (CCC).
+     */
+    public const GOODS_DECLARATION_FOR_CUSTOMS_TRANSIT = '950';
+
+    /**
+     * Goods declaration for exportation (830)
+     *
+     * Document/message by which goods are declared for export Customs clearance,
+     * conforming to the layout key set out at Appendix I to Annex C.1 concerning
+     * outright exportation to the Kyoto convention (CCC). Within a Customs union,
+     * "for despatch" may have the same meaning as "for exportation".
+     */
+    public const GOODS_DECLARATION_FOR_EXPORTATION = '830';
+
+    /**
+     * Goods declaration for home use (930)
+     *
+     * Document/message by which goods are declared for import Customs clearance
+     * according to Annex B.1 (concerning clearance for home use) to the Kyoto
+     * convention (CCC).
+     */
+    public const GOODS_DECLARATION_FOR_HOME_USE = '930';
+
+    /**
+     * Goods declaration for importation (929)
+     *
+     * Document/message by which goods are declared for import Customs clearance
+     * [sister entry of 830].
+     */
+    public const GOODS_DECLARATION_FOR_IMPORTATION = '929';
+
+    /**
+     * Goods receipt (632)
+     *
+     * Document/message to acknowledge the receipt of goods and in addition may
+     * indicate receiving conditions.
+     */
+    public const GOODS_RECEIPT = '632';
+
+    /**
+     * Goods receipt, carriage (702)
+     *
+     * Document/message issued by a carrier or a carrier's agent, acknowledging
+     * receipt for carriage of goods specified therein on conditions stated or
+     * referred to in the document, enabling the carrier to issue a transport
+     * document.
+     */
+    public const GOODS_RECEIPT_CARRIAGE = '702';
+
+    /**
+     * Government contract (991)
+     *
+     * Document/message describing a contract with a government authority.
+     */
+    public const GOVERNMENT_CONTRACT = '991';
+
+    /**
+     * Grant (151)
+     *
+     * A document indicating the granting of funds.
+     */
+    public const GRANT = '151';
+
+    /**
+     * Group insurance rules (778)
+     *
+     * Document stating the rules of a group insurance contract.
+     */
+    public const GROUP_INSURANCE_RULES = '778';
+
+    /**
+     * Group pension commitment information (816)
+     *
+     * Information document for the group pension commitment to an individual
+     * person.
+     */
+    public const GROUP_PENSION_COMMITMENT_INFORMATION = '816';
+
+    /**
+     * Guarantee of cost acceptance (826)
+     *
+     * Document certifying the guarantee of the document issuer that he will pay
+     * for costs of the addressee, e.g. the costs for repairing a vehicle.
+     */
+    public const GUARANTEE_OF_COST_ACCEPTANCE = '826';
+
+    /**
+     * Halal Slaughtering Certificate (589)
+     *
+     * A certificate verifying that meat has been produced from slaughter in
+     * accordance with Islamic laws and practices.
+     */
+    public const HALAL_SLAUGHTERING_CERTIFICATE = '589';
+
+    /**
+     * Handling order (650)
+     *
+     * Document/message issued by a cargo handling organization (port
+     * administration, terminal operator, etc.) for the removal or other handling
+     * of goods under their care.
+     */
+    public const HANDLING_ORDER = '650';
+
+    /**
+     * Health certificate (636)
+     *
+     * A document legalized from a competent authority that shows that the product
+     * has been tested microbiologically and is free from any pathogens and fit
+     * for human consumption and/or declares that the product is in compliance
+     * with sanitary and phytosanitary measures.
+     */
+    public const HEALTH_CERTIFICATE = '636';
+
+    /**
+     * Healthcare discharge report, final (309)
+     *
+     * Final discharge report by healthcare provider.
+     */
+    public const HEALTHCARE_DISCHARGE_REPORT_FINAL = '309';
+
+    /**
+     * Healthcare discharge report, preliminary (358)
+     *
+     * Preliminary discharge report by healthcare provider.
+     */
+    public const HEALTHCARE_DISCHARGE_REPORT_PRELIMINARY = '358';
+
+    /**
+     * Heat Treatment Certificate (625)
+     *
+     * A certificate verifying the heat treatment of the product is in conformance
+     * with international standards to ensure the productâs healthiness and/or
+     * shows the mode of heat treatment indicating the temperature and the amount
+     * of time the product or raw material used in the product was treated (such
+     * as milk).
+     */
+    public const HEAT_TREATMENT_CERTIFICATE = '625';
+
+    /**
+     * Hire invoice (387)
+     *
+     * Document/message for invoicing the hiring of human resources or renting
+     * goods or equipment.
+     */
+    public const HIRE_INVOICE = '387';
+
+    /**
+     * Hire order (232)
+     *
+     * Document/message for hiring human resources or renting goods or equipment.
+     */
+    public const HIRE_ORDER = '232';
+
+    /**
+     * Horsemeat sanitary certificate (92)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that horsemeat products comply with the requirements set
+     * by the importing country.
+     */
+    public const HORSEMEAT_SANITARY_CERTIFICATE = '92';
+
+    /**
+     * House bill of lading (714)
+     *
+     * The bill of lading issued not by the carrier but by the freight
+     * forwarder/consolidator known by the carrier.
+     */
+    public const HOUSE_BILL_OF_LADING = '714';
+
+    /**
+     * House waybill (703)
+     *
+     * The document made out by an agent/consolidator which evidences the contract
+     * between the shipper and the agent/consolidator for the arrangement of
+     * carriage of goods.
+     */
+    public const HOUSE_WAYBILL = '703';
+
+    /**
+     * Identification match (449)
+     *
+     * Message related to conducting a search for an identification match.
+     */
+    public const IDENTIFICATION_MATCH = '449';
+
+    /**
+     * Identity card (36)
+     *
+     * Official document to identify a person.
+     */
+    public const IDENTITY_CARD = '36';
+
+    /**
+     * Image (858)
+     *
+     * Document consisting of an image.
+     */
+    public const IMAGE = '858';
+
+    /**
+     * Impending arrival (96)
+     *
+     * Notification of impending arrival details for vessel.
+     */
+    public const IMPENDING_ARRIVAL = '96';
+
+    /**
+     * Implementation guideline (302)
+     *
+     * A document specifying the criterion and format for exchanging information
+     * in an electronic data interchange syntax.
+     */
+    public const IMPLEMENTATION_GUIDELINE = '302';
+
+    /**
+     * Import licence (911)
+     *
+     * Document/message issued by the competent body in accordance with import
+     * regulations in force, by which authorization is granted to a named party to
+     * import either a limited quantity of designated articles or an unlimited
+     * quantity of such articles during a limited period, under conditions
+     * specified in the document.
+     */
+    public const IMPORT_LICENCE = '911';
+
+    /**
+     * Import licence, application for (910)
+     *
+     * Document/message in which an interested party applies to the competent body
+     * for authorization to import either a limited quantity of articles subject
+     * to import restrictions, or an unlimited quantity of such articles during a
+     * limited period, and specifies the kind of articles, their origin and value,
+     * etc.
+     */
+    public const IMPORT_LICENCE_APPLICATION_FOR = '910';
+
+    /**
+     * Indefinite delivery definite quantity contract (153)
+     *
+     * A document indicating a contract calling for indefinite deliveries of
+     * definite quantities.
+     */
+    public const INDEFINITE_DELIVERY_DEFINITE_QUANTITY_CONTRACT = '153';
+
+    /**
+     * Indefinite delivery indefinite quantity contract (152)
+     *
+     * A document indicating a contract calling for the indefinite deliveries of
+     * indefinite quantities of goods.
+     */
+    public const INDEFINITE_DELIVERY_INDEFINITE_QUANTITY_CONTRACT = '152';
+
+    /**
+     * Industry superannuation contributions advice (27)
+     *
+     * Document/message providing contributions advice used for superannuation
+     * schemes which are industry wide.
+     */
+    public const INDUSTRY_SUPERANNUATION_CONTRIBUTIONS_ADVICE = '27';
+
+    /**
+     * Industry superannuation member maintenance message (29)
+     *
+     * Member maintenance message used for industry wide superannuation schemes.
+     */
+    public const INDUSTRY_SUPERANNUATION_MEMBER_MAINTENANCE_MESSAGE = '29';
+
+    /**
+     * Inedible sanitary certificate (95)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that inedible products comply with the requirements set
+     * by the importing country.
+     */
+    public const INEDIBLE_SANITARY_CERTIFICATE = '95';
+
+    /**
+     * Infrastructure condition (413)
+     *
+     * Information about components in an infrastructure.
+     */
+    public const INFRASTRUCTURE_CONDITION = '413';
+
+    /**
+     * Inland waterway bill of lading (711)
+     *
+     * Negotiable transport document made out to a named person, to order or to
+     * bearer, signed by the carrier and handed to the sender after receipt of the
+     * goods.
+     */
+    public const INLAND_WATERWAY_BILL_OF_LADING = '711';
+
+    /**
+     * Inquiry (251)
+     *
+     * This is a request for information.
+     */
+    public const INQUIRY = '251';
+
+    /**
+     * Inquiry mandate (871)
+     *
+     * Document expressing the mandate of a client for an inquiry service by the
+     * mandated provider.
+     */
+    public const INQUIRY_MANDATE = '871';
+
+    /**
+     * Inspection certificate (856)
+     *
+     * Document/message issued by a competent body evidencing that the goods
+     * described therein have been inspected in accordance with national or
+     * international standards, in conformity with legislation in the country in
+     * which the inspection is required, or as specified in the contract.
+     */
+    public const INSPECTION_CERTIFICATE = '856';
+
+    /**
+     * Inspection report (293)
+     *
+     * A message informing a party of the results of an inspection.
+     */
+    public const INSPECTION_REPORT = '293';
+
+    /**
+     * Inspection request (292)
+     *
+     * A message requesting a party to inspect items.
+     */
+    public const INSPECTION_REQUEST = '292';
+
+    /**
+     * Instruction for returns (733)
+     *
+     * A message by which a party informs another party whether and how goods
+     * shall be returned.
+     */
+    public const INSTRUCTION_FOR_RETURNS = '733';
+
+    /**
+     * Instruction to collect (297)
+     *
+     * A message instructing a party to collect goods.
+     */
+    public const INSTRUCTION_TO_COLLECT = '297';
+
+    /**
+     * Instructions for bank transfer (409)
+     *
+     * Document/message containing instructions from a customer to his bank to pay
+     * an amount in a specified currency to a nominated party in another country
+     * by a method either specified (e.g. teletransmission, air mail) or left to
+     * the discretion of the bank.
+     */
+    public const INSTRUCTIONS_FOR_BANK_TRANSFER = '409';
+
+    /**
+     * Insurance certificate (520)
+     *
+     * Document/message issued to the insured certifying that insurance has been
+     * effected and that a policy has been issued. Such a certificate for a
+     * particular cargo is primarily used when good are insured under the terms of
+     * a floating or an open policy; at the request of the insured it can be
+     * exchanged for a policy.
+     */
+    public const INSURANCE_CERTIFICATE = '520';
+
+    /**
+     * Insurance declaration sheet (bordereau) (550)
+     *
+     * A document/message used when an insured reports to his insurer details of
+     * individual shipments which are covered by an insurance contract - an open
+     * cover or a floating policy - between the parties.
+     */
+    public const INSURANCE_DECLARATION_SHEET_BORDEREAU = '550';
+
+    /**
+     * Insurance policy (530)
+     *
+     * Document/message issued by the insurer evidencing an agreement to insure
+     * and containing the conditions of the agreement concluded whereby the
+     * insurer undertakes for a specific fee to indemnify the insured for the
+     * losses arising out of the perils and accidents specified in the contract.
+     */
+    public const INSURANCE_POLICY = '530';
+
+    /**
+     * Insured party payment report (836)
+     *
+     * Report about payments done towards an insured party.
+     */
+    public const INSURED_PARTY_PAYMENT_REPORT = '836';
+
+    /**
+     * Insured status report (815)
+     *
+     * Document reporting (e.g. annually) to the insured the actual details of an
+     * insurance contract.
+     */
+    public const INSURED_STATUS_REPORT = '815';
+
+    /**
+     * Insurer's invoice (575)
+     *
+     * Document/message issued by an insurer specifying the cost of an insurance
+     * which has been effected and claiming payment therefore.
+     */
+    public const INSURERS_INVOICE = '575';
+
+    /**
+     * Interim application for payment (211)
+     *
+     * Document/message containing a provisional assessment in support of a
+     * request for payment for completed work for a construction contract.
+     */
+    public const INTERIM_APPLICATION_FOR_PAYMENT = '211';
+
+    /**
+     * Interim International Ship Security Certificate (537)
+     *
+     * An interim certificate on ship security issued basis under the
+     * International code for the Security of Ships and of Port facilities (ISPS
+     * code).
+     */
+    public const INTERIM_INTERNATIONAL_SHIP_SECURITY_CERTIFICATE = '537';
+
+    /**
+     * Intermediate handling cross docking despatch advice (464)
+     *
+     * Document by means of which the supplier or consignor informs the buyer,
+     * consignee or the distribution centre about the despatch of products which
+     * will be moved across a dock, de-consolidated and re-consolidated according
+     * to final delivery location requirements.
+     */
+    public const INTERMEDIATE_HANDLING_CROSS_DOCKING_DESPATCH_ADVICE = '464';
+
+    /**
+     * Intermediate handling cross docking order (402)
+     *
+     * An order requesting the supply of products which will be moved across a
+     * dock, de-consolidated and re-consolidated according to the final delivery
+     * location requirements.
+     */
+    public const INTERMEDIATE_HANDLING_CROSS_DOCKING_ORDER = '402';
+
+    /**
+     * Internal transport order (150)
+     *
+     * Document/message giving instructions about the transport of goods within an
+     * enterprise.
+     */
+    public const INTERNAL_TRANSPORT_ORDER = '150';
+
+    /**
+     * International Ship Security Certificate (536)
+     *
+     * A certificate on ship security issued based on the International code for
+     * the Security of Ships and of Port facilities (ISPS code).
+     */
+    public const INTERNATIONAL_SHIP_SECURITY_CERTIFICATE = '536';
+
+    /**
+     * INTRASTAT declaration (896)
+     *
+     * Document/message in which a declarant provides information about goods
+     * required by the body responsible for the collection of trade statistics.
+     */
+    public const INTRASTAT_DECLARATION = '896';
+
+    /**
+     * Introductory letter (867)
+     *
+     * A letter of introduction attached to, or accompanying another document such
+     * as an insurance policy.
+     */
+    public const INTRODUCTORY_LETTER = '867';
+
+    /**
+     * Inventory adjustment status report (263)
+     *
+     * A message detailing statuses related to the adjustment of inventory.
+     */
+    public const INVENTORY_ADJUSTMENT_STATUS_REPORT = '263';
+
+    /**
+     * Inventory movement advice (78)
+     *
+     * Advice of inventory movements.
+     */
+    public const INVENTORY_MOVEMENT_ADVICE = '78';
+
+    /**
+     * Inventory report (35)
+     *
+     * A message specifying information relating to held inventories.
+     */
+    public const INVENTORY_REPORT = '35';
+
+    /**
+     * Inventory status advice (79)
+     *
+     * Advice of stock on hand.
+     */
+    public const INVENTORY_STATUS_ADVICE = '79';
+
+    /**
+     * Invitation to tender (755)
+     *
+     * A document/message used by a buyer to define the procurement procedure and
+     * request specific suppliers to participate.
+     */
+    public const INVITATION_TO_TENDER = '755';
+
+    /**
+     * Invoice information for accounting purposes (751)
+     *
+     * A document / message containing accounting related information such as
+     * monetary summations, seller id and VAT information. This may not be a
+     * complete invoice according to legal requirements. For instance the line
+     * item information might be excluded.
+     */
+    public const INVOICE_INFORMATION_FOR_ACCOUNTING_PURPOSES = '751';
+
+    /**
+     * Invoicing data sheet (130)
+     *
+     * Document/message issued within an enterprise containing data about goods
+     * sold, to be used as the basis for the preparation of an invoice.
+     */
+    public const INVOICING_DATA_SHEET = '130';
+
+    /**
+     * Items booked to a financial account report (338)
+     *
+     * A message reporting items which have been booked to a financial account.
+     */
+    public const ITEMS_BOOKED_TO_A_FINANCIAL_ACCOUNT_REPORT = '338';
+
+    /**
+     * Kanban schedule (288)
+     *
+     * Message to describe a Kanban schedule.
+     */
+    public const KANBAN_SCHEDULE = '288';
+
+    /**
+     * Lease invoice (394)
+     *
+     * Usage of INVOIC-message for goods in leasing contracts.
+     */
+    public const LEASE_INVOICE = '394';
+
+    /**
+     * Lease order (223)
+     *
+     * Document/message for goods in leasing contracts.
+     */
+    public const LEASE_ORDER = '223';
+
+    /**
+     * Legal action (848)
+     *
+     * Document specifying a legal action at court.
+     */
+    public const LEGAL_ACTION = '848';
+
+    /**
+     * Legal statement of an account (54)
+     *
+     * A statement of an account containing the booked items as in the ledger of
+     * the account servicing financial institution.
+     */
+    public const LEGAL_STATEMENT_OF_AN_ACCOUNT = '54';
+
+    /**
+     * Letter of indemnity for non-surrender of bill of lading (715)
+     *
+     * Document/message issued by a commercial party or a bank of an insurance
+     * company accepting responsibility to the beneficiary of the indemnity in
+     * accordance with the terms thereof.
+     */
+    public const LETTER_OF_INDEMNITY_FOR_NONSURRENDER_OF_BILL_OF_LADING = '715';
+
+    /**
+     * Letter of intent (215)
+     *
+     * Document/message by means of which a buyer informs a seller that the buyer
+     * intends to enter into contractual negotiations.
+     */
+    public const LETTER_OF_INTENT = '215';
+
+    /**
+     * Life insurance payroll deductions advice (30)
+     *
+     * Payroll deductions advice used in the life insurance industry.
+     */
+    public const LIFE_INSURANCE_PAYROLL_DEDUCTIONS_ADVICE = '30';
+
+    /**
+     * Listing statement of an account (55)
+     *
+     * A statement from the account servicing financial institution containing
+     * items pending to be booked.
+     */
+    public const LISTING_STATEMENT_OF_AN_ACCOUNT = '55';
+
+    /**
+     * Loadline document (795)
+     *
+     * Document specifying the limit of a ship's legal submersion under various
+     * conditions.
+     */
+    public const LOADLINE_DOCUMENT = '795';
+
+    /**
+     * Loss statement (819)
+     *
+     * Document specifying the value of a loss.
+     */
+    public const LOSS_STATEMENT = '819';
+
+    /**
+     * Low risk country formal letter (652)
+     *
+     * An official letter issued by an import authority granted to the importer of
+     * goods from a low risk country which allows the importer to place its
+     * products in the local market with certain favorable considerations.
+     */
+    public const LOW_RISK_COUNTRY_FORMAL_LETTER = '652';
+
+    /**
+     * Low value payment order(s) (249)
+     *
+     * The message contains low value payment order(s) only.
+     */
+    public const LOW_VALUE_PAYMENT_ORDERS = '249';
+
+    /**
+     * Make or buy plan (156)
+     *
+     * A document indicating a plan that identifies which items will be made and
+     * which items will be bought.
+     */
+    public const MAKE_OR_BUY_PLAN = '156';
+
+    /**
+     * Manufacturer raised consignment order (726)
+     *
+     * Document/message providing details of a consignment order which has been
+     * raised by a manufacturer.
+     */
+    public const MANUFACTURER_RAISED_CONSIGNMENT_ORDER = '726';
+
+    /**
+     * Manufacturer raised order (725)
+     *
+     * Document/message providing details of an order which has been raised by a
+     * manufacturer.
+     */
+    public const MANUFACTURER_RAISED_ORDER = '725';
+
+    /**
+     * Manufacturing instructions (110)
+     *
+     * Document/message issued within an enterprise to initiate the manufacture of
+     * goods to be offered for sale.
+     */
+    public const MANUFACTURING_INSTRUCTIONS = '110';
+
+    /**
+     * Manufacturing license (651)
+     *
+     * A license granted by a competent authority to a manufacturer for production
+     * of specific products.
+     */
+    public const MANUFACTURING_LICENSE = '651';
+
+    /**
+     * Manufacturing specification (167)
+     *
+     * A document indicating the specification of how an item is to be
+     * manufactured.
+     */
+    public const MANUFACTURING_SPECIFICATION = '167';
+
+    /**
+     * Maritime declaration of health (797)
+     *
+     * Document certifying the health condition on board a vessel, valid to a
+     * specified date.
+     */
+    public const MARITIME_DECLARATION_OF_HEALTH = '797';
+
+    /**
+     * Master air waybill (741)
+     *
+     * Document/message made out by or on behalf of the agent/consolidator which
+     * evidences the contract between the agent/consolidator and carrier(s) for
+     * carriage of goods over routes of the carrier(s) for a consignment
+     * consisting of goods originated by more than one shipper (IATA).
+     */
+    public const MASTER_AIR_WAYBILL = '741';
+
+    /**
+     * Master bill of lading (704)
+     *
+     * A bill of lading issued by the master of a vessel (in actuality the owner
+     * or charterer of the vessel). It could cover a number of house bills.
+     */
+    public const MASTER_BILL_OF_LADING = '704';
+
+    /**
+     * Mate's receipt (713)
+     *
+     * Document/message issued by a ship's officer to acknowledge that a specified
+     * consignment has been received on board a vessel, and the apparent condition
+     * of the goods; enabling the carrier to issue a Bill of lading.
+     */
+    public const MATES_RECEIPT = '713';
+
+    /**
+     * Material inspection and receiving report (163)
+     *
+     * A report that is both an inspection report for materials and a receiving
+     * document.
+     */
+    public const MATERIAL_INSPECTION_AND_RECEIVING_REPORT = '163';
+
+    /**
+     * Means of transport advice (97)
+     *
+     * Message reporting the means of transport used to carry goods or cargo.
+     */
+    public const MEANS_OF_TRANSPORT_ADVICE = '97';
+
+    /**
+     * Means of transportation availability information (403)
+     *
+     * Information giving the various availabilities of a means of transportation.
+     */
+    public const MEANS_OF_TRANSPORTATION_AVAILABILITY_INFORMATION = '403';
+
+    /**
+     * Means of transportation schedule information (404)
+     *
+     * Information giving the various schedules of a means of transportation.
+     */
+    public const MEANS_OF_TRANSPORTATION_SCHEDULE_INFORMATION = '404';
+
+    /**
+     * Meat and meat by-products sanitary certificate (89)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that meat or meat by-products comply with the
+     * requirements set by the importing country.
+     */
+    public const MEAT_AND_MEAT_BYPRODUCTS_SANITARY_CERTIFICATE = '89';
+
+    /**
+     * Meat food products sanitary certificate (90)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that meat food products comply with the requirements set
+     * by the importing country.
+     */
+    public const MEAT_FOOD_PRODUCTS_SANITARY_CERTIFICATE = '90';
+
+    /**
+     * Medical certificate (842)
+     *
+     * Document certifying a medical condition.
+     */
+    public const MEDICAL_CERTIFICATE = '842';
+
+    /**
+     * Message in development request (281)
+     *
+     * Requesting a Message in Development (MiD).
+     */
+    public const MESSAGE_IN_DEVELOPMENT_REQUEST = '281';
+
+    /**
+     * Metered services consumption report (742)
+     *
+     * Document/message providing metered consumption details.
+     */
+    public const METERED_SERVICES_CONSUMPTION_REPORT = '742';
+
+    /**
+     * Metered services consumption report supporting an invoice (739)
+     *
+     * Document/message providing metered consumption details supporiting an
+     * invoice.
+     */
+    public const METERED_SERVICES_CONSUMPTION_REPORT_SUPPORTING_AN_INVOICE = '739';
+
+    /**
+     * Metered services invoice (82)
+     *
+     * Document/message claiming payment for the supply of metered services (e.g.,
+     * gas, electricity, etc.) supplied to a fixed meter whose consumption is
+     * measured over a period of time.
+     */
+    public const METERED_SERVICES_INVOICE = '82';
+
+    /**
+     * Metering point information response (391)
+     *
+     * Response to a request for information about a metering point.
+     */
+    public const METERING_POINT_INFORMATION_RESPONSE = '391';
+
+    /**
+     * Military Identification Card (528)
+     *
+     * The official document used for military personnel on travel orders,
+     * substituting a passport.
+     */
+    public const MILITARY_IDENTIFICATION_CARD = '528';
+
+    /**
+     * Mill certificate (12)
+     *
+     * Certificate certifying a specific quality of agricultural products.
+     */
+    public const MILL_CERTIFICATE = '12';
+
+    /**
+     * Modification of existing message (282)
+     *
+     * Requesting a change to an existing message.
+     */
+    public const MODIFICATION_OF_EXISTING_MESSAGE = '282';
+
+    /**
+     * Movement certificate A.TR.1 (18)
+     *
+     * Specific form of transit declaration issued by the exporter (movement
+     * certificate).
+     */
+    public const MOVEMENT_CERTIFICATE_ATR = '18';
+
+    /**
+     * Multidrop order (147)
+     *
+     * One purchase order that contains the orders of two or more vendors and the
+     * associated delivery points for each.
+     */
+    public const MULTIDROP_ORDER = '147';
+
+    /**
+     * Multimodal transport document (generic) (765)
+     *
+     * Document/message which evidences a multimodal transport contract, the
+     * taking in charge of the goods by the multimodal transport operator, and an
+     * undertaking by him to deliver the goods in accordance with the terms of the
+     * contract. (International Convention on Multimodal Transport of Goods).
+     */
+    public const MULTIMODAL_TRANSPORT_DOCUMENT_GENERIC = '765';
+
+    /**
+     * Multimodal/combined transport document (generic) (760)
+     *
+     * A transport document used when more than one mode of transportation is
+     * involved in the movement of cargo. It is a contract of carriage and receipt
+     * of the cargo for a multimodal transport. It indicates the place where the
+     * responsible transport company in the move takes responsibility for the
+     * cargo, the place where the responsibility of this transport company in the
+     * move ends and the conveyances involved.
+     */
+    public const MULTIMODALCOMBINED_TRANSPORT_DOCUMENT_GENERIC = '760';
+
+    /**
+     * Multiple direct debit (486)
+     *
+     * Document/message containing a direct debit to credit one or more accounts
+     * and to debit one or more debtors.
+     */
+    public const MULTIPLE_DIRECT_DEBIT = '486';
+
+    /**
+     * Multiple direct debit request (484)
+     *
+     * Document/message containing a direct debit request to credit one or more
+     * accounts and to debit one or more debtors.
+     */
+    public const MULTIPLE_DIRECT_DEBIT_REQUEST = '484';
+
+    /**
+     * Multiple payment order (452)
+     *
+     * Document/message containing a payment order to debit one or more accounts
+     * and to credit one or more beneficiaries.
+     */
+    public const MULTIPLE_PAYMENT_ORDER = '452';
+
+    /**
+     * Name/product plate (328)
+     *
+     * Plates on goods identifying and describing an article.
+     */
+    public const NAMEPRODUCT_PLATE = '328';
+
+    /**
+     * NATO transit document (977)
+     *
+     * Customs transit document for the carriage of shipments of the NATO armed
+     * forces under Customs supervision.
+     */
+    public const NATO_TRANSIT_DOCUMENT = '977';
+
+    /**
+     * New code request (272)
+     *
+     * Requesting a new code.
+     */
+    public const NEW_CODE_REQUEST = '272';
+
+    /**
+     * New message request (280)
+     *
+     * Request for a new message (NMR).
+     */
+    public const NEW_MESSAGE_REQUEST = '280';
+
+    /**
+     * Non-negotiable maritime transport document (generic) (712)
+     *
+     * Non-negotiable document which evidences a contract for the carriage of
+     * goods by sea and the taking over or loading of the goods by the carrier,
+     * and by which the carrier undertakes to deliver the goods to the consignee
+     * named in the document. E.g. Sea waybill. Remark: Synonymous with "straight"
+     * or "non-negotiable Bill of lading" used in certain countries, e.g. Canada.
+     */
+    public const NONNEGOTIABLE_MARITIME_TRANSPORT_DOCUMENT_GENERIC = '712';
+
+    /**
+     * Non-pre-authorised direct debit request(s) (244)
+     *
+     * The message contains non-pre-authorised direct debit request(s).
+     */
+    public const NONPREAUTHORISED_DIRECT_DEBIT_REQUESTS = '244';
+
+    /**
+     * Non-pre-authorised direct debit(s) (238)
+     *
+     * The message contains non-pre-authorised direct debit(s).
+     */
+    public const NONPREAUTHORISED_DIRECT_DEBITS = '238';
+
+    /**
+     * Notice of circumstances preventing delivery (goods) (782)
+     *
+     * Request made by the carrier to the sender, or, as the case may be, the
+     * consignee, for instructions as to the disposal of the consignment when
+     * circumstances prevent delivery and the return of the goods has not been
+     * requested by the consignor in the transport document.
+     */
+    public const NOTICE_OF_CIRCUMSTANCES_PREVENTING_DELIVERY_GOODS = '782';
+
+    /**
+     * Notice of circumstances preventing transport (goods) (783)
+     *
+     * Request made by the carrier to the sender, or, the consignee as the case
+     * may be, for instructions as to the disposal of the goods when circumstances
+     * prevent transport before departure or en route, after acceptance of the
+     * consignment concerned.
+     */
+    public const NOTICE_OF_CIRCUMSTANCES_PREVENTING_TRANSPORT_GOODS = '783';
+
+    /**
+     * Notice that circumstances prevent payment of delivered goods (453)
+     *
+     * Message used to inform a supplier that delivered goods cannot be paid due
+     * to circumstances which prevent payment.
+     */
+    public const NOTICE_THAT_CIRCUMSTANCES_PREVENT_PAYMENT_OF_DELIVERED_GOODS = '453';
+
+    /**
+     * Notification of balance responsible entity change (434)
+     *
+     * Notification of a change of balance responsible entity.
+     */
+    public const NOTIFICATION_OF_BALANCE_RESPONSIBLE_ENTITY_CHANGE = '434';
+
+    /**
+     * Notification of change of supplier (392)
+     *
+     * A notification of a change of supplier.
+     */
+    public const NOTIFICATION_OF_CHANGE_OF_SUPPLIER = '392';
+
+    /**
+     * Notification of emergency shifting from the designated place in port (354)
+     *
+     * Document to notify shifting from designated place in port once secured at
+     * the designated place.
+     */
+    public const NOTIFICATION_OF_EMERGENCY_SHIFTING_FROM_THE_DESIGNATED_PLACE_IN_PORT = '354';
+
+    /**
+     * Notification of meter change (408)
+     *
+     * Notification about the change of a meter.
+     */
+    public const NOTIFICATION_OF_METER_CHANGE = '408';
+
+    /**
+     * Notification of metering point identification change (410)
+     *
+     * Notification of the change of metering point identification.
+     */
+    public const NOTIFICATION_OF_METERING_POINT_IDENTIFICATION_CHANGE = '410';
+
+    /**
+     * Notification of usage of berth or mooring facilities (352)
+     *
+     * Document to notify usage of berth or mooring facilities.
+     */
+    public const NOTIFICATION_OF_USAGE_OF_BERTH_OR_MOORING_FACILITIES = '352';
+
+    /**
+     * Notification to grid operator of contract termination (432)
+     *
+     * Notification to the grid operator regarding the termination of a contract.
+     */
+    public const NOTIFICATION_TO_GRID_OPERATOR_OF_CONTRACT_TERMINATION = '432';
+
+    /**
+     * Notification to grid operator of metering point changes (433)
+     *
+     * Notification to the grid operator about changes regarding a metering point.
+     */
+    public const NOTIFICATION_TO_GRID_OPERATOR_OF_METERING_POINT_CHANGES = '433';
+
+    /**
+     * Notification to supplier of contract termination (406)
+     *
+     * Notification to the supplier regarding the termination of a contract.
+     */
+    public const NOTIFICATION_TO_SUPPLIER_OF_CONTRACT_TERMINATION = '406';
+
+    /**
+     * Notification to supplier of metering point changes (407)
+     *
+     * Notification to the supplier about changes regarding a metering point.
+     */
+    public const NOTIFICATION_TO_SUPPLIER_OF_METERING_POINT_CHANGES = '407';
+
+    /**
+     * Offer / quotation (310)
+     *
+     * (1332) Document/message which, with a view to concluding a contract, sets
+     * out the conditions under which the goods are offered.
+     */
+    public const OFFER_QUOTATION = '310';
+
+    /**
+     * Operating instructions (327)
+     *
+     * Document/message describing instructions for operation.
+     */
+    public const OPERATING_INSTRUCTIONS = '327';
+
+    /**
+     * Optical Character Reading (OCR) payment (322)
+     *
+     * Payment effected by an Optical Character Reading (OCR) document.
+     */
+    public const OPTICAL_CHARACTER_READING_OCR_PAYMENT = '322';
+
+    /**
+     * Optical Character Reading (OCR) payment credit note (420)
+     *
+     * Payment credit note effected by an Optical Character Reading (OCR)
+     * document.
+     */
+    public const OPTICAL_CHARACTER_READING_OCR_PAYMENT_CREDIT_NOTE = '420';
+
+    /**
+     * Order (220)
+     *
+     * Document/message by means of which a buyer initiates a transaction with a
+     * seller involving the supply of goods or services as specified, according to
+     * conditions set out in an offer, or otherwise known to the buyer.
+     */
+    public const ORDER = '220';
+
+    /**
+     * Order status enquiry (347)
+     *
+     * A message enquiring the status of previously sent orders.
+     */
+    public const ORDER_STATUS_ENQUIRY = '347';
+
+    /**
+     * Order status report (348)
+     *
+     * A message reporting the status of previously sent orders.
+     */
+    public const ORDER_STATUS_REPORT = '348';
+
+    /**
+     * Original accounting voucher (533)
+     *
+     * To indicate that the document/message justifying an accounting entry is
+     * original.
+     */
+    public const ORIGINAL_ACCOUNTING_VOUCHER = '533';
+
+    /**
+     * Out of court settlement (847)
+     *
+     * Document which specifies an out of court settlement.
+     */
+    public const OUT_OF_COURT_SETTLEMENT = '847';
+
+    /**
+     * Package response (Customs) (964)
+     *
+     * Package response message to permit the transfer of data from Customs to the
+     * transmitter of the previous message.
+     */
+    public const PACKAGE_RESPONSE_CUSTOMS = '964';
+
+    /**
+     * Packaging material composition report (644)
+     *
+     * A document that shows the main structure that composes the packaging
+     * material.
+     */
+    public const PACKAGING_MATERIAL_COMPOSITION_REPORT = '644';
+
+    /**
+     * Packing instructions (140)
+     *
+     * Document/message within an enterprise giving instructions on how goods are
+     * to be packed.
+     */
+    public const PACKING_INSTRUCTIONS = '140';
+
+    /**
+     * Packing list (271)
+     *
+     * Document/message specifying the distribution of goods in individual
+     * packages (in trade environment the despatch advice message is used for the
+     * packing list).
+     */
+    public const PACKING_LIST = '271';
+
+    /**
+     * Partial construction invoice (875)
+     *
+     * Partial invoice in the context of a specific construction project.
+     */
+    public const PARTIAL_CONSTRUCTION_INVOICE = '875';
+
+    /**
+     * Partial final construction invoice (876)
+     *
+     * Invoice concluding all previous partial construction invoices of a
+     * completed partial rendered service in the context of a specific
+     * construction project.
+     */
+    public const PARTIAL_FINAL_CONSTRUCTION_INVOICE = '876';
+
+    /**
+     * Partial invoice (326)
+     *
+     * Document/message specifying details of an incomplete invoice.
+     */
+    public const PARTIAL_INVOICE = '326';
+
+    /**
+     * Party credit information (377)
+     *
+     * Document/message providing data concerning the credit information of a
+     * party.
+     */
+    public const PARTY_CREDIT_INFORMATION = '377';
+
+    /**
+     * Party information (10)
+     *
+     * Document/message providing basic data concerning a party.
+     */
+    public const PARTY_INFORMATION = '10';
+
+    /**
+     * Party payment behaviour information (378)
+     *
+     * Document/message providing data concerning the payment behaviour of a
+     * party.
+     */
+    public const PARTY_PAYMENT_BEHAVIOUR_INFORMATION = '378';
+
+    /**
+     * Passenger list (745)
+     *
+     * Declaration to Customs regarding passengers aboard the conveyance;
+     * equivalent to IMO FAL 6.
+     */
+    public const PASSENGER_LIST = '745';
+
+    /**
+     * Passport (39)
+     *
+     * An official document giving permission to travel in foreign countries.
+     */
+    public const PASSPORT = '39';
+
+    /**
+     * Payment bond (357)
+     *
+     * A document that guarantees the payment of monies.
+     */
+    public const PAYMENT_BOND = '357';
+
+    /**
+     * Payment card (461)
+     *
+     * The document is a credit, guarantee or charge card.
+     */
+    public const PAYMENT_CARD = '461';
+
+    /**
+     * Payment or performance bond (165)
+     *
+     * A document indicating a bond that guarantees the payment of monies or a
+     * performance.
+     */
+    public const PAYMENT_OR_PERFORMANCE_BOND = '165';
+
+    /**
+     * Payment order (450)
+     *
+     * Document/message containing information needed to initiate the payment. It
+     * may cover the financial settlement for one or more commercial trade
+     * transactions. A payment order is an instruction to the ordered bank to
+     * arrange for the payment of one specified amount to the beneficiary.
+     */
+    public const PAYMENT_ORDER = '450';
+
+    /**
+     * Payment receipt confirmation (834)
+     *
+     * Document confirming the receipt of a payment.
+     */
+    public const PAYMENT_RECEIPT_CONFIRMATION = '834';
+
+    /**
+     * Payment request for completed units (219)
+     *
+     * A request for payment for completed units.
+     */
+    public const PAYMENT_REQUEST_FOR_COMPLETED_UNITS = '219';
+
+    /**
+     * Payment valuation (204)
+     *
+     * Document/message establishing the financial elements of a situation of
+     * works.
+     */
+    public const PAYMENT_VALUATION = '204';
+
+    /**
+     * Payment valuation for unscheduled items (217)
+     *
+     * A payment valuation for unscheduled items.
+     */
+    public const PAYMENT_VALUATION_FOR_UNSCHEDULED_ITEMS = '217';
+
+    /**
+     * Payroll deductions advice (747)
+     *
+     * A message sent by a party (usually an employer or its representative) to a
+     * service providing organisation, to detail payroll deductions paid on behalf
+     * of its employees to the service providing organisation.
+     */
+    public const PAYROLL_DEDUCTIONS_ADVICE = '747';
+
+    /**
+     * Performance bond (356)
+     *
+     * A document that guarantees performance.
+     */
+    public const PERFORMANCE_BOND = '356';
+
+    /**
+     * Pharmaceutical sanitary certificate (94)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that pharmaceutical products comply with the
+     * requirements set by the importing country.
+     */
+    public const PHARMACEUTICAL_SANITARY_CERTIFICATE = '94';
+
+    /**
+     * Physician report (839)
+     *
+     * Report issued by a medical doctor.
+     */
+    public const PHYSICIAN_REPORT = '839';
+
+    /**
+     * Phytosanitary certificate (851)
+     *
+     * A message/doucment consistent with the model for certificates of the IPPC,
+     * attesting that a consignment meets phytosanitary import requirements.
+     */
+    public const PHYTOSANITARY_CERTIFICATE = '851';
+
+    /**
+     * Phytosanitary Re-export Certificate (657)
+     *
+     * A message/document consistent with the model for re-export phytosanitary
+     * certificates of the IPPC, attesting that a consignment meets phytosanitary
+     * import requirements.
+     */
+    public const PHYTOSANITARY_REEXPORT_CERTIFICATE = '657';
+
+    /**
+     * Pick-up notice (171)
+     *
+     * Notice specifying the pick-up of released cargo or containers from a
+     * certain address.
+     */
+    public const PICKUP_NOTICE = '171';
+
+    /**
+     * Plan for provision of health service (371)
+     *
+     * Document containing a plan for provision of health service.
+     */
+    public const PLAN_FOR_PROVISION_OF_HEALTH_SERVICE = '371';
+
+    /**
+     * Plant Passport (752)
+     *
+     * Document/message issued by a competent body certifying the phytosanitary
+     * status of plants or plant products for international trade.
+     */
+    public const PLANT_PASSPORT = '752';
+
+    /**
+     * Port authority waste disposal report (482)
+     *
+     * Document/message sent by a port authority to another port authority for
+     * reporting information on waste disposal.
+     */
+    public const PORT_AUTHORITY_WASTE_DISPOSAL_REPORT = '482';
+
+    /**
+     * Port charges documents (633)
+     *
+     * Documents/messages specifying services rendered, storage and handling
+     * costs, demurrage and other charges due to the owner of goods described
+     * therein.
+     */
+    public const PORT_CHARGES_DOCUMENTS = '633';
+
+    /**
+     * Post receipt (13)
+     *
+     * Document/message which evidences the transport of goods by post (e.g. mail,
+     * parcel, etc.).
+     */
+    public const POST_RECEIPT = '13';
+
+    /**
+     * Poultry sanitary certificate (91)
+     *
+     * Document or message issued by the competent authority in the exporting
+     * country evidencing that poultry products comply with the requirements set
+     * by the importing country.
+     */
+    public const POULTRY_SANITARY_CERTIFICATE = '91';
+
+    /**
+     * Pre-authorised direct debit request(s) (243)
+     *
+     * The message contains pre-authorised direct debit request(s).
+     */
+    public const PREAUTHORISED_DIRECT_DEBIT_REQUESTS = '243';
+
+    /**
+     * Pre-authorised direct debit(s) (214)
+     *
+     * The message contains pre-authorised direct debit(s).
+     */
+    public const PREAUTHORISED_DIRECT_DEBITS = '214';
+
+    /**
+     * Pre-packed cross docking consignment order (898)
+     *
+     * A consignment order requesting the supply of products packed according to
+     * the final delivery point which will be moved across a dock in a
+     * distribution centre without further handling.
+     */
+    public const PREPACKED_CROSS_DOCKING_CONSIGNMENT_ORDER = '898';
+
+    /**
+     * Pre-packed cross docking despatch advice (463)
+     *
+     * Document by means of which the supplier or consignor informs the buyer,
+     * consignee or distribution centre about the despatch of products packed
+     * according to the final delivery point requirements which will be moved
+     * across a dock in a distribution centre without further handling.
+     */
+    public const PREPACKED_CROSS_DOCKING_DESPATCH_ADVICE = '463';
+
+    /**
+     * Pre-packed cross docking order (401)
+     *
+     * An order requesting the supply of products packed according to the final
+     * delivery point which will be moved across a dock in a distribution centre
+     * without further handling.
+     */
+    public const PREPACKED_CROSS_DOCKING_ORDER = '401';
+
+    /**
+     * Preadvice of a credit (435)
+     *
+     * Preadvice indicating a credit to happen in the future.
+     */
+    public const PREADVICE_OF_A_CREDIT = '435';
+
+    /**
+     * Preference certificate of origin (864)
+     *
+     * Document/message describing a certificate of origin meeting the
+     * requirements for preferential treatment.
+     */
+    public const PREFERENCE_CERTIFICATE_OF_ORIGIN = '864';
+
+    /**
+     * Preliminary credit assessment (64)
+     *
+     * Document/message issued either by a factor to indicate his preliminary
+     * credit assessment on a buyer, or by a seller to request a factor's
+     * preliminary credit assessment on a buyer.
+     */
+    public const PRELIMINARY_CREDIT_ASSESSMENT = '64';
+
+    /**
+     * Preliminary sales report (323)
+     *
+     * Preliminary sales report sent before all the information is available.
+     */
+    public const PRELIMINARY_SALES_REPORT = '323';
+
+    /**
+     * Prepayment invoice (386)
+     *
+     * An invoice to pay amounts for goods and services in advance; these amounts
+     * will be subtracted from the final invoice.
+     */
+    public const PREPAYMENT_INVOICE = '386';
+
+    /**
+     * Prescription (372)
+     *
+     * Instructions for the dispensing and use of medicine or remedy.
+     */
+    public const PRESCRIPTION = '372';
+
+    /**
+     * Prescription dispensing report (374)
+     *
+     * Document containing information of products dispensed according to a
+     * prescription.
+     */
+    public const PRESCRIPTION_DISPENSING_REPORT = '374';
+
+    /**
+     * Prescription request (373)
+     *
+     * Request to issue a prescription for medicine or remedy.
+     */
+    public const PRESCRIPTION_REQUEST = '373';
+
+    /**
+     * Previous correspondence (653)
+     *
+     * Correspondence previously exchanged.
+     */
+    public const PREVIOUS_CORRESPONDENCE = '653';
+
+    /**
+     * Previous Customs document/message (998)
+     *
+     * Indication of the previous Customs document/message concerning the same
+     * transaction.
+     */
+    public const PREVIOUS_CUSTOMS_DOCUMENTMESSAGE = '998';
+
+    /**
+     * Previous transport document (499)
+     *
+     * Identification of the previous transport document.
+     */
+    public const PREVIOUS_TRANSPORT_DOCUMENT = '499';
+
+    /**
+     * Price and delivery quote (363)
+     *
+     * Document/message confirming price and delivery conditions under which goods
+     * are offered.
+     */
+    public const PRICE_AND_DELIVERY_QUOTE = '363';
+
+    /**
+     * Price and delivery quote, ship and debit (369)
+     *
+     * Document/message from a supplier to a distributor confirming price
+     * conditions and delivery conditions under which goods can be sold by a
+     * distributor to the end-customer specified on the quote with compensation
+     * for loss of inventory value.
+     */
+    public const PRICE_AND_DELIVERY_QUOTE_SHIP_AND_DEBIT = '369';
+
+    /**
+     * Price and delivery quote, specified end-customer (367)
+     *
+     * Document/message confirming price conditions and delivery conditions under
+     * which goods are offered, provided that they are sold to the end-customer
+     * specified on the quote.
+     */
+    public const PRICE_AND_DELIVERY_QUOTE_SPECIFIED_ENDCUSTOMER = '367';
+
+    /**
+     * Price negotiation result (52)
+     *
+     * A document providing the result of price negotiations.
+     */
+    public const PRICE_NEGOTIATION_RESULT = '52';
+
+    /**
+     * Price quote (361)
+     *
+     * Document/message confirming price conditions under which goods are offered.
+     */
+    public const PRICE_QUOTE = '361';
+
+    /**
+     * Price quote, ship and debit (368)
+     *
+     * Document/message from a supplier to a distributor confirming price
+     * conditions under which goods can be sold by a distributor to the
+     * end-customer specified on the quote with compensation for loss of inventory
+     * value.
+     */
+    public const PRICE_QUOTE_SHIP_AND_DEBIT = '368';
+
+    /**
+     * Price quote, specified end-customer (366)
+     *
+     * Document/message confirming price conditions under which goods are offered,
+     * provided that they are sold to the end-customer specified on the quote.
+     */
+    public const PRICE_QUOTE_SPECIFIED_ENDCUSTOMER = '366';
+
+    /**
+     * Price variation invoice (295)
+     *
+     * An invoice which requests payment for the difference in price between an
+     * original invoice and the result of the application of a price variation
+     * formula.
+     */
+    public const PRICE_VARIATION_INVOICE = '295';
+
+    /**
+     * Price/sales catalogue (9)
+     *
+     * A document/message to enable the transmission of information regarding
+     * pricing and catalogue details for goods and services offered by a seller to
+     * a buyer.
+     */
+    public const PRICESALES_CATALOGUE = '9';
+
+    /**
+     * Price/sales catalogue containing commercial information (728)
+     *
+     * A price/sales catalogue message containing only commercial terms or
+     * conditions data.
+     */
+    public const PRICESALES_CATALOGUE_CONTAINING_COMMERCIAL_INFORMATION = '728';
+
+    /**
+     * Price/sales catalogue not containing commercial information (727)
+     *
+     * A price/sales catalogue message containing no commercial information, such
+     * as prices, terms or conditions.
+     */
+    public const PRICESALES_CATALOGUE_NOT_CONTAINING_COMMERCIAL_INFORMATION = '727';
+
+    /**
+     * Price/sales catalogue response (51)
+     *
+     * A document providing a response to a previously sent price/sales catalogue.
+     */
+    public const PRICESALES_CATALOGUE_RESPONSE = '51';
+
+    /**
+     * Priced alternate tender bill of quantity (192)
+     *
+     * A priced tender based upon an alternate specification.
+     */
+    public const PRICED_ALTERNATE_TENDER_BILL_OF_QUANTITY = '192';
+
+    /**
+     * Priced tender BOQ (209)
+     *
+     * Document/message providing a detailed, quantity based specification,
+     * updated with prices to form a tender submission for a construction
+     * contract. BOQ means: Bill of quantity.
+     */
+    public const PRICED_TENDER_BOQ = '209';
+
+    /**
+     * Pro-forma accounting voucher (535)
+     *
+     * To indicate that the document/message justifying an accounting entry is
+     * pro-forma.
+     */
+    public const PROFORMA_ACCOUNTING_VOUCHER = '535';
+
+    /**
+     * Process data report (7)
+     *
+     * Reports on events during production process.
+     */
+    public const PROCESS_DATA_REPORT = '7';
+
+    /**
+     * Product data message (289)
+     *
+     * A message to submit master data, a set of data that is rarely changed, to
+     * identify and describe products a supplier offers to their (potential)
+     * customer or buyer.
+     */
+    public const PRODUCT_DATA_MESSAGE = '289';
+
+    /**
+     * Product data response (721)
+     *
+     * Document/message responding to a previously received Product Data
+     * document/message.
+     */
+    public const PRODUCT_DATA_RESPONSE = '721';
+
+    /**
+     * Product performance report (5)
+     *
+     * Report specifying the performance values of products.
+     */
+    public const PRODUCT_PERFORMANCE_REPORT = '5';
+
+    /**
+     * Product specification report (6)
+     *
+     * Report providing specification values of products.
+     */
+    public const PRODUCT_SPECIFICATION_REPORT = '6';
+
+    /**
+     * Production facility license (649)
+     *
+     * A license granted by a competent authority to a production facility for
+     * manufacturing specific products.
+     */
+    public const PRODUCTION_FACILITY_LICENSE = '649';
+
+    /**
+     * Proforma invoice (325)
+     *
+     * Document/message serving as a preliminary invoice, containing - on the
+     * whole - the same information as the final invoice, but not actually
+     * claiming payment.
+     */
+    public const PROFORMA_INVOICE = '325';
+
+    /**
+     * Progressive discharge report (181)
+     *
+     * Document or message progressively issued by the container terminal operator
+     * in charge of discharging a vessel identifying containers that have been
+     * discharged from a specific vessel at that point in time.
+     */
+    public const PROGRESSIVE_DISCHARGE_REPORT = '181';
+
+    /**
+     * Project master plan (253)
+     *
+     * A high level, all encompassing master plan to complete a project.
+     */
+    public const PROJECT_MASTER_PLAN = '253';
+
+    /**
+     * Project master schedule (191)
+     *
+     * A high level, all encompassing master schedule of activities to complete a
+     * project.
+     */
+    public const PROJECT_MASTER_SCHEDULE = '191';
+
+    /**
+     * Project plan (254)
+     *
+     * A plan for project work to be completed.
+     */
+    public const PROJECT_PLAN = '254';
+
+    /**
+     * Project planning available resources (256)
+     *
+     * Available resources for project planning purposes.
+     */
+    public const PROJECT_PLANNING_AVAILABLE_RESOURCES = '256';
+
+    /**
+     * Project planning calendar (257)
+     *
+     * Work calendar information for project planning purposes.
+     */
+    public const PROJECT_PLANNING_CALENDAR = '257';
+
+    /**
+     * Project production plan (189)
+     *
+     * A project plan for the production of goods.
+     */
+    public const PROJECT_PRODUCTION_PLAN = '189';
+
+    /**
+     * Project recovery plan (188)
+     *
+     * A project plan for recovery after a delay or problem resolution.
+     */
+    public const PROJECT_RECOVERY_PLAN = '188';
+
+    /**
+     * Project schedule (255)
+     *
+     * A schedule of project activities to be completed.
+     */
+    public const PROJECT_SCHEDULE = '255';
+
+    /**
+     * Promissory note (491)
+     *
+     * Document/message, issued and signed in conformity with the applicable
+     * legislation, which contains an unconditional promise whereby the maker
+     * undertakes to pay a definite sum of money to the payee or to his order, on
+     * demand or at a definite time, against the surrender of the document itself.
+     */
+    public const PROMISSORY_NOTE = '491';
+
+    /**
+     * Proof of delivery (737)
+     *
+     * A message by which a consignee provides for a carrier proof of delivery of
+     * a consignment.
+     */
+    public const PROOF_OF_DELIVERY = '737';
+
+    /**
+     * Proof of transit declaration (975)
+     *
+     * A document providing proof that a transit declaration has been accepted.
+     */
+    public const PROOF_OF_TRANSIT_DECLARATION = '975';
+
+    /**
+     * Provisional payment valuation (203)
+     *
+     * Document/message establishing a provisional payment valuation.
+     */
+    public const PROVISIONAL_PAYMENT_VALUATION = '203';
+
+    /**
+     * Public price certificate (646)
+     *
+     * A certification executed by the competent authority from country of
+     * production stating the price of the goods to the general public.
+     */
+    public const PUBLIC_PRICE_CERTIFICATE = '646';
+
+    /**
+     * Purchase order (105)
+     *
+     * Document/message issued within an enterprise to initiate the purchase of
+     * articles, materials or services required for the production or manufacture
+     * of goods to be offered for sale or otherwise supplied to customers.
+     */
+    public const PURCHASE_ORDER = '105';
+
+    /**
+     * Purchase order change request (230)
+     *
+     * Change to an purchase order already sent.
+     */
+    public const PURCHASE_ORDER_CHANGE_REQUEST = '230';
+
+    /**
+     * Purchase Order Financing Request (892)
+     *
+     * Document enabling the Financing Requestor to initiate the financing process
+     * by the First Agent.
+     */
+    public const PURCHASE_ORDER_FINANCING_REQUEST = '892';
+
+    /**
+     * Purchase Order Financing Request Cancellation (894)
+     *
+     * Document enabling the Financing Requestor to request the First Agent to
+     * cancel a previously sent purchase order financing request.
+     */
+    public const PURCHASE_ORDER_FINANCING_REQUEST_CANCELLATION = '894';
+
+    /**
+     * Purchase Order Financing Request Status (893)
+     *
+     * Document enabling the First Agent to notify the Financing Requestor of the
+     * status of a purchase order financing request or the status of a purchase
+     * order financing cancellation request previously sent by the Financial
+     * Requestor itself.
+     */
+    public const PURCHASE_ORDER_FINANCING_REQUEST_STATUS = '893';
+
+    /**
+     * Purchase order response (231)
+     *
+     * Response to an purchase order already received.
+     */
+    public const PURCHASE_ORDER_RESPONSE = '231';
+
+    /**
+     * Purchasing specification (164)
+     *
+     * A document indicating a specification used to purchase an item.
+     */
+    public const PURCHASING_SPECIFICATION = '164';
+
+    /**
+     * Quality data message (20)
+     *
+     * Usage of QALITY-message.
+     */
+    public const QUALITY_DATA_MESSAGE = '20';
+
+    /**
+     * Quantity valuation (205)
+     *
+     * Document/message providing a confirmed assessment, by quantity, of the
+     * completed work for a construction contract.
+     */
+    public const QUANTITY_VALUATION = '205';
+
+    /**
+     * Quantity valuation request (206)
+     *
+     * Document/message providing an initial assessment, by quantity, of the
+     * completed work for a construction contract.
+     */
+    public const QUANTITY_VALUATION_REQUEST = '206';
+
+    /**
+     * Query (21)
+     *
+     * Request information based on defined criteria.
+     */
+    public const QUERY = '21';
+
+    /**
+     * Questionnaire (779)
+     *
+     * Document consisting of a series of questions.
+     */
+    public const QUESTIONNAIRE = '779';
+
+    /**
+     * Quota prior allocation certificate (966)
+     *
+     * Document/message issued by the competent body for prior allocation of a
+     * quota.
+     */
+    public const QUOTA_PRIOR_ALLOCATION_CERTIFICATE = '966';
+
+    /**
+     * Rail consignment note (generic term) (720)
+     *
+     * Transport document constituting a contract for the carriage of goods
+     * between the sender and the carrier (the railway). For international rail
+     * traffic, this document must conform to the model prescribed by the
+     * international conventions concerning carriage of goods by rail, e.g. CIM
+     * Convention, SMGS Convention.
+     */
+    public const RAIL_CONSIGNMENT_NOTE_GENERIC_TERM = '720';
+
+    /**
+     * Rail consignment note forwarder copy (972)
+     *
+     * Document which is a copy of the rail consignment note printed especially
+     * for the need of the forwarder.
+     */
+    public const RAIL_CONSIGNMENT_NOTE_FORWARDER_COPY = '972';
+
+    /**
+     * Re-Entry Permit (529)
+     *
+     * A permit to re-enter a country.
+     */
+    public const REENTRY_PERMIT = '529';
+
+    /**
+     * Re-sending consignment note (824)
+     *
+     * Rail consignment note prepared by the consignor for the facilitation of an
+     * eventual return to the origin of the goods.
+     */
+    public const RESENDING_CONSIGNMENT_NOTE = '824';
+
+    /**
+     * Ready for despatch advice (345)
+     *
+     * Document/message issued by a supplier informing a buyer that goods ordered
+     * are ready for despatch.
+     */
+    public const READY_FOR_DESPATCH_ADVICE = '345';
+
+    /**
+     * Ready for transshipment despatch advice (462)
+     *
+     * Document to advise that the goods ordered are ready for transshipment.
+     */
+    public const READY_FOR_TRANSSHIPMENT_DESPATCH_ADVICE = '462';
+
+    /**
+     * Reassignment (69)
+     *
+     * Document/message issued by a factor to a seller or to another factor to
+     * reassign an invoice or credit note previously assigned to him.
+     */
+    public const REASSIGNMENT = '69';
+
+    /**
+     * Receipt (Customs) (917)
+     *
+     * Receipt for Customs duty/tax/fee paid.
+     */
+    public const RECEIPT_CUSTOMS = '917';
+
+    /**
+     * Recharging document (724)
+     *
+     * Fictitious transport document regarding a previous transport, enabling a
+     * carrier's agent to give to another carrier's agent (in a different country)
+     * the possibility to collect charges relating to the original transport (rail
+     * environment).
+     */
+    public const RECHARGING_DOCUMENT = '724';
+
+    /**
+     * Reefer connection order (489)
+     *
+     * Order to connect a reefer container to a reefer point.
+     */
+    public const REEFER_CONNECTION_ORDER = '489';
+
+    /**
+     * Refugee Permit (531)
+     *
+     * Document identifying a refugee recognized by a country.
+     */
+    public const REFUGEE_PERMIT = '531';
+
+    /**
+     * Refusal of claim (828)
+     *
+     * Document stating the refusal of a claim.
+     */
+    public const REFUSAL_OF_CLAIM = '828';
+
+    /**
+     * Regional appellation certificate (863)
+     *
+     * Certificate drawn up in accordance with the rules laid down by an authority
+     * or approved body, certifying that the goods described therein qualify for a
+     * designation specific to the given region (e.g. champagne, port wine,
+     * Parmesan cheese).
+     */
+    public const REGIONAL_APPELLATION_CERTIFICATE = '863';
+
+    /**
+     * Registration change (300)
+     *
+     * Code specifying the modification of previously submitted registration
+     * information.
+     */
+    public const REGISTRATION_CHANGE = '300';
+
+    /**
+     * Registration document (101)
+     *
+     * An official document providing registration details.
+     */
+    public const REGISTRATION_DOCUMENT = '101';
+
+    /**
+     * Registration renewal (299)
+     *
+     * Code specifying the continued validity of previously submitted registration
+     * information.
+     */
+    public const REGISTRATION_RENEWAL = '299';
+
+    /**
+     * Rejected direct debit(s) (239)
+     *
+     * The message contains rejected direct debit(s).
+     */
+    public const REJECTED_DIRECT_DEBITS = '239';
+
+    /**
+     * Related document (916)
+     *
+     * Document that has a relationship with the stated document/message.
+     */
+    public const RELATED_DOCUMENT = '916';
+
+    /**
+     * Remittance advice (481)
+     *
+     * Document/message advising of the remittance of payment.
+     */
+    public const REMITTANCE_ADVICE = '481';
+
+    /**
+     * Repair order (225)
+     *
+     * Document/message to order repair of goods.
+     */
+    public const REPAIR_ORDER = '225';
+
+    /**
+     * Report of transactions for information only (342)
+     *
+     * A message reporting transactions for information only.
+     */
+    public const REPORT_OF_TRANSACTIONS_FOR_INFORMATION_ONLY = '342';
+
+    /**
+     * Report of transactions which need further information from the receiver (339)
+     *
+     * A message reporting transactions which need further information from the
+     * receiver.
+     */
+    public const REPORT_OF_TRANSACTIONS_WHICH_NEED_FURTHER_INFORMATION_FROM_THE_RECEIVER = '339';
+
+    /**
+     * Request for an amendment of a documentary credit (196)
+     *
+     * Request for an amendment of a documentary credit.
+     */
+    public const REQUEST_FOR_AN_AMENDMENT_OF_A_DOCUMENTARY_CREDIT = '196';
+
+    /**
+     * Request for contract price and delivery quote (445)
+     *
+     * Document/message requesting contractual price conditions and contractual
+     * delivery conditions under which goods are offered.
+     */
+    public const REQUEST_FOR_CONTRACT_PRICE_AND_DELIVERY_QUOTE = '445';
+
+    /**
+     * Request for contract price quote (444)
+     *
+     * Document/message requesting contractual price conditions under which goods
+     * are offered.
+     */
+    public const REQUEST_FOR_CONTRACT_PRICE_QUOTE = '444';
+
+    /**
+     * Request for delivery instructions (330)
+     *
+     * Document/message issued by a supplier requesting instructions from the
+     * buyer regarding the details of the delivery of goods ordered.
+     */
+    public const REQUEST_FOR_DELIVERY_INSTRUCTIONS = '330';
+
+    /**
+     * Request for delivery quote (442)
+     *
+     * Document/message requesting delivery conditions under which goods are
+     * offered.
+     */
+    public const REQUEST_FOR_DELIVERY_QUOTE = '442';
+
+    /**
+     * Request for financial cancellation (213)
+     *
+     * The message is a request for financial cancellation.
+     */
+    public const REQUEST_FOR_FINANCIAL_CANCELLATION = '213';
+
+    /**
+     * Request for metering point information (379)
+     *
+     * Message to request information about a metering point.
+     */
+    public const REQUEST_FOR_METERING_POINT_INFORMATION = '379';
+
+    /**
+     * Request for payment (71)
+     *
+     * Document/message issued by a creditor to a debtor to request payment of one
+     * or more invoices past due.
+     */
+    public const REQUEST_FOR_PAYMENT = '71';
+
+    /**
+     * Request for price and delivery quote (443)
+     *
+     * Document/message requesting price and delivery conditions under which goods
+     * are offered.
+     */
+    public const REQUEST_FOR_PRICE_AND_DELIVERY_QUOTE = '443';
+
+    /**
+     * Request for price and delivery quote, ship and debit (439)
+     *
+     * Document/message from a distributor to a supplier requesting price
+     * conditions and delivery conditions under which goods can be sold by the
+     * distributor to the end-customer specified on the request for quote with
+     * compensation for loss of inventory value.
+     */
+    public const REQUEST_FOR_PRICE_AND_DELIVERY_QUOTE_SHIP_AND_DEBIT = '439';
+
+    /**
+     * Request for price and delivery quote, specified end-user (437)
+     *
+     * Document/message requesting price conditions and delivery conditions under
+     * which goods are offered, provided that they are sold to the end-customer
+     * specified on the request for quote.
+     */
+    public const REQUEST_FOR_PRICE_AND_DELIVERY_QUOTE_SPECIFIED_ENDUSER = '437';
+
+    /**
+     * Request for price quote (360)
+     *
+     * Document/message requesting price conditions under which goods are offered.
+     */
+    public const REQUEST_FOR_PRICE_QUOTE = '360';
+
+    /**
+     * Request for price quote, ship and debit (438)
+     *
+     * Document/message from a distributor to a supplier requesting price
+     * conditions under which goods can be sold by the distributor to the
+     * end-customer specified on the request for quote with compensation for loss
+     * of inventory value.
+     */
+    public const REQUEST_FOR_PRICE_QUOTE_SHIP_AND_DEBIT = '438';
+
+    /**
+     * Request for price quote, specified end-customer (446)
+     *
+     * Document/message requesting price conditions under which goods are offered,
+     * provided that they are sold to the end-customer specified on the request
+     * for quote.
+     */
+    public const REQUEST_FOR_PRICE_QUOTE_SPECIFIED_ENDCUSTOMER = '446';
+
+    /**
+     * Request for provision of a health service (359)
+     *
+     * Document containing request for provision of a health service.
+     */
+    public const REQUEST_FOR_PROVISION_OF_A_HEALTH_SERVICE = '359';
+
+    /**
+     * Request for quote (311)
+     *
+     * Document/message requesting a quote on specified goods or services.
+     */
+    public const REQUEST_FOR_QUOTE = '311';
+
+    /**
+     * Request for statistical data (75)
+     *
+     * Request for one or more items or data sets of statistical data.
+     */
+    public const REQUEST_FOR_STATISTICAL_DATA = '75';
+
+    /**
+     * Request for transfer (303)
+     *
+     * Document/message is a request for transfer.
+     */
+    public const REQUEST_FOR_TRANSFER = '303';
+
+    /**
+     * Requirements contract (154)
+     *
+     * A document indicating a requirements contract that authorizes the filling
+     * of all purchase requirements during a specified contract period.
+     */
+    public const REQUIREMENTS_CONTRACT = '154';
+
+    /**
+     * Resale information (656)
+     *
+     * Document/message providing information on a resale.
+     */
+    public const RESALE_INFORMATION = '656';
+
+    /**
+     * Residence permit (717)
+     *
+     * A document authorizing residence.
+     */
+    public const RESIDENCE_PERMIT = '717';
+
+    /**
+     * Response to a trade statistics message (37)
+     *
+     * Document/message in which the competent national authorities provide a
+     * declarant with an acceptance or a rejection about a received declaration
+     * for European statistical purposes.
+     */
+    public const RESPONSE_TO_A_TRADE_STATISTICS_MESSAGE = '37';
+
+    /**
+     * Response to an amendment of a documentary credit (199)
+     *
+     * Response to an amendment of a documentary credit.
+     */
+    public const RESPONSE_TO_AN_AMENDMENT_OF_A_DOCUMENTARY_CREDIT = '199';
+
+    /**
+     * Response to previous banking status message (252)
+     *
+     * A response to a previously sent banking status message.
+     */
+    public const RESPONSE_TO_PREVIOUS_BANKING_STATUS_MESSAGE = '252';
+
+    /**
+     * Response to query (22)
+     *
+     * Document/message returned as an answer to a question.
+     */
+    public const RESPONSE_TO_QUERY = '22';
+
+    /**
+     * Response to registration (301)
+     *
+     * Code specifying a response to an occurrence of a registration message.
+     */
+    public const RESPONSE_TO_REGISTRATION = '301';
+
+    /**
+     * Restow (24)
+     *
+     * Message/document identifying containers that have been unloaded and then
+     * reloaded onto the same means of transport.
+     */
+    public const RESTOW = '24';
+
+    /**
+     * Returns advice (729)
+     *
+     * Document/message by means of which the buyer informs the seller about the
+     * despatch of returned goods.
+     */
+    public const RETURNS_ADVICE = '729';
+
+    /**
+     * Reversal of credit (458)
+     *
+     * Reversal of credit accounting entry by bank.
+     */
+    public const REVERSAL_OF_CREDIT = '458';
+
+    /**
+     * Reversal of debit (457)
+     *
+     * Reversal of debit accounting entry by bank.
+     */
+    public const REVERSAL_OF_DEBIT = '457';
+
+    /**
+     * Risk analysis (872)
+     *
+     * Document specifying the analysis of risks.
+     */
+    public const RISK_ANALYSIS = '872';
+
+    /**
+     * Road consignment note (730)
+     *
+     * Transport document/message which evidences a contract between a carrier and
+     * a sender for the carriage of goods by road (generic term). Remark: For
+     * international road traffic, this document must contain at least the
+     * particulars prescribed by the convention on the contract for the
+     * international carriage of goods by road (CMR).
+     */
+    public const ROAD_CONSIGNMENT_NOTE = '730';
+
+    /**
+     * Road list-SMGS (722)
+     *
+     * Accounting document, one copy of which is drawn up for each consignment
+     * note; it accompanies the consignment over the whole route and is a rail
+     * transport document.
+     */
+    public const ROAD_LISTSMGS = '722';
+
+    /**
+     * Rush order (224)
+     *
+     * Document/message for urgent ordering.
+     */
+    public const RUSH_ORDER = '224';
+
+    /**
+     * Safety and hazard data sheet (53)
+     *
+     * Document or message to supply advice on a dangerous or hazardous material
+     * to industrial customers so as to enable them to take measures to protect
+     * their employees and the environment from any potential harmful effects from
+     * these material.
+     */
+    public const SAFETY_AND_HAZARD_DATA_SHEET = '53';
+
+    /**
+     * Safety of equipment certificate (793)
+     *
+     * Document certifying the safety of a ship's equipment to a specified date.
+     */
+    public const SAFETY_OF_EQUIPMENT_CERTIFICATE = '793';
+
+    /**
+     * Safety of radio certificate (792)
+     *
+     * Document certifying the safety of a ship's radio facilities to a specified
+     * date.
+     */
+    public const SAFETY_OF_RADIO_CERTIFICATE = '792';
+
+    /**
+     * Safety of ship certificate (791)
+     *
+     * Document certifying a ship's safety to a specified date.
+     */
+    public const SAFETY_OF_SHIP_CERTIFICATE = '791';
+
+    /**
+     * Sales data report (735)
+     *
+     * A message enabling companies to exchange or report electronically, basic
+     * sales data related to products or services, including the corresponding
+     * location, time period, product identification, pricing and quantity
+     * information. It enables the recipient to p.
+     */
+    public const SALES_DATA_REPORT = '735';
+
+    /**
+     * Sales forecast report (734)
+     *
+     * A message enabling companies to exchange or report electronically, basic
+     * sales forecast data related to products or services, including the
+     * corresponding location, time period, product identification, pricing and
+     * quantity information. It enables the recip.
+     */
+    public const SALES_FORECAST_REPORT = '734';
+
+    /**
+     * Sample order (228)
+     *
+     * Document/message to order samples.
+     */
+    public const SAMPLE_ORDER = '228';
+
+    /**
+     * Sanitary certificate (852)
+     *
+     * Document/message issued by the competent authority in the exporting country
+     * evidencing that alimentary and animal products, including dead animals, are
+     * fit for human consumption, and giving details, when relevant, of controls
+     * undertaken.
+     */
+    public const SANITARY_CERTIFICATE = '852';
+
+    /**
+     * Sea waybill (710)
+     *
+     * Non-negotiable document which evidences a contract for the carriage of
+     * goods by sea and the taking over of the goods by the carrier, and by which
+     * the carrier undertakes to deliver the goods to the consignee named in the
+     * document.
+     */
+    public const SEA_WAYBILL = '710';
+
+    /**
+     * Seamanâs book (718)
+     *
+     * A national identity document issued to professional seamen that contains a
+     * record of their rank and service career.
+     */
+    public const SEAMANS_BOOK = '718';
+
+    /**
+     * Season ticket (43)
+     *
+     * A document giving access to a service for a determined period of time.
+     */
+    public const SEASON_TICKET = '43';
+
+    /**
+     * Segment change request (279)
+     *
+     * Requesting a change to an existing segment.
+     */
+    public const SEGMENT_CHANGE_REQUEST = '279';
+
+    /**
+     * Segment request (278)
+     *
+     * Request a new segment.
+     */
+    public const SEGMENT_REQUEST = '278';
+
+    /**
+     * Self billed credit note (261)
+     *
+     * A document which indicates that the customer is claiming credit in a self
+     * billing environment.
+     */
+    public const SELF_BILLED_CREDIT_NOTE = '261';
+
+    /**
+     * Self billed debit note (527)
+     *
+     * A document which indicates that the customer is claiming debit in a self
+     * billing environment.
+     */
+    public const SELF_BILLED_DEBIT_NOTE = '527';
+
+    /**
+     * Self-billed invoice (389)
+     *
+     * An invoice the invoicee is producing instead of the seller.
+     */
+    public const SELFBILLED_INVOICE = '389';
+
+    /**
+     * Sequenced delivery schedule (307)
+     *
+     * Message to describe a sequence of product delivery.
+     */
+    public const SEQUENCED_DELIVERY_SCHEDULE = '307';
+
+    /**
+     * Service directory definition (286)
+     *
+     * Document/message defining the contents of a service directory set or parts
+     * thereof.
+     */
+    public const SERVICE_DIRECTORY_DEFINITION = '286';
+
+    /**
+     * Settlement of a letter of credit (246)
+     *
+     * Settlement of a letter of credit.
+     */
+    public const SETTLEMENT_OF_A_LETTER_OF_CREDIT = '246';
+
+    /**
+     * Ship Security Plan (552)
+     *
+     * Ship Security Plan (SSP) is a document prepared in terms of the ISPS Code
+     * to contribute to the prevention of illegal acts against the ship and its
+     * crew.
+     */
+    public const SHIP_SECURITY_PLAN = '552';
+
+    /**
+     * Ship's stores declaration (799)
+     *
+     * Declaration to Customs regarding the contents of the ship's stores
+     * (equivalent to IMO FAL 3) i.e. goods intended for consumption by
+     * passengers/crew on board vessels, aircraft or trains, whether or not sold
+     * or landed; goods necessary for operation/maintenance of conveyance,
+     * including fuel/lubricants, excluding spare parts/equipment (IMO).
+     */
+    public const SHIPS_STORES_DECLARATION = '799';
+
+    /**
+     * Shipper's letter of instructions (air) (341)
+     *
+     * Document/message issued by a consignor in which he gives details of a
+     * consignment of goods that enables an airline or its agent to prepare an air
+     * waybill.
+     */
+    public const SHIPPERS_LETTER_OF_INSTRUCTIONS_AIR = '341';
+
+    /**
+     * Shipping instructions (340)
+     *
+     * (1121) Document/message advising details of cargo and exporter's
+     * requirements for its physical movement.
+     */
+    public const SHIPPING_INSTRUCTIONS = '340';
+
+    /**
+     * Shipping note (630)
+     *
+     * (1123) Document/message provided by the shipper or his agent to the
+     * carrier, multimodal transport operator, terminal or other receiving
+     * authority, giving information about export consignments offered for
+     * transport, and providing for the necessary receipts and declarations of
+     * liability. Sometimes a multipurpose cargo handling document also fulfilling
+     * the functions of document 632, 633, 650 and 655.
+     */
+    public const SHIPPING_NOTE = '630';
+
+    /**
+     * Simple data element change request (275)
+     *
+     * Request a change to an existing simple data element.
+     */
+    public const SIMPLE_DATA_ELEMENT_CHANGE_REQUEST = '275';
+
+    /**
+     * Simple data element request (274)
+     *
+     * Requesting a new simple data element.
+     */
+    public const SIMPLE_DATA_ELEMENT_REQUEST = '274';
+
+    /**
+     * Single administrative document (960)
+     *
+     * A set of documents, replacing the various (national) forms for Customs
+     * declaration within the EC, implemented on 01-01-1988.
+     */
+    public const SINGLE_ADMINISTRATIVE_DOCUMENT = '960';
+
+    /**
+     * Soil analysis (416)
+     *
+     * Soil analysis document.
+     */
+    public const SOIL_ANALYSIS = '416';
+
+    /**
+     * Spare parts order (233)
+     *
+     * Document/message to order spare parts.
+     */
+    public const SPARE_PARTS_ORDER = '233';
+
+    /**
+     * Special requirements permit related to the transport of cargo (521)
+     *
+     * A permit related to a transport document granting the transport of cargo
+     * under the conditions as specifically required.
+     */
+    public const SPECIAL_REQUIREMENTS_PERMIT_RELATED_TO_THE_TRANSPORT_OF_CARGO = '521';
+
+    /**
+     * Specific contract conditions (777)
+     *
+     * Document specifying the individual conditions or clauses applying to a
+     * specific contract.
+     */
+    public const SPECIFIC_CONTRACT_CONDITIONS = '777';
+
+    /**
+     * Spot order (222)
+     *
+     * Document/message ordering the remainder of a production's batch.
+     */
+    public const SPOT_ORDER = '222';
+
+    /**
+     * Standing inquiry on complete product information (736)
+     *
+     * A product inquiry which stands until it is cancelled. It requests not only
+     * the updates since last time, but always the complete product information of
+     * a data supplier. This means that within the standing request every time a
+     * complete download of the respe.
+     */
+    public const STANDING_INQUIRY_ON_COMPLETE_PRODUCT_INFORMATION = '736';
+
+    /**
+     * Standing inquiry on product information (376)
+     *
+     * A product inquiry which stands until it is cancelled.
+     */
+    public const STANDING_INQUIRY_ON_PRODUCT_INFORMATION = '376';
+
+    /**
+     * Standing order (258)
+     *
+     * An order to supply fixed quantities of products at fixed regular intervals.
+     */
+    public const STANDING_ORDER = '258';
+
+    /**
+     * Statement of account message (493)
+     *
+     * Usage of STATAC-message.
+     */
+    public const STATEMENT_OF_ACCOUNT_MESSAGE = '493';
+
+    /**
+     * Statistical and other administrative internal documents (190)
+     *
+     * Documents/messages issued within an enterprise for the for the purpose of
+     * collection of production and other internal statistics, and for other
+     * administration purposes.
+     */
+    public const STATISTICAL_AND_OTHER_ADMINISTRATIVE_INTERNAL_DOCUMENTS = '190';
+
+    /**
+     * Statistical data (74)
+     *
+     * Transmission of one or more items of data or data sets.
+     */
+    public const STATISTICAL_DATA = '74';
+
+    /**
+     * Statistical definitions (73)
+     *
+     * Transmission of one or more statistical definitions.
+     */
+    public const STATISTICAL_DEFINITIONS = '73';
+
+    /**
+     * Statistical document, export (895)
+     *
+     * Document/message in which an exporter provides information about exported
+     * goods required by the body responsible for the collection of international
+     * trade statistics.
+     */
+    public const STATISTICAL_DOCUMENT_EXPORT = '895';
+
+    /**
+     * Statistical document, import (995)
+     *
+     * Document/message describing an import document that is used for statistical
+     * purposes.
+     */
+    public const STATISTICAL_DOCUMENT_IMPORT = '995';
+
+    /**
+     * Status information (23)
+     *
+     * Information regarding the status of a related message.
+     */
+    public const STATUS_INFORMATION = '23';
+
+    /**
+     * Status report (287)
+     *
+     * Message covers information about the status.
+     */
+    public const STATUS_REPORT = '287';
+
+    /**
+     * Storage capacity offer (554)
+     *
+     * Offering of capacity to store goods.
+     */
+    public const STORAGE_CAPACITY_OFFER = '554';
+
+    /**
+     * Storage capacity request (576)
+     *
+     * Request for capacity to store goods.
+     */
+    public const STORAGE_CAPACITY_REQUEST = '576';
+
+    /**
+     * Stores requisition (120)
+     *
+     * Document/message issued within an enterprise ordering the taking out of
+     * stock of goods.
+     */
+    public const STORES_REQUISITION = '120';
+
+    /**
+     * Subcontractor plan (157)
+     *
+     * A document indicating a plan that identifies the manufacturer's
+     * subcontracting strategy for a specific contract.
+     */
+    public const SUBCONTRACTOR_PLAN = '157';
+
+    /**
+     * Substitute air waybill (743)
+     *
+     * A temporary air waybill which contains only limited information because of
+     * the absence of the original.
+     */
+    public const SUBSTITUTE_AIR_WAYBILL = '743';
+
+    /**
+     * Summary sales report (346)
+     *
+     * Sales report containing summaries for several earlier sent sales reports.
+     */
+    public const SUMMARY_SALES_REPORT = '346';
+
+    /**
+     * Summons (849)
+     *
+     * Document specifying a summons to court.
+     */
+    public const SUMMONS = '849';
+
+    /**
+     * Supplementary document for application for cargo operation of dangerous
+     * goods (319)
+     *
+     * Supplementary document to apply for cargo operation of dangerous goods.
+     */
+    public const SUPPLEMENTARY_DOCUMENT_FOR_APPLICATION_FOR_CARGO_OPERATION_OF_DANGEROUS_GOODS = '319';
+
+    /**
+     * Supplementary document for application for transport of dangerous goods (321)
+     *
+     * Supplementary document to apply for transport of dangerous goods.
+     */
+    public const SUPPLEMENTARY_DOCUMENT_FOR_APPLICATION_FOR_TRANSPORT_OF_DANGEROUS_GOODS = '321';
+
+    /**
+     * Sustainability data request (900)
+     *
+     * Document/message requesting information based on defined criteria regarding
+     * sustainability.
+     */
+    public const SUSTAINABILITY_DATA_REQUEST = '900';
+
+    /**
+     * Sustainability data response (902)
+     *
+     * Document/Message returned as an answer to a question regarding
+     * sustainability.
+     */
+    public const SUSTAINABILITY_DATA_RESPONSE = '902';
+
+    /**
+     * Sustainability Inspection request (903)
+     *
+     * Document/message requesting a sustainability inspection.
+     */
+    public const SUSTAINABILITY_INSPECTION_REQUEST = '903';
+
+    /**
+     * Sustainability Inspection response (904)
+     *
+     * Document/message reporting the results of a sustainability inspection.
+     */
+    public const SUSTAINABILITY_INSPECTION_RESPONSE = '904';
+
+    /**
+     * Swap order (229)
+     *
+     * Document/message informing buyer or seller of the replacement of goods
+     * previously ordered.
+     */
+    public const SWAP_ORDER = '229';
+
+    /**
+     * Tanker bill of lading (709)
+     *
+     * Document which evidences a transport of liquid bulk cargo.
+     */
+    public const TANKER_BILL_OF_LADING = '709';
+
+    /**
+     * Task order (155)
+     *
+     * A document indicating an order that tasks a contractor to perform a
+     * specified function.
+     */
+    public const TASK_ORDER = '155';
+
+    /**
+     * Tax calculation/confirmation response (Customs) (965)
+     *
+     * Tax calculation/confirmation response message to permit the transfer of
+     * data from Customs to the transmitter of the previous message.
+     */
+    public const TAX_CALCULATIONCONFIRMATION_RESPONSE_CUSTOMS = '965';
+
+    /**
+     * Tax declaration (general) (938)
+     *
+     * Document/message containing a general tax declaration.
+     */
+    public const TAX_DECLARATION_GENERAL = '938';
+
+    /**
+     * Tax declaration (value added tax) (937)
+     *
+     * Document/message in which an importer states the pertinent information
+     * required by the competent body for assessment of value-added tax.
+     */
+    public const TAX_DECLARATION_VALUE_ADDED_TAX = '937';
+
+    /**
+     * Tax demand (940)
+     *
+     * Document/message containing the demand of tax.
+     */
+    public const TAX_DEMAND = '940';
+
+    /**
+     * Tax invoice (388)
+     *
+     * An invoice for tax purposes.
+     */
+    public const TAX_INVOICE = '388';
+
+    /**
+     * Tax notification (102)
+     *
+     * Used to specify that the message is a tax notification.
+     */
+    public const TAX_NOTIFICATION = '102';
+
+    /**
+     * Tender (758)
+     *
+     * A document/message used by a supplier to bid in a procurement procedure.
+     */
+    public const TENDER = '758';
+
+    /**
+     * Tendering price/sales catalogue (762)
+     *
+     * A document/message providing information regarding pricing and catalogue
+     * details for goods and/or services to be offered as part of a tender.
+     */
+    public const TENDERING_PRICESALES_CATALOGUE = '762';
+
+    /**
+     * Tendering price/sales catalogue request (757)
+     *
+     * A document/message requesting information regarding pricing and catalogue
+     * details for goods and/or services to be offered as part of a tender.
+     */
+    public const TENDERING_PRICESALES_CATALOGUE_REQUEST = '757';
+
+    /**
+     * Test report (4)
+     *
+     * Report providing the results of a test session.
+     */
+    public const TEST_REPORT = '4';
+
+    /**
+     * Thermographic reading report (641)
+     *
+     * A report of temperature readings over a period.
+     */
+    public const THERMOGRAPHIC_READING_REPORT = '641';
+
+    /**
+     * Third party payment report (837)
+     *
+     * Report about payments done towards a third party.
+     */
+    public const THIRD_PARTY_PAYMENT_REPORT = '837';
+
+    /**
+     * Through bill of lading (761)
+     *
+     * Bill of lading which evidences a contract of carriage from one place to
+     * another in separate stages of which at least one stage is a sea transit,
+     * and by which the issuing carrier accepts responsibility for the carriage as
+     * set forth in the through bill of lading.
+     */
+    public const THROUGH_BILL_OF_LADING = '761';
+
+    /**
+     * TIF form (951)
+     *
+     * International Customs transit document by which the sender declares goods
+     * for carriage by rail in accordance with the provisions of the 1952
+     * International Convention to facilitate the crossing of frontiers for goods
+     * carried by rail (TIF Convention of UIC).
+     */
+    public const TIF_FORM = '951';
+
+    /**
+     * TIR carnet (952)
+     *
+     * International Customs document (International Transit by Road), issued by a
+     * guaranteeing association approved by the Customs authorities, under the
+     * cover of which goods are carried, in most cases under Customs seal, in road
+     * vehicles and/or containers in compliance with the requirements of the
+     * Customs TIR Convention of the International Transport of Goods under cover
+     * of TIR Carnets (UN/ECE).
+     */
+    public const TIR_CARNET = '952';
+
+    /**
+     * Traceability event declaration (899)
+     *
+     * Document/message declaring a traceability event.
+     */
+    public const TRACEABILITY_EVENT_DECLARATION = '899';
+
+    /**
+     * Tracking number assignment report (283)
+     *
+     * Report of assigned tracking numbers.
+     */
+    public const TRACKING_NUMBER_ASSIGNMENT_REPORT = '283';
+
+    /**
+     * Trade data (332)
+     *
+     * Document/message is for trade data.
+     */
+    public const TRADE_DATA = '332';
+
+    /**
+     * Transfrontier waste shipment authorization (978)
+     *
+     * Document containing the authorization from the relevant authority for the
+     * international carriage of waste. Syn: Transfrontier waste shipment permit.
+     */
+    public const TRANSFRONTIER_WASTE_SHIPMENT_AUTHORIZATION = '978';
+
+    /**
+     * Transfrontier waste shipment movement document (979)
+     *
+     * Document certified by the carriers and the consignee to be used for the
+     * international carriage of waste.
+     */
+    public const TRANSFRONTIER_WASTE_SHIPMENT_MOVEMENT_DOCUMENT = '979';
+
+    /**
+     * Transit certificate of approval (897)
+     *
+     * Certificate of approval for the transport of goods under customs seal
+     */
+    public const TRANSIT_CERTIFICATE_OF_APPROVAL = '897';
+
+    /**
+     * Transit Conveyor Document (971)
+     *
+     * Document for a course of transit used for a carrier who is neither the
+     * carrier at the beginning nor the arrival. The transit carrier can directly
+     * invoice the expenses for its part of the transport.
+     */
+    public const TRANSIT_CONVEYOR_DOCUMENT = '971';
+
+    /**
+     * Transit license (628)
+     *
+     * Document/message issued by the competent body in accordance with transit
+     * regulations in force, by which authorization is granted to a party to move
+     * articles under customs procedure.
+     */
+    public const TRANSIT_LICENSE = '628';
+
+    /**
+     * Transport capacity offer (551)
+     *
+     * Offering of capacity for the transport of goods for a date and a route.
+     */
+    public const TRANSPORT_CAPACITY_OFFER = '551';
+
+    /**
+     * Transport capacity request (577)
+     *
+     * Request for capacity for the transport of goods for a date and a route.
+     */
+    public const TRANSPORT_CAPACITY_REQUEST = '577';
+
+    /**
+     * Transport cargo release order (129)
+     *
+     * Order to release cargo or items of transport equipment to a specified
+     * party.
+     */
+    public const TRANSPORT_CARGO_RELEASE_ORDER = '129';
+
+    /**
+     * Transport departure report (124)
+     *
+     * Report of the departure of a means of transport from a particular facility.
+     */
+    public const TRANSPORT_DEPARTURE_REPORT = '124';
+
+    /**
+     * Transport discharge instruction (118)
+     *
+     * Instruction to unload specified cargo, containers or transport equipment
+     * from a means of transport.
+     */
+    public const TRANSPORT_DISCHARGE_INSTRUCTION = '118';
+
+    /**
+     * Transport discharge report (119)
+     *
+     * Report on cargo, containers or transport equipment unloaded from a
+     * particular means of transport.
+     */
+    public const TRANSPORT_DISCHARGE_REPORT = '119';
+
+    /**
+     * Transport emergency card (324)
+     *
+     * Official document specifying, for a given dangerous goods item, information
+     * such as nature of hazard, protective devices, actions to be taken in case
+     * of accident, spillage or fire and first aid to be given.
+     */
+    public const TRANSPORT_EMERGENCY_CARD = '324';
+
+    /**
+     * Transport empty equipment advice (125)
+     *
+     * Advice that an item or items of empty transport equipment are available for
+     * return.
+     */
+    public const TRANSPORT_EMPTY_EQUIPMENT_ADVICE = '125';
+
+    /**
+     * Transport equipment acceptance order (126)
+     *
+     * Order to accept items of transport equipment which are to be delivered by
+     * an inland carrier (rail, road or barge) to a specified facility.
+     */
+    public const TRANSPORT_EQUIPMENT_ACCEPTANCE_ORDER = '126';
+
+    /**
+     * Transport equipment damage report (106)
+     *
+     * Report of damaged items of transport equipment that have been returned.
+     */
+    public const TRANSPORT_EQUIPMENT_DAMAGE_REPORT = '106';
+
+    /**
+     * Transport equipment delivery notice (405)
+     *
+     * Notification regarding the delivery of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_DELIVERY_NOTICE = '405';
+
+    /**
+     * Transport equipment direct interchange report (103)
+     *
+     * Report on the movement of containers or other items of transport equipment
+     * being exchanged, establishing relevant rental periods.
+     */
+    public const TRANSPORT_EQUIPMENT_DIRECT_INTERCHANGE_REPORT = '103';
+
+    /**
+     * Transport equipment empty release instruction (108)
+     *
+     * Instruction to release an item of empty transport equipment to a specified
+     * party or parties.
+     */
+    public const TRANSPORT_EQUIPMENT_EMPTY_RELEASE_INSTRUCTION = '108';
+
+    /**
+     * Transport equipment gross mass verification message (749)
+     *
+     * Message containing information regarding gross mass verification of
+     * transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_GROSS_MASS_VERIFICATION_MESSAGE = '749';
+
+    /**
+     * Transport equipment impending arrival advice (104)
+     *
+     * Advice that containers or other items of transport equipment may be
+     * expected to be delivered to a certain location.
+     */
+    public const TRANSPORT_EQUIPMENT_IMPENDING_ARRIVAL_ADVICE = '104';
+
+    /**
+     * Transport equipment maintenance and repair notice (143)
+     *
+     * Report of transport equipment which has been repaired or has had
+     * maintenance performed.
+     */
+    public const TRANSPORT_EQUIPMENT_MAINTENANCE_AND_REPAIR_NOTICE = '143';
+
+    /**
+     * Transport equipment maintenance and repair work authorisation (123)
+     *
+     * Authorisation to have transport equipment repaired or to have maintenance
+     * performed.
+     */
+    public const TRANSPORT_EQUIPMENT_MAINTENANCE_AND_REPAIR_WORK_AUTHORISATION = '123';
+
+    /**
+     * Transport equipment maintenance and repair work estimate advice (107)
+     *
+     * Advice providing estimates of transport equipment maintenance and repair
+     * costs.
+     */
+    public const TRANSPORT_EQUIPMENT_MAINTENANCE_AND_REPAIR_WORK_ESTIMATE_ADVICE = '107';
+
+    /**
+     * Transport equipment maintenance and repair work estimate order (142)
+     *
+     * Order to draw up an estimate of the costs of maintenance or repair of
+     * transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_MAINTENANCE_AND_REPAIR_WORK_ESTIMATE_ORDER = '142';
+
+    /**
+     * Transport equipment movement instruction (264)
+     *
+     * Instruction to perform one or more different movements of transport
+     * equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_MOVEMENT_INSTRUCTION = '264';
+
+    /**
+     * Transport equipment movement report (265)
+     *
+     * Report on one or more different movements of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_MOVEMENT_REPORT = '265';
+
+    /**
+     * Transport equipment movement report, partial (873)
+     *
+     * A partial transport equipment movement report, containing only a selected
+     * part of the movements of transport equipment for a vessel in a port.
+     */
+    public const TRANSPORT_EQUIPMENT_MOVEMENT_REPORT_PARTIAL = '873';
+
+    /**
+     * Transport equipment off-hire report (58)
+     *
+     * Report on the movement of containers or other items of transport equipment
+     * to record physical movement activity and establish the end of a rental
+     * period.
+     */
+    public const TRANSPORT_EQUIPMENT_OFFHIRE_REPORT = '58';
+
+    /**
+     * Transport equipment off-hire request (136)
+     *
+     * Request to terminate the lease on an item of transport equipment at a
+     * specified time.
+     */
+    public const TRANSPORT_EQUIPMENT_OFFHIRE_REQUEST = '136';
+
+    /**
+     * Transport equipment on-hire order (135)
+     *
+     * Order to release empty items of transport equipment for on-hire to a
+     * lessee, and authorising collection by or on behalf of a specified party.
+     */
+    public const TRANSPORT_EQUIPMENT_ONHIRE_ORDER = '135';
+
+    /**
+     * Transport equipment on-hire report (57)
+     *
+     * Report on the movement of containers or other items of transport equipment
+     * to record physical movement activity and establish the beginning of a
+     * rental period.
+     */
+    public const TRANSPORT_EQUIPMENT_ONHIRE_REPORT = '57';
+
+    /**
+     * Transport equipment on-hire request (134)
+     *
+     * Request for transport equipment to be made available for hire.
+     */
+    public const TRANSPORT_EQUIPMENT_ONHIRE_REQUEST = '134';
+
+    /**
+     * Transport equipment packing instruction (131)
+     *
+     * Instruction to pack cargo into a container or other item of transport
+     * equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_PACKING_INSTRUCTION = '131';
+
+    /**
+     * Transport equipment pick-up availability confirmation (115)
+     *
+     * Confirmation that an item of transport equipment is available for
+     * collection.
+     */
+    public const TRANSPORT_EQUIPMENT_PICKUP_AVAILABILITY_CONFIRMATION = '115';
+
+    /**
+     * Transport equipment pick-up availability request (114)
+     *
+     * Request for confirmation that an item of transport equipment will be
+     * available for collection.
+     */
+    public const TRANSPORT_EQUIPMENT_PICKUP_AVAILABILITY_REQUEST = '114';
+
+    /**
+     * Transport equipment pick-up report (116)
+     *
+     * Report that an item of transport equipment has been collected.
+     */
+    public const TRANSPORT_EQUIPMENT_PICKUP_REPORT = '116';
+
+    /**
+     * Transport equipment profile report (436)
+     *
+     * Report on the profile of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_PROFILE_REPORT = '436';
+
+    /**
+     * Transport equipment shift report (117)
+     *
+     * Report on the movement of containers or other items of transport within a
+     * facility.
+     */
+    public const TRANSPORT_EQUIPMENT_SHIFT_REPORT = '117';
+
+    /**
+     * Transport equipment special service instruction (127)
+     *
+     * Instruction to perform a specified service or services on an item or items
+     * of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_SPECIAL_SERVICE_INSTRUCTION = '127';
+
+    /**
+     * Transport equipment status change report (266)
+     *
+     * Report on one or more changes of status associated with an item or items of
+     * transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_STATUS_CHANGE_REPORT = '266';
+
+    /**
+     * Transport equipment stock report (128)
+     *
+     * Report on the number of items of transport equipment stored at one or more
+     * locations.
+     */
+    public const TRANSPORT_EQUIPMENT_STOCK_REPORT = '128';
+
+    /**
+     * Transport equipment survey order (137)
+     *
+     * Order to perform a survey on specified items of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_SURVEY_ORDER = '137';
+
+    /**
+     * Transport equipment survey order response (138)
+     *
+     * Response to an order to conduct a survey of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_SURVEY_ORDER_RESPONSE = '138';
+
+    /**
+     * Transport equipment survey report (139)
+     *
+     * Survey report of specified items of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_SURVEY_REPORT = '139';
+
+    /**
+     * Transport equipment unpacking instruction (112)
+     *
+     * Instruction to unpack specified cargo from specified containers or other
+     * items of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_UNPACKING_INSTRUCTION = '112';
+
+    /**
+     * Transport equipment unpacking report (113)
+     *
+     * Report on the completion of unpacking specified containers or other items
+     * of transport equipment.
+     */
+    public const TRANSPORT_EQUIPMENT_UNPACKING_REPORT = '113';
+
+    /**
+     * Transport loading instruction (121)
+     *
+     * Instruction to load cargo, containers or transport equipment onto a means
+     * of transport.
+     */
+    public const TRANSPORT_LOADING_INSTRUCTION = '121';
+
+    /**
+     * Transport loading report (122)
+     *
+     * Report on completion of loading cargo, containers or other transport
+     * equipment onto a means of transport.
+     */
+    public const TRANSPORT_LOADING_REPORT = '122';
+
+    /**
+     * Transport Means Security Report (588)
+     *
+     * A document reporting the security status and related information of a means
+     * of transport.
+     */
+    public const TRANSPORT_MEANS_SECURITY_REPORT = '588';
+
+    /**
+     * Transport movement gate in report (109)
+     *
+     * Report on the inward movement of cargo, containers or other items of
+     * transport equipment which have been delivered to a facility by an inland
+     * carrier.
+     */
+    public const TRANSPORT_MOVEMENT_GATE_IN_REPORT = '109';
+
+    /**
+     * Transport movement gate out report (111)
+     *
+     * Report on the outward movement of cargo, containers or other items of
+     * transport equipment (either full or empty) which have been picked up by an
+     * inland carrier.
+     */
+    public const TRANSPORT_MOVEMENT_GATE_OUT_REPORT = '111';
+
+    /**
+     * Transport routing information (441)
+     *
+     * Document specifying the routes for transport between locations.
+     */
+    public const TRANSPORT_ROUTING_INFORMATION = '441';
+
+    /**
+     * Transport status report (44)
+     *
+     * (1125) A message to report the transport status and/or change in the
+     * transport status (i.e. event) between agreed parties.
+     */
+    public const TRANSPORT_STATUS_REPORT = '44';
+
+    /**
+     * Transport status request (45)
+     *
+     * (1127) A message to request a transport status report (e.g. through the
+     * national multimodal status report message IFSTA).
+     */
+    public const TRANSPORT_STATUS_REQUEST = '45';
+
+    /**
+     * Transshipment despatch advice (399)
+     *
+     * Document by means of which the supplier or consignor informs the buyer,
+     * consignee or the distribution centre about the despatch of goods for
+     * transshipment.
+     */
+    public const TRANSSHIPMENT_DESPATCH_ADVICE = '399';
+
+    /**
+     * Travel ticket (459)
+     *
+     * The document is a ticket giving access to a travel service.
+     */
+    public const TRAVEL_TICKET = '459';
+
+    /**
+     * Treatment - nil outturn (59)
+     *
+     * No shortage, surplus or damaged outturn resulting from container vessel
+     * unpacking.
+     */
+    public const TREATMENT_NIL_OUTTURN = '59';
+
+    /**
+     * Treatment - personal effect (62)
+     *
+     * Cargo consists of personal effects.
+     */
+    public const TREATMENT_PERSONAL_EFFECT = '62';
+
+    /**
+     * Treatment - timber (63)
+     *
+     * Cargo consists of timber.
+     */
+    public const TREATMENT_TIMBER = '63';
+
+    /**
+     * Treatment - time-up underbond (60)
+     *
+     * Movement type indicator: goods are moved under customs control for
+     * warehousing due to being time-up.
+     */
+    public const TREATMENT_TIMEUP_UNDERBOND = '60';
+
+    /**
+     * Treatment - underbond by sea (61)
+     *
+     * Movement type indicator: goods are to move by sea under customs control to
+     * a customs office where formalities will be completed.
+     */
+    public const TREATMENT_UNDERBOND_BY_SEA = '61';
+
+    /**
+     * Underbond approval (32)
+     *
+     * A message/document issuing Customs approval to move cargo from one Customs
+     * control point to another.
+     */
+    public const UNDERBOND_APPROVAL = '32';
+
+    /**
+     * Underbond request (31)
+     *
+     * A Message/document requesting to move cargo from one Customs control point
+     * to another.
+     */
+    public const UNDERBOND_REQUEST = '31';
+
+    /**
+     * United Nations standard message request (285)
+     *
+     * Requesting a United Nations Standard Message (UNSM).
+     */
+    public const UNITED_NATIONS_STANDARD_MESSAGE_REQUEST = '285';
+
+    /**
+     * Universal (multipurpose) transport document (701)
+     *
+     * Document/message evidencing a contract of carriage covering the movement of
+     * goods by any mode of transport, or combination of modes, for national as
+     * well as international transport, under any applicable international
+     * convention or national law and under the conditions of carriage of any
+     * carrier or transport operator undertaking or arranging the transport
+     * referred to in the document.
+     */
+    public const UNIVERSAL_MULTIPURPOSE_TRANSPORT_DOCUMENT = '701';
+
+    /**
+     * Unpriced bill of quantity (208)
+     *
+     * Document/message providing a detailed, quantity based specification, issued
+     * in an unpriced form to invite tender prices.
+     */
+    public const UNPRICED_BILL_OF_QUANTITY = '208';
+
+    /**
+     * Unship permit (72)
+     *
+     * A message or document issuing permission to unship cargo.
+     */
+    public const UNSHIP_PERMIT = '72';
+
+    /**
+     * US, FATCA statement (814)
+     *
+     * Statement regarding the Foreign Account Tax Compliance Act (FATCA) of the
+     * United States of America.
+     */
+    public const US_FATCA_STATEMENT = '814';
+
+    /**
+     * User directory definition (284)
+     *
+     * Document/message defining the contents of a user directory set or parts
+     * thereof.
+     */
+    public const USER_DIRECTORY_DEFINITION = '284';
+
+    /**
+     * Utilities time series message (411)
+     *
+     * The Utilities time series message is sent between responsible parties in a
+     * utilities infrastructure for the purpose of reporting time series and
+     * connected technical and/or administrative information.
+     */
+    public const UTILITIES_TIME_SERIES_MESSAGE = '411';
+
+    /**
+     * Vaccination certificate (38)
+     *
+     * Official document proving immunisation against certain diseases.
+     */
+    public const VACCINATION_CERTIFICATE = '38';
+
+    /**
+     * Validated priced tender (50)
+     *
+     * A validated priced tender.
+     */
+    public const VALIDATED_PRICED_TENDER = '50';
+
+    /**
+     * Valuation report (829)
+     *
+     * Document reporting a valuation.
+     */
+    public const VALUATION_REPORT = '829';
+
+    /**
+     * Value declaration (934)
+     *
+     * Document/message in which a declarant (importer) states the invoice or
+     * other price (e.g. selling price, price of identical goods), and specifies
+     * costs for freight, insurance and packing, etc., terms of delivery and
+     * payment, any relationship with the trading partner, etc., for the purpose
+     * of determining the Customs value of goods imported.
+     */
+    public const VALUE_DECLARATION = '934';
+
+    /**
+     * Vehicle aboard document (857)
+     *
+     * Document which must be aboard the vehicle.
+     */
+    public const VEHICLE_ABOARD_DOCUMENT = '857';
+
+    /**
+     * Vessel unpack report (86)
+     *
+     * A document code to indicate that the message being transmitted identifies
+     * all short and surplus cargoes off-loaded from a vessel at a specified
+     * discharging port.
+     */
+    public const VESSEL_UNPACK_REPORT = '86';
+
+    /**
+     * Veterinary certificate (853)
+     *
+     * Document/message issued by the competent authority in the exporting country
+     * evidencing that live animals or birds are not infested or infected with
+     * disease, and giving details regarding their provenance, and of vaccinations
+     * and other treatment to which they have been subjected.
+     */
+    public const VETERINARY_CERTIFICATE = '853';
+
+    /**
+     * Veterinary quarantine certificate (629)
+     *
+     * A certification that livestock or animal products, that are either imported
+     * or entering free zones, are kept under health supervision for a time period
+     * determined by veterinary quarantine instructions.
+     */
+    public const VETERINARY_QUARANTINE_CERTIFICATE = '629';
+
+    /**
+     * Video (866)
+     *
+     * Document consisting of a video.
+     */
+    public const VIDEO = '866';
+
+    /**
+     * Visa (483)
+     *
+     * An endorsement on a passport or any other recognised travel document
+     * indicating that it has been examined and found correct, especially as
+     * permitting the holder to enter or leave a country.
+     */
+    public const VISA = '483';
+
+    /**
+     * Wage determination (160)
+     *
+     * A document indicating a determination of the wages to be paid.
+     */
+    public const WAGE_DETERMINATION = '160';
+
+    /**
+     * Wagon report (970)
+     *
+     * Document which contains consignment information concerning the wagons and
+     * their lading in a case of a multiple wagon consignment.
+     */
+    public const WAGON_REPORT = '970';
+
+    /**
+     * Warehouse warrant (635)
+     *
+     * Negotiable receipt document, issued by a Warehouse Keeper to a person
+     * placing goods in a warehouse and conferring title to the goods stored.
+     */
+    public const WAREHOUSE_WARRANT = '635';
+
+    /**
+     * Waste disposal report (470)
+     *
+     * Document/message sent by a shipping agent to an authority for reporting
+     * information on waste disposal.
+     */
+    public const WASTE_DISPOSAL_REPORT = '470';
+
+    /**
+     * Waybill (700)
+     *
+     * Non-negotiable document evidencing the contract for the transport of cargo.
+     */
+    public const WAYBILL = '700';
+
+    /**
+     * WCO Cargo Report Export, Air or Maritime (419)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * concerning the export of cargo carried by commercial means of transport
+     * over water or through the air, e.g. vessel or aircraft.
+     */
+    public const WCO_CARGO_REPORT_EXPORT_AIR_OR_MARITIME = '419';
+
+    /**
+     * WCO Cargo Report Export, Rail or Road (418)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * concerning the export of cargo carried by commercial means of transport
+     * over land, e.g. truck or train.
+     */
+    public const WCO_CARGO_REPORT_EXPORT_RAIL_OR_ROAD = '418';
+
+    /**
+     * WCO Cargo Report Import, Air or Maritime (422)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * concerning the import of cargo carried by commercial means of transport
+     * over water or through the air, e.g. vessel or aircraft.
+     */
+    public const WCO_CARGO_REPORT_IMPORT_AIR_OR_MARITIME = '422';
+
+    /**
+     * WCO Cargo Report Import, Rail or Road (421)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * concerning the import of cargo carried by commercial means of transport
+     * over land, e.g. truck or train.
+     */
+    public const WCO_CARGO_REPORT_IMPORT_RAIL_OR_ROAD = '421';
+
+    /**
+     * WCO Conveyance Arrival Report (524)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * regarding the conveyance arriving in a Customs territory.
+     */
+    public const WCO_CONVEYANCE_ARRIVAL_REPORT = '524';
+
+    /**
+     * WCO Conveyance Departure Report (525)
+     *
+     * Declaration, in accordance with the WCO Customs Data Model, to Customs
+     * regarding the conveyance departing a Customs territory.
+     */
+    public const WCO_CONVEYANCE_DEPARTURE_REPORT = '525';
+
+    /**
+     * WCO first step of two-step export declaration (424)
+     *
+     * First part of a simplified declaration, in accordance with the WCO Customs
+     * Data Model, to Customs by which goods are declared for Customs export
+     * procedure based on the 1999 Kyoto Convention.
+     */
+    public const WCO_FIRST_STEP_OF_TWOSTEP_EXPORT_DECLARATION = '424';
+
+    /**
+     * WCO first step of two-step import declaration (497)
+     *
+     * First part of a simplified declaration, in accordance with the WCO Customs
+     * Data Model, to Customs by which goods are declared for Customs import
+     * procedure based on the 1999 Kyoto Convention.
+     */
+    public const WCO_FIRST_STEP_OF_TWOSTEP_IMPORT_DECLARATION = '497';
+
+    /**
+     * WCO one-step export declaration (423)
+     *
+     * Single step declaration, in accordance with the WCO Customs Data Model, to
+     * Customs by which goods are declared for a Customs export procedure based on
+     * the 1999 Kyoto Convention.
+     */
+    public const WCO_ONESTEP_EXPORT_DECLARATION = '423';
+
+    /**
+     * WCO one-step import declaration (496)
+     *
+     * Single step declaration, in accordance with the WCO Customs Data Model, to
+     * Customs by which goods are declared for Customs import procedure based on
+     * the 1999 Kyoto Convention.
+     */
+    public const WCO_ONESTEP_IMPORT_DECLARATION = '496';
+
+    /**
+     * WCO second step of two-step export declaration (495)
+     *
+     * Second part of a simplified declaration, in accordance with the WCO Customs
+     * Data Model, to Customs by which goods are declared for Customs export
+     * procedure based on the 1999 Kyoto Convention.
+     */
+    public const WCO_SECOND_STEP_OF_TWOSTEP_EXPORT_DECLARATION = '495';
+
+    /**
+     * WCO second step of two-step import declaration (498)
+     *
+     * Second part of a simplified declaration, in accordance with the WCO Customs
+     * Data Model, to Customs by which goods are declared for Customs import
+     * procedure based on the 1999 Kyoto Convention.
+     */
+    public const WCO_SECOND_STEP_OF_TWOSTEP_IMPORT_DECLARATION = '498';
+
+    /**
+     * Weight certificate (14)
+     *
+     * Certificate certifying the weight of goods.
+     */
+    public const WEIGHT_CERTIFICATE = '14';
+
+    /**
+     * Weight list (15)
+     *
+     * Document/message specifying the weight of goods.
+     */
+    public const WEIGHT_LIST = '15';
+
+    /**
+     * Wine certificate (268)
+     *
+     * Certificate attesting to the quality, origin or appellation of wine.
+     */
+    public const WINE_CERTIFICATE = '268';
+
+    /**
+     * Witness report (843)
+     *
+     * Document containing a report of a witness.
+     */
+    public const WITNESS_REPORT = '843';
+
+    /**
+     * Wool health certificate (269)
+     *
+     * Certificate attesting that wool is free from specified risks to human or
+     * animal health.
+     */
+    public const WOOL_HEALTH_CERTIFICATE = '269';
+
+    /**
+     * Written instructions in conformance with ADR article number 10385 (48)
+     *
+     * Written instructions relating to dangerous goods and defined in the
+     * European Agreement of Dangerous Transport by Road known as ADR (Accord
+     * europeen relatif au transport international des marchandises Dangereuses
+     * par Route).
+     */
+    public const WRITTEN_INSTRUCTIONS_IN_CONFORMANCE_WITH_ADR_ARTICLE_NUMBER = '48';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdLineStatusCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdLineStatusCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdLineStatusCodes.php	(revision 8542)
@@ -0,0 +1,830 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelists;
+
+/**
+ * Class representing list of codes specifying an action request/notification
+ * Name of list: UNTDID 1229 Action request/notification description code
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ * @see      https://service.unece.org/trade/untdid/d05a/tred/tred1229.htm
+ */
+class ZugferdLineStatusCodes
+{
+    /**
+     * Added (1)
+     *
+     * The information is to be or has been added.
+     */
+    public const ADDED = '1';
+
+    /**
+     * Not found (10)
+     *
+     * This line item is not found in the referenced message.
+     */
+    public const NOT_FOUND = '10';
+
+    /**
+     * Final response (100)
+     *
+     * The response is an final one.
+     */
+    public const FINAL_RESPON = '100';
+
+    /**
+     * Debit advice requested (101)
+     *
+     * A debit advice is requested for the transaction.
+     */
+    public const DEBIT_ADVICE_REQUES = '101';
+
+    /**
+     * Transaction not impacted (102)
+     *
+     * Advice that the transaction is not impacted.
+     */
+    public const TRANSA_NOT_IMPACT = '102';
+
+    /**
+     * Patient to be notified (103)
+     *
+     * The action to take is to notify the patient.
+     */
+    public const PATIEN_TO_BE_NOTIFI = '103';
+
+    /**
+     * Healthcare provider to be notified (104)
+     *
+     * The action to take is to notify the healthcare provider.
+     */
+    public const HEALTH_PROVID_TO_BE_NOTIFI = '104';
+
+    /**
+     * Usual general practitioner to be notified (105)
+     *
+     * The action to take is to notify the usual general practitioner.
+     */
+    public const USUAL_GENERA_PRACTI_TO_BE_NOTIFI = '105';
+
+    /**
+     * Advice without details (106)
+     *
+     * An advice without details is requested or notified.
+     */
+    public const ADVICE_WITHOU_DETAIL = '106';
+
+    /**
+     * Advice with details (107)
+     *
+     * An advice with details is requested or notified.
+     */
+    public const ADVICE_WITH_DETAIL = '107';
+
+    /**
+     * Amendment requested (108)
+     *
+     * An amendment is requested.
+     */
+    public const AMENDM_REQUES = '108';
+
+    /**
+     * For information (109)
+     *
+     * Included for information only.
+     */
+    public const FOR_INFORM = '109';
+
+    /**
+     * Not amended (11)
+     *
+     * This line is not amended by the buyer.
+     */
+    public const NOT_AMENDE = '11';
+
+    /**
+     * Withdraw (110)
+     *
+     * A code indicating discontinuance or retraction.
+     */
+    public const WITHDRAW = '110';
+
+    /**
+     * Delivery date change (111)
+     *
+     * The action / notiification is a change of the delivery date.
+     */
+    public const DELIVE_DATE_CHANGE = '111';
+
+    /**
+     * Quantity change (112)
+     *
+     * The action / notification is a change of quantity.
+     */
+    public const QUANTI_CHANGE = '112';
+
+    /**
+     * Line item numbers changed (12)
+     *
+     * Code specifying that the line item numbers have changed.
+     */
+    public const LINE_ITEM_NUMBER_CHANGE = '12';
+
+    /**
+     * Buyer has deducted amount (13)
+     *
+     * Buyer has deducted amount from payment.
+     */
+    public const BUYER_HAS_DEDUCT_AMOUNT = '13';
+
+    /**
+     * Buyer claims against invoice (14)
+     *
+     * Buyer has a claim against an outstanding invoice.
+     */
+    public const BUYER_CLAIMS_AGAINS_INVOIC = '14';
+
+    /**
+     * Charge back by seller (15)
+     *
+     * Factor has been requested to charge back the outstanding item.
+     */
+    public const CHARGE_BACK_BY_SELLER = '15';
+
+    /**
+     * Seller will issue credit note (16)
+     *
+     * Seller agrees to issue a credit note.
+     */
+    public const SELLER_WILL_ISSUE_CREDIT_NOTE = '16';
+
+    /**
+     * Terms changed for new terms (17)
+     *
+     * New settlement terms have been agreed.
+     */
+    public const TERMS_CHANGE_FOR_NEW_TERMS = '17';
+
+    /**
+     * Abide outcome of negotiations (18)
+     *
+     * Factor agrees to abide by the outcome of negotiations between seller and
+     * buyer.
+     */
+    public const ABIDE_OUTCOM_OF_NEGOTI = '18';
+
+    /**
+     * Seller rejects dispute (19)
+     *
+     * Seller does not accept validity of dispute.
+     */
+    public const SELLER_REJECT_DISPUT = '19';
+
+    /**
+     * Deleted (2)
+     *
+     * The information is to be or has been deleted.
+     */
+    public const DELETED = '2';
+
+    /**
+     * Settlement (20)
+     *
+     * The reported situation is settled.
+     */
+    public const SETTLEMENT = '20';
+
+    /**
+     * No delivery (21)
+     *
+     * Code indicating that no delivery will be required.
+     */
+    public const NO_DELIVE = '21';
+
+    /**
+     * Call-off delivery (22)
+     *
+     * A request for delivery of a particular quantity of goods to be delivered on
+     * a particular date (or within a particular period).
+     */
+    public const CALLOF_DELIVE = '22';
+
+    /**
+     * Proposed amendment (23)
+     *
+     * A code used to indicate an amendment suggested by the sender.
+     */
+    public const PROPOS_AMENDM = '23';
+
+    /**
+     * Accepted with amendment, no confirmation required (24)
+     *
+     * Accepted with changes which require no confirmation.
+     */
+    public const ACCEPT_WITH_AMENDM_NO_CONFIR_REQUIR = '24';
+
+    /**
+     * Equipment provisionally repaired (25)
+     *
+     * The equipment or component has been provisionally repaired.
+     */
+    public const EQUIPM_PROVIS_REPAIR = '25';
+
+    /**
+     * Included (26)
+     *
+     * Code indicating that the entity is included.
+     */
+    public const INCLUDED = '26';
+
+    /**
+     * Upon receipt and verification of documents we shall cover you when due as
+     * per your instructions (27)
+     *
+     * Upon receipt and verification of documents we shall cover you when due as
+     * per your instructions.
+     */
+    public const UPON_RECEIP_AND_VERIFI_OF_DOCUME_WE_SHALL_COVER_YOU_WHEN_DUE_AS_PER_YOUR_INSTRU = '27';
+
+    /**
+     * Upon receipt and verification of documents we shall authorize you to debit
+     * our account with you when due (28)
+     *
+     * Upon receipt and verification of documents we shall authorize you to debit
+     * our account with you when due
+     */
+    public const UPON_RECEIP_AND_VERIFI_OF_DOCUME_WE_SHALL_AUTHOR_YOU_TO_DEBIT_OUR_ACCOUN_WITH_YOU_WHEN_DUE = '28';
+
+    /**
+     * On receipt of your authenticated advice we shall cover you when due as per
+     * your instructions (29)
+     *
+     * On receipt of your authenticated advice we shall cover you when due as per
+     * your instructions
+     */
+    public const ON_RECEIP_OF_YOUR_AUTHEN_ADVICE_WE_SHALL_COVER_YOU_WHEN_DUE_AS_PER_YOUR_INSTRU = '29';
+
+    /**
+     * Changed (3)
+     *
+     * The information is to be or has been changed.
+     */
+    public const CHANGED = '3';
+
+    /**
+     * On receipt of your authenticated advice we shall authorize you to debit our
+     * account with you when due (30)
+     *
+     * On receipt of your authenticated advice we shall authorize you to debit our
+     * account with you when due
+     */
+    public const ON_RECEIP_OF_YOUR_AUTHEN_ADVICE_WE_SHALL_AUTHOR_YOU_TO_DEBIT_OUR_ACCOUN_WITH_YOU_WHEN_DUE = '30';
+
+    /**
+     * On receipt of your authenticated advice we shall credit your account with
+     * us when due (31)
+     *
+     * On receipt of your authenticated advice we shall credit your account with
+     * us when due
+     */
+    public const ON_RECEIP_OF_YOUR_AUTHEN_ADVICE_WE_SHALL_CREDIT_YOUR_ACCOUN_WITH_US_WHEN_DUE = '31';
+
+    /**
+     * Credit advice requested for direct debit (32)
+     *
+     * A credit advice is requested for the direct debit.
+     */
+    public const CREDIT_ADVICE_REQUES_FOR_DIRECT_DEBIT = '32';
+
+    /**
+     * Credit advice and acknowledgement for direct debit (33)
+     *
+     * A credit advice and acknowledgement are requested for the direct debit.
+     */
+    public const CREDIT_ADVICE_AND_ACKNOW_FOR_DIRECT_DEBIT = '33';
+
+    /**
+     * Inquiry (34)
+     *
+     * Request for information.
+     */
+    public const INQUIRY = '34';
+
+    /**
+     * Checked (35)
+     *
+     * Checked.
+     */
+    public const CHECKED = '35';
+
+    /**
+     * Not checked (36)
+     *
+     * Not checked.
+     */
+    public const NOT_CHECKE = '36';
+
+    /**
+     * Cancelled (37)
+     *
+     * Discontinued.
+     */
+    public const CANCELLED = '37';
+
+    /**
+     * Replaced (38)
+     *
+     * Provide a replacement.
+     */
+    public const REPLACED = '38';
+
+    /**
+     * New (39)
+     *
+     * Not existing before.
+     */
+    public const NEW = '39';
+
+    /**
+     * No action (4)
+     *
+     * This line item is not affected by the actual message.
+     */
+    public const NO_ACTION = '4';
+
+    /**
+     * Agreed (40)
+     *
+     * Consent.
+     */
+    public const AGREED = '40';
+
+    /**
+     * Proposed (41)
+     *
+     * Put forward for consideration.
+     */
+    public const PROPOSED = '41';
+
+    /**
+     * Already delivered (42)
+     *
+     * Delivery has taken place.
+     */
+    public const ALREAD_DELIVE = '42';
+
+    /**
+     * Additional subordinate structures will follow (43)
+     *
+     * Additional subordinate structures will follow the current hierarchy level.
+     */
+    public const ADDITI_SUBORD_STRUCT_WILL_FOLLOW = '43';
+
+    /**
+     * Additional subordinate structures will not follow (44)
+     *
+     * No additional subordinate structures will follow the current hierarchy
+     * level.
+     */
+    public const ADDITI_SUBORD_STRUCT_WILL_NOT_FOLLOW = '44';
+
+    /**
+     * Result opposed (45)
+     *
+     * A notification that the result is opposed.
+     */
+    public const RESULT_OPPOSE = '45';
+
+    /**
+     * Auction held (46)
+     *
+     * A notification that an auction was held.
+     */
+    public const AUCTIO_HELD = '46';
+
+    /**
+     * Legal action pursued (47)
+     *
+     * A notification that legal action has been pursued.
+     */
+    public const LEGAL_ACTION_PURSUE = '47';
+
+    /**
+     * Meeting held (48)
+     *
+     * A notification that a meeting was held.
+     */
+    public const MEETIN_HELD = '48';
+
+    /**
+     * Result set aside (49)
+     *
+     * A notification that the result has been set aside.
+     */
+    public const RESULT_SET_ASIDE = '49';
+
+    /**
+     * Accepted without amendment (5)
+     *
+     * This line item is entirely accepted by the seller.
+     */
+    public const ACCEPT_WITHOU_AMENDM = '5';
+
+    /**
+     * Result disputed (50)
+     *
+     * A notification that the result has been disputed.
+     */
+    public const RESULT_DISPUT = '50';
+
+    /**
+     * Countersued (51)
+     *
+     * A notification that a countersuit has been filed.
+     */
+    public const COUNTERSUED = '51';
+
+    /**
+     * Pending (52)
+     *
+     * A notification that an action is awaiting settlement.
+     */
+    public const PENDING = '52';
+
+    /**
+     * Court action dismissed (53)
+     *
+     * A notification that a court action will no longer be heard.
+     */
+    public const COURT_ACTION_DISMIS = '53';
+
+    /**
+     * Referred item, accepted (54)
+     *
+     * The item being referred to has been accepted.
+     */
+    public const REFERR_ITEM_ACCEPT = '54';
+
+    /**
+     * Referred item, rejected (55)
+     *
+     * The item being referred to has been rejected.
+     */
+    public const REFERR_ITEM_REJECT = '55';
+
+    /**
+     * Debit advice statement line (56)
+     *
+     * Notification that the statement line is a debit advice.
+     */
+    public const DEBIT_ADVICE_STATEM_LINE = '56';
+
+    /**
+     * Credit advice statement line (57)
+     *
+     * Notification that the statement line is a credit advice.
+     */
+    public const CREDIT_ADVICE_STATEM_LINE = '57';
+
+    /**
+     * Grouped credit advices (58)
+     *
+     * Notification that the credit advices are grouped.
+     */
+    public const GROUPE_CREDIT_ADVICE = '58';
+
+    /**
+     * Grouped debit advices (59)
+     *
+     * Notification that the debit advices are grouped.
+     */
+    public const GROUPE_DEBIT_ADVICE = '59';
+
+    /**
+     * Accepted with amendment (6)
+     *
+     * This line item is accepted but amended by the seller.
+     */
+    public const ACCEPT_WITH_AMENDM = '6';
+
+    /**
+     * Registered (60)
+     *
+     * The name is registered.
+     */
+    public const REGISTERED = '60';
+
+    /**
+     * Payment denied (61)
+     *
+     * The payment has been denied.
+     */
+    public const PAYMEN_DENIED = '61';
+
+    /**
+     * Approved as amended (62)
+     *
+     * Approved with modifications.
+     */
+    public const APPROV_AS_AMENDE = '62';
+
+    /**
+     * Approved as submitted (63)
+     *
+     * The request has been approved as submitted.
+     */
+    public const APPROV_AS_SUBMIT = '63';
+
+    /**
+     * Cancelled, no activity (64)
+     *
+     * Cancelled due to the lack of activity.
+     */
+    public const CANCEL_NO_ACTIVI = '64';
+
+    /**
+     * Under investigation (65)
+     *
+     * Investigation is being done.
+     */
+    public const UNDER_INVEST = '65';
+
+    /**
+     * Initial claim received (66)
+     *
+     * Notification that the initial claim was received.
+     */
+    public const INITIA_CLAIM_RECEIV = '66';
+
+    /**
+     * Not in process (67)
+     *
+     * Not in process.
+     */
+    public const NOT_IN_PROCES = '67';
+
+    /**
+     * Rejected, duplicate (68)
+     *
+     * Rejected because it is a duplicate.
+     */
+    public const REJECT_DUPLIC = '68';
+
+    /**
+     * Rejected, resubmit with corrections (69)
+     *
+     * Rejected but may be resubmitted when corrected.
+     */
+    public const REJECT_RESUBM_WITH_CORREC = '69';
+
+    /**
+     * Not accepted (7)
+     *
+     * This line item is not accepted by the seller.
+     */
+    public const NOT_ACCEPT = '7';
+
+    /**
+     * Pending, incomplete (70)
+     *
+     * Pending because of incomplete information.
+     */
+    public const PENDIN_INCOMP = '70';
+
+    /**
+     * Under field office investigation (71)
+     *
+     * Investigation by the field is being done.
+     */
+    public const UNDER_FIELD_OFFICE_INVEST = '71';
+
+    /**
+     * Pending, awaiting additional material (72)
+     *
+     * Pending awaiting receipt of additional material.
+     */
+    public const PENDIN_AWAITI_ADDITI_MATERI = '72';
+
+    /**
+     * Pending, awaiting review (73)
+     *
+     * Pending while awaiting review.
+     */
+    public const PENDIN_AWAITI_REVIEW = '73';
+
+    /**
+     * Reopened (74)
+     *
+     * Opened again.
+     */
+    public const REOPENED = '74';
+
+    /**
+     * Processed by primary, forwarded to additional payer(s) (75)
+     *
+     * This request has been processed by the primary payer and sent to additional
+     * payer(s).
+     */
+    public const PROCES_BY_PRIMAR_FORWAR_TO_ADDITI_PAYERS = '75';
+
+    /**
+     * Processed by secondary, forwarded to additional payer(s) (76)
+     *
+     * This request has been processed by the secondary payer and sent to
+     * additional payer(s).
+     */
+    public const PROCES_BY_SECOND_FORWAR_TO_ADDITI_PAYERS = '76';
+
+    /**
+     * Processed by tertiary, forwarded to additional payer(s) (77)
+     *
+     * This request has been processed by the tertiary payer and sent to
+     * additional payer(s).
+     */
+    public const PROCES_BY_TERTIA_FORWAR_TO_ADDITI_PAYERS = '77';
+
+    /**
+     * Previous payment decision reversed (78)
+     *
+     * A previous payment decision has been reversed.
+     */
+    public const PREVIO_PAYMEN_DECISI_REVERS = '78';
+
+    /**
+     * Not our claim, forwarded to another payer(s) (79)
+     *
+     * A request does not belong to this payer but has been forwarded to another
+     * payer(s).
+     */
+    public const NOT_OUR_CLAIM_FORWAR_TO_ANOTHE_PAYERS = '79';
+
+    /**
+     * Schedule only (8)
+     *
+     * Code specifying that the message is a schedule only.
+     */
+    public const SCHEDU_ONLY = '8';
+
+    /**
+     * Transferred to correct insurance carrier (80)
+     *
+     * The request has been transferred to the correct insurance carrier for
+     * processing.
+     */
+    public const TRANSF_TO_CORREC_INSURA_CARRIE = '80';
+
+    /**
+     * Not paid, predetermination pricing only (81)
+     *
+     * Payment has not been made and the enclosed response is predetermination
+     * pricing only.
+     */
+    public const NOT_PAID_PREDET_PRICIN_ONLY = '81';
+
+    /**
+     * Documentation claim (82)
+     *
+     * The claim is for documentation purposes only, no payment
+     */
+    public const DOCUME_CLAIM = '82';
+
+    /**
+     * Reviewed (83)
+     *
+     * Assessed.
+     */
+    public const REVIEWED = '83';
+
+    /**
+     * Repriced (84)
+     *
+     * This price was changed.
+     */
+    public const REPRICED = '84';
+
+    /**
+     * Audited (85)
+     *
+     * An official examination has occurred.
+     */
+    public const AUDITED = '85';
+
+    /**
+     * Conditionally paid (86)
+     *
+     * Payment has been conditionally made.
+     */
+    public const CONDIT_PAID = '86';
+
+    /**
+     * On appeal (87)
+     *
+     * Reconsideration of the decision has been applied for.
+     */
+    public const ON_APPEAL = '87';
+
+    /**
+     * Closed (88)
+     *
+     * Shut.
+     */
+    public const CLOSED = '88';
+
+    /**
+     * Reaudited (89)
+     *
+     * A subsequent official examination has occurred.
+     */
+    public const REAUDITED = '89';
+
+    /**
+     * Amendments (9)
+     *
+     * Code specifying that amendments are requested/notified.
+     */
+    public const AMENDMENTS = '9';
+
+    /**
+     * Reissued (90)
+     *
+     * Issued again.
+     */
+    public const REISSUED = '90';
+
+    /**
+     * Closed after reopening (91)
+     *
+     * Reopened and then closed.
+     */
+    public const CLOSED_AFTER_REOPEN = '91';
+
+    /**
+     * Redetermined (92)
+     *
+     * Determined again or differently.
+     */
+    public const REDETERMINED = '92';
+
+    /**
+     * Processed as primary (93)
+     *
+     * Processed as the first.
+     */
+    public const PROCES_AS_PRIMAR = '93';
+
+    /**
+     * Processed as secondary (94)
+     *
+     * Processed as the second.
+     */
+    public const PROCES_AS_SECOND = '94';
+
+    /**
+     * Processed as tertiary (95)
+     *
+     * Processed as the third.
+     */
+    public const PROCES_AS_TERTIA = '95';
+
+    /**
+     * Correction of error (96)
+     *
+     * A correction to information previously communicated which contained an
+     * error.
+     */
+    public const CORREC_OF_ERROR = '96';
+
+    /**
+     * Single credit item of a group (97)
+     *
+     * Notification that the credit item is a single credit item of a group of
+     * credit items.
+     */
+    public const SINGLE_CREDIT_ITEM_OF_A_GROUP = '97';
+
+    /**
+     * Single debit item of a group (98)
+     *
+     * Notification that the debit item is a single debit item of a group of debit
+     * items.
+     */
+    public const SINGLE_DEBIT_ITEM_OF_A_GROUP = '98';
+
+    /**
+     * Interim response (99)
+     *
+     * The response is an interim one.
+     */
+    public const INTERI_RESPON = '99';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatCategoryCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatCategoryCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatCategoryCodes.php	(revision 8542)
@@ -0,0 +1,185 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelists;
+
+/**
+ * Class representing list of duty or tax or fee category codes
+ * Name of list: UNTDID 5305 Duty or tax or fee category code
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ * @see      https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:untdid.5305_3
+ */
+class ZugferdVatCategoryCodes
+{
+    /**
+     * Canary Islands general indirect tax (L)
+     *
+     * Impuesto General Indirecto Canario (IGIC) is an indirect tax levied on
+     * goods and services supplied in the Canary Islands (Spain) by traders and
+     * professionals, as well as on import of goods.
+     */
+    public const CANA_ISLA_GENE_INDI_TAX = 'L';
+
+    /**
+     * Duty paid by supplier (C)
+     *
+     * Duty associated with shipment of goods is paid by the supplier; customer
+     * receives goods with duty paid.
+     */
+    public const DUTY_PAID_BY_SUPP = 'C';
+
+    /**
+     * Exempt for resale (AB)
+     *
+     * A tax category code indicating the item is tax exempt when the item is
+     * bought for future resale.
+     */
+    public const EXEM_FOR_RESA = 'AB';
+
+    /**
+     * Exempt from tax (E)
+     *
+     * Code specifying that taxes are not applicable.
+     */
+    public const EXEM_FROM_TAX = 'E';
+
+    /**
+     * Free export item, tax not charged (G)
+     *
+     * Code specifying that the item is free export and taxes are not charged.
+     */
+    public const FREE_EXPO_ITEM_TAX_NOT_CHAR = 'G';
+
+    /**
+     * Higher rate (H)
+     *
+     * Code specifying a higher rate of duty or tax or fee.
+     */
+    public const HIGH_RATE = 'H';
+
+    /**
+     * Lower rate (AA)
+     *
+     * Tax rate is lower than standard rate.
+     */
+    public const LOWE_RATE = 'AA';
+
+    /**
+     * Mixed tax rate (A)
+     *
+     * Code specifying that the rate is based on mixed tax.
+     */
+    public const MIXE_TAX_RATE = 'A';
+
+    /**
+     * Services outside scope of tax (O)
+     *
+     * Code specifying that taxes are not applicable to the services.
+     */
+    public const SERV_OUTS_SCOP_OF_TAX = 'O';
+
+    /**
+     * Standard rate (S)
+     *
+     * Code specifying the standard rate.
+     */
+    public const STAN_RATE = 'S';
+
+    /**
+     * Tax for production, services and importation in Ceuta and Melilla (M)
+     *
+     * Impuesto sobre la ProducciÃ³n, los Servicios y la ImportaciÃ³n (IPSI) is an
+     * indirect municipal tax, levied on the production, processing and import of
+     * all kinds of movable tangible property, the supply of services and the
+     * transfer of immovable property located in the cities of Ceuta and Melilla.
+     */
+    public const TAX_FOR_PROD_SERV_AND_IMPO_IN_CEUT_AND_MELI = 'M';
+
+    /**
+     * Transferred (VAT) (B)
+     *
+     * VAT not to be paid to the issuer of the invoice but directly to relevant
+     * tax authority.
+     */
+    public const TRAN_VAT = 'B';
+
+    /**
+     * Value Added Tax (VAT) due from a previous invoice (AD)
+     *
+     * A code to indicate that the Value Added Tax (VAT) amount of a previous
+     * invoice is to be paid.
+     */
+    public const VALU_ADDE_TAX_VAT_DUE_FROM_A_PREV_INVO = 'AD';
+
+    /**
+     * Value Added Tax (VAT) margin scheme - collectorâs items and antiques (J)
+     *
+     * Indication that the VAT margin scheme for collectorâs items and antiques
+     * is applied.
+     */
+    public const VALU_ADDE_TAX_VAT_MARG_SCHE_COLL_ITEM_AND_ANTI = 'J';
+
+    /**
+     * Value Added Tax (VAT) margin scheme - second-hand goods (F)
+     *
+     * Indication that the VAT margin scheme for second-hand goods is applied.
+     */
+    public const VALU_ADDE_TAX_VAT_MARG_SCHE_SECO_GOOD = 'F';
+
+    /**
+     * Value Added Tax (VAT) margin scheme - travel agents (D)
+     *
+     * Indication that the VAT margin scheme for travel agents is applied.
+     */
+    public const VALU_ADDE_TAX_VAT_MARG_SCHE_TRAV_AGEN = 'D';
+
+    /**
+     * Value Added Tax (VAT) margin scheme - works of art Margin scheme â Works
+     * of art (I)
+     *
+     * Indication that the VAT margin scheme for works of art is applied.
+     */
+    public const VALU_ADDE_TAX_VAT_MARG_SCHE_WORK_OF_ART_MARG_SCHE_WORK_OF_ART = 'I';
+
+    /**
+     * Value Added Tax (VAT) not now due for payment (AC)
+     *
+     * A code to indicate that the Value Added Tax (VAT) amount which is due on
+     * the current invoice is to be paid on receipt of a separate VAT payment
+     * request.
+     */
+    public const VALU_ADDE_TAX_VAT_NOT_NOW_DUE_FOR_PAYM = 'AC';
+
+    /**
+     * VAT exempt for EEA intra-community supply of goods and services (K)
+     *
+     * A tax category code indicating the item is VAT exempt due to an
+     * intra-community supply in the European Economic Area.
+     */
+    public const VAT_EXEM_FOR_EEA_INTR_SUPP_OF_GOOD_AND_SERV = 'K';
+
+    /**
+     * VAT Reverse Charge (AE)
+     *
+     * Code specifying that the standard VAT rate is levied from the invoicee.
+     */
+    public const VAT_REVE_CHAR = 'AE';
+
+    /**
+     * Zero rated goods (Z)
+     *
+     * Code specifying that the goods are at a zero rate.
+     */
+    public const ZERO_RATE_GOOD = 'Z';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatTypeCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatTypeCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelists/ZugferdVatTypeCodes.php	(revision 8542)
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelists;
+
+/**
+ * Class representing list of duty or tax or fee type name code
+ * Name of list: UNTDID 5153 Duty or tax or fee type name code
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ * @see      https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:untdid.5305_3
+ */
+class ZugferdVatTypeCodes
+{
+    /**
+     * Value added tax (VAT)
+     *
+     * A tax on domestic or imported goods applied to the value added
+     * at each stage in the production/distribution cycle.
+     */
+    public const VALUE_ADDED_TAX = 'VAT';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAccountingAccountsClassificationTypes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAccountingAccountsClassificationTypes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAccountingAccountsClassificationTypes.php	(revision 8542)
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing Accounting Account classifications
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdAccountingAccountsClassificationTypes: int
+{
+
+    /**
+     * The code indicates a general chart of accounts
+     */
+    case GENERAL_ACCOUNT_CHART_OF_ACCOUNTS = 1;
+
+    /**
+     * The code indicates a cost chart of accounts
+     */
+    case COST_ACCOUNTING_CHART_OF_ACCOUNTS = 2;
+
+    /**
+     * The code indicates a budget chart of accounts
+     */
+    case BUDGETARY_ACCOUNT_CHART_OF_ACCOUNTS = 3;
+
+    /**
+     * The code indicates a payable chart of accounts
+     */
+    case PAYABLE_ACCOUNT_CHART_OF_ACCOUNTS = 4;
+
+    /**
+     * The code indicates a receivable chart of accounts
+     */
+    case RECEIVABLE_ACCOUNT_CHART_OF_ACCOUNTS = 5;
+
+    /**
+     * The code indicates a job chart of accounts
+     */
+    case JOB_ACCOUNT_CHART_OF_ACCOUNTS = 6;
+
+    /**
+     * The code indicates a building site chart of accounts
+     */
+    case BUILDING_SITE_ACCOUNT_CHART_OF_ACCOUNTS = 7;
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAllowanceCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAllowanceCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdAllowanceCodes.php	(revision 8542)
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Allowance codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdAllowanceCodes: int
+{
+
+    /**
+     * Bonus for works ahead of schedule
+     */
+    case BONUS_FOR_WORKS_AHEAD_OF_SCHEDULE = 41;
+
+    /**
+     * Other bonus
+     */
+    case OTHER_BONUS = 42;
+
+    /**
+     * Manufacturerâs consumer discount
+     */
+    case MANUFACTURERS_CONSUMER_DISCOUNT = 60;
+
+    /**
+     * Due to military status
+     */
+    case DUE_TO_MILITARY_STATUS = 62;
+
+    /**
+     * Due to work accident
+     */
+    case DUE_TO_WORK_ACCIDENT = 63;
+
+    /**
+     * Special agreement
+     */
+    case SPECIAL_AGREEMENT = 64;
+
+    /**
+     * Production error discount
+     */
+    case PRODUCTION_ERROR_DISCOUNT = 65;
+
+    /**
+     * New outlet discount
+     */
+    case NEW_OUTLET_DISCOUNT = 66;
+
+    /**
+     * Sample discount
+     */
+    case SAMPLE_DISCOUNT = 67;
+
+    /**
+     * End-of-range discount
+     */
+    case ENDOFRANGE_DISCOUNT = 68;
+
+    /**
+     * Incoterm discount
+     */
+    case INCOTERM_DISCOUNT = 70;
+
+    /**
+     * Point of sales threshold allowance
+     */
+    case POINT_OF_SALES_THRESHOLD_ALLOWANCE = 71;
+
+    /**
+     * Material surcharge/deduction
+     */
+    case MATERIAL_SURCHARGE_DEDUCTION = 88;
+
+    /**
+     * Discount
+     */
+    case DISCOUNT = 95;
+
+    /**
+     * Special rebate
+     */
+    case SPECIAL_REBATE = 100;
+
+    /**
+     * Fixed long term
+     */
+    case FIXED_LONG_TERM = 102;
+
+    /**
+     * Temporary
+     */
+    case TEMPORARY = 103;
+
+    /**
+     * Standard
+     */
+    case STANDARD = 104;
+
+    /**
+     * Yearly turnover
+     */
+    case YEARLY_TURNOVER = 105;
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdChargeCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdChargeCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdChargeCodes.php	(revision 8542)
@@ -0,0 +1,908 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Charge codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdChargeCodes: string
+{
+
+    /**
+     * Advertising
+     */
+    case ADVERTISING = "AA";
+
+    /**
+     * Telecommunication
+     */
+    case TELECOMMUNICATION = "AAA";
+
+    /**
+     * Technical modification
+     */
+    case TECHNICAL_MODIFICATION = "AAC";
+
+    /**
+     * Job-order production
+     */
+    case JOBORDER_PRODUCTION = "AAD";
+
+    /**
+     * Outlays
+     */
+    case OUTLAYS = "AAE";
+
+    /**
+     * Off-premises
+     */
+    case OFFPREMISES = "AAF";
+
+    /**
+     * Additional processing
+     */
+    case ADDITIONAL_PROCESSING = "AAH";
+
+    /**
+     * Attesting
+     */
+    case ATTESTING = "AAI";
+
+    /**
+     * Acceptance
+     */
+    case ACCEPTANCE = "AAS";
+
+    /**
+     * Rush delivery
+     */
+    case RUSH_DELIVERY = "AAT";
+
+    /**
+     * Special construction
+     */
+    case SPECIAL_CONSTRUCTION = "AAV";
+
+    /**
+     * Airport facilities
+     */
+    case AIRPORT_FACILITIES = "AAY";
+
+    /**
+     * Concession
+     */
+    case CONCESSION = "AAZ";
+
+    /**
+     * Compulsory storage
+     */
+    case COMPULSORY_STORAGE = "ABA";
+
+    /**
+     * Fuel removal
+     */
+    case FUEL_REMOVAL = "ABB";
+
+    /**
+     * Into plane
+     */
+    case INTO_PLANE = "ABC";
+
+    /**
+     * Overtime
+     */
+    case OVERTIME = "ABD";
+
+    /**
+     * Tooling
+     */
+    case TOOLING = "ABF";
+
+    /**
+     * Miscellaneous
+     */
+    case MISCELLANEOUS = "ABK";
+
+    /**
+     * Additional packaging
+     */
+    case ADDITIONAL_PACKAGING = "ABL";
+
+    /**
+     * Dunnage
+     */
+    case DUNNAGE = "ABN";
+
+    /**
+     * Containerisation
+     */
+    case CONTAINERISATION = "ABR";
+
+    /**
+     * Carton packing
+     */
+    case CARTON_PACKING = "ABS";
+
+    /**
+     * Hessian wrapped
+     */
+    case HESSIAN_WRAPPED = "ABT";
+
+    /**
+     * Polyethylene wrap packing
+     */
+    case POLYETHYLENE_WRAP_PACKING = "ABU";
+
+    /**
+     * Miscellaneous treatment
+     */
+    case MISCELLANEOUS_TREATMENT = "ACF";
+
+    /**
+     * Enamelling treatment
+     */
+    case ENAMELLING_TREATMENT = "ACG";
+
+    /**
+     * Heat treatment
+     */
+    case HEAT_TREATMENT = "ACH";
+
+    /**
+     * Plating treatment
+     */
+    case PLATING_TREATMENT = "ACI";
+
+    /**
+     * Painting
+     */
+    case PAINTING = "ACJ";
+
+    /**
+     * Polishing
+     */
+    case POLISHING = "ACK";
+
+    /**
+     * Priming
+     */
+    case PRIMING = "ACL";
+
+    /**
+     * Preservation treatment
+     */
+    case PRESERVATION_TREATMENT = "ACM";
+
+    /**
+     * Fitting
+     */
+    case FITTING = "ACS";
+
+    /**
+     * Consolidation
+     */
+    case CONSOLIDATION = "ADC";
+
+    /**
+     * Bill of lading
+     */
+    case BILL_OF_LADING = "ADE";
+
+    /**
+     * Airbag
+     */
+    case AIRBAG = "ADJ";
+
+    /**
+     * Transfer
+     */
+    case TRANSFER = "ADK";
+
+    /**
+     * Slipsheet
+     */
+    case SLIPSHEET = "ADL";
+
+    /**
+     * Binding
+     */
+    case BINDING = "ADM";
+
+    /**
+     * Repair or replacement of broken returnable package
+     */
+    case REPAIR_OR_REPLACEMENT_OF_BROKEN_RETURNABLE_PACKAGE = "ADN";
+
+    /**
+     * Efficient logistics
+     */
+    case EFFICIENT_LOGISTICS = "ADO";
+
+    /**
+     * Merchandising
+     */
+    case MERCHANDISING = "ADP";
+
+    /**
+     * Product mix
+     */
+    case PRODUCT_MIX = "ADQ";
+
+    /**
+     * Other services
+     */
+    case OTHER_SERVICES = "ADR";
+
+    /**
+     * Pick-up
+     */
+    case PICKUP = "ADT";
+
+    /**
+     * Chronic illness
+     */
+    case CHRONIC_ILLNESS = "ADW";
+
+    /**
+     * New product introduction
+     */
+    case NEW_PRODUCT_INTRODUCTION = "ADY";
+
+    /**
+     * Direct delivery
+     */
+    case DIRECT_DELIVERY = "ADZ";
+
+    /**
+     * Diversion
+     */
+    case DIVERSION = "AEA";
+
+    /**
+     * Disconnect
+     */
+    case DISCONNECT = "AEB";
+
+    /**
+     * Distribution
+     */
+    case DISTRIBUTION = "AEC";
+
+    /**
+     * Handling of hazardous cargo
+     */
+    case HANDLING_OF_HAZARDOUS_CARGO = "AED";
+
+    /**
+     * Rents and leases
+     */
+    case RENTS_AND_LEASES = "AEF";
+
+    /**
+     * Location differential
+     */
+    case LOCATION_DIFFERENTIAL = "AEH";
+
+    /**
+     * Aircraft refueling
+     */
+    case AIRCRAFT_REFUELING = "AEI";
+
+    /**
+     * Fuel shipped into storage
+     */
+    case FUEL_SHIPPED_INTO_STORAGE = "AEJ";
+
+    /**
+     * Cash on delivery
+     */
+    case CASH_ON_DELIVERY = "AEK";
+
+    /**
+     * Small order processing service
+     */
+    case SMALL_ORDER_PROCESSING_SERVICE = "AEL";
+
+    /**
+     * Clerical or administrative services
+     */
+    case CLERICAL_OR_ADMINISTRATIVE_SERVICES = "AEM";
+
+    /**
+     * Guarantee
+     */
+    case GUARANTEE = "AEN";
+
+    /**
+     * Collection and recycling
+     */
+    case COLLECTION_AND_RECYCLING = "AEO";
+
+    /**
+     * Copyright fee collection
+     */
+    case COPYRIGHT_FEE_COLLECTION = "AEP";
+
+    /**
+     * Veterinary inspection service
+     */
+    case VETERINARY_INSPECTION_SERVICE = "AES";
+
+    /**
+     * Pensioner service
+     */
+    case PENSIONER_SERVICE = "AET";
+
+    /**
+     * Medicine free pass holder
+     */
+    case MEDICINE_FREE_PASS_HOLDER = "AEU";
+
+    /**
+     * Environmental protection service
+     */
+    case ENVIRONMENTAL_PROTECTION_SERVICE = "AEV";
+
+    /**
+     * Environmental clean-up service
+     */
+    case ENVIRONMENTAL_CLEANUP_SERVICE = "AEW";
+
+    /**
+     * National cheque processing service outside account area
+     */
+    case NATIONAL_CHEQUE_PROCESSING_SERVICE_OUTSIDE_ACCOUNT_AREA = "AEX";
+
+    /**
+     * National payment service outside account area
+     */
+    case NATIONAL_PAYMENT_SERVICE_OUTSIDE_ACCOUNT_AREA = "AEY";
+
+    /**
+     * National payment service within account area
+     */
+    case NATIONAL_PAYMENT_SERVICE_WITHIN_ACCOUNT_AREA = "AEZ";
+
+    /**
+     * Adjustments
+     */
+    case ADJUSTMENTS = "AJ";
+
+    /**
+     * Authentication
+     */
+    case AUTHENTICATION = "AU";
+
+    /**
+     * Cataloguing
+     */
+    case CATALOGUING = "CA";
+
+    /**
+     * Cartage
+     */
+    case CARTAGE = "CAB";
+
+    /**
+     * Certification
+     */
+    case CERTIFICATION = "CAD";
+
+    /**
+     * Certificate of conformance
+     */
+    case CERTIFICATE_OF_CONFORMANCE = "CAE";
+
+    /**
+     * Certificate of origin
+     */
+    case CERTIFICATE_OF_ORIGIN = "CAF";
+
+    /**
+     * Cutting
+     */
+    case CUTTING = "CAI";
+
+    /**
+     * Consular service
+     */
+    case CONSULAR_SERVICE = "CAJ";
+
+    /**
+     * Customer collection
+     */
+    case CUSTOMER_COLLECTION = "CAK";
+
+    /**
+     * Payroll payment service
+     */
+    case PAYROLL_PAYMENT_SERVICE = "CAL";
+
+    /**
+     * Cash transportation
+     */
+    case CASH_TRANSPORTATION = "CAM";
+
+    /**
+     * Home banking service
+     */
+    case HOME_BANKING_SERVICE = "CAN";
+
+    /**
+     * Bilateral agreement service
+     */
+    case BILATERAL_AGREEMENT_SERVICE = "CAO";
+
+    /**
+     * Insurance brokerage service
+     */
+    case INSURANCE_BROKERAGE_SERVICE = "CAP";
+
+    /**
+     * Cheque generation
+     */
+    case CHEQUE_GENERATION = "CAQ";
+
+    /**
+     * Preferential merchandising location
+     */
+    case PREFERENTIAL_MERCHANDISING_LOCATION = "CAR";
+
+    /**
+     * Crane
+     */
+    case CRANE = "CAS";
+
+    /**
+     * Special colour service
+     */
+    case SPECIAL_COLOUR_SERVICE = "CAT";
+
+    /**
+     * Sorting
+     */
+    case SORTING = "CAU";
+
+    /**
+     * Battery collection and recycling
+     */
+    case BATTERY_COLLECTION_AND_RECYCLING = "CAV";
+
+    /**
+     * Product take back fee
+     */
+    case PRODUCT_TAKE_BACK_FEE = "CAW";
+
+    /**
+     * Quality control released
+     */
+    case QUALITY_CONTROL_RELEASED = "CAX";
+
+    /**
+     * Quality control held
+     */
+    case QUALITY_CONTROL_HELD = "CAY";
+
+    /**
+     * Quality control embargo
+     */
+    case QUALITY_CONTROL_EMBARGO = "CAZ";
+
+    /**
+     * Car loading
+     */
+    case CAR_LOADING = "CD";
+
+    /**
+     * Cleaning
+     */
+    case CLEANING = "CG";
+
+    /**
+     * Cigarette stamping
+     */
+    case CIGARETTE_STAMPING = "CS";
+
+    /**
+     * Count and recount
+     */
+    case COUNT_AND_RECOUNT = "CT";
+
+    /**
+     * Layout/design
+     */
+    case LAYOUT_DESIGN = "DAB";
+
+    /**
+     * Assortment allowance
+     */
+    case ASSORTMENT_ALLOWANCE = "DAC";
+
+    /**
+     * Driver assigned unloading
+     */
+    case DRIVER_ASSIGNED_UNLOADING = "DAD";
+
+    /**
+     * Debtor bound
+     */
+    case DEBTOR_BOUND = "DAF";
+
+    /**
+     * Dealer allowance
+     */
+    case DEALER_ALLOWANCE = "DAG";
+
+    /**
+     * Allowance transferable to the consumer
+     */
+    case ALLOWANCE_TRANSFERABLE_TO_THE_CONSUMER = "DAH";
+
+    /**
+     * Growth of business
+     */
+    case GROWTH_OF_BUSINESS = "DAI";
+
+    /**
+     * Introduction allowance
+     */
+    case INTRODUCTION_ALLOWANCE = "DAJ";
+
+    /**
+     * Multi-buy promotion
+     */
+    case MULTIBUY_PROMOTION = "DAK";
+
+    /**
+     * Partnership
+     */
+    case PARTNERSHIP = "DAL";
+
+    /**
+     * Return handling
+     */
+    case RETURN_HANDLING = "DAM";
+
+    /**
+     * Minimum order not fulfilled charge
+     */
+    case MINIMUM_ORDER_NOT_FULFILLED_CHARGE = "DAN";
+
+    /**
+     * Point of sales threshold allowance
+     */
+    case POINT_OF_SALES_THRESHOLD_ALLOWANCE = "DAO";
+
+    /**
+     * Wholesaling discount
+     */
+    case WHOLESALING_DISCOUNT = "DAP";
+
+    /**
+     * Documentary credits transfer commission
+     */
+    case DOCUMENTARY_CREDITS_TRANSFER_COMMISSION = "DAQ";
+
+    /**
+     * Delivery
+     */
+    case DELIVERY = "DL";
+
+    /**
+     * Engraving
+     */
+    case ENGRAVING = "EG";
+
+    /**
+     * Expediting
+     */
+    case EXPEDITING = "EP";
+
+    /**
+     * Exchange rate guarantee
+     */
+    case EXCHANGE_RATE_GUARANTEE = "ER";
+
+    /**
+     * Fabrication
+     */
+    case FABRICATION = "FAA";
+
+    /**
+     * Freight equalization
+     */
+    case FREIGHT_EQUALIZATION = "FAB";
+
+    /**
+     * Freight extraordinary handling
+     */
+    case FREIGHT_EXTRAORDINARY_HANDLING = "FAC";
+
+    /**
+     * Freight service
+     */
+    case FREIGHT_SERVICE = "FC";
+
+    /**
+     * Filling/handling
+     */
+    case FILLING_HANDLING = "FH";
+
+    /**
+     * Financing
+     */
+    case FINANCING = "FI";
+
+    /**
+     * Grinding
+     */
+    case GRINDING = "GAA";
+
+    /**
+     * Hose
+     */
+    case HOSE = "HAA";
+
+    /**
+     * Handling
+     */
+    case HANDLING = "HD";
+
+    /**
+     * Hoisting and hauling
+     */
+    case HOISTING_AND_HAULING = "HH";
+
+    /**
+     * Installation
+     */
+    case INSTALLATION = "IAA";
+
+    /**
+     * Installation and warranty
+     */
+    case INSTALLATION_AND_WARRANTY = "IAB";
+
+    /**
+     * Inside delivery
+     */
+    case INSIDE_DELIVERY = "ID";
+
+    /**
+     * Inspection
+     */
+    case INSPECTION = "IF";
+
+    /**
+     * Installation and training
+     */
+    case INSTALLATION_AND_TRAINING = "IR";
+
+    /**
+     * Invoicing
+     */
+    case INVOICING = "IS";
+
+    /**
+     * Koshering
+     */
+    case KOSHERING = "KO";
+
+    /**
+     * Carrier count
+     */
+    case CARRIER_COUNT = "L1";
+
+    /**
+     * Labelling
+     */
+    case LABELLING = "LA";
+
+    /**
+     * Labour
+     */
+    case LABOUR = "LAA";
+
+    /**
+     * Repair and return
+     */
+    case REPAIR_AND_RETURN = "LAB";
+
+    /**
+     * Legalisation
+     */
+    case LEGALISATION = "LF";
+
+    /**
+     * Mounting
+     */
+    case MOUNTING = "MAE";
+
+    /**
+     * Mail invoice
+     */
+    case MAIL_INVOICE = "MI";
+
+    /**
+     * Mail invoice to each location
+     */
+    case MAIL_INVOICE_TO_EACH_LOCATION = "ML";
+
+    /**
+     * Non-returnable containers
+     */
+    case NONRETURNABLE_CONTAINERS = "NAA";
+
+    /**
+     * Outside cable connectors
+     */
+    case OUTSIDE_CABLE_CONNECTORS = "OA";
+
+    /**
+     * Invoice with shipment
+     */
+    case INVOICE_WITH_SHIPMENT = "PA";
+
+    /**
+     * Phosphatizing (steel treatment)
+     */
+    case PHOSPHATIZING_STEEL_TREATMENT = "PAA";
+
+    /**
+     * Packing
+     */
+    case PACKING = "PC";
+
+    /**
+     * Palletizing
+     */
+    case PALLETIZING = "PL";
+
+    /**
+     * Repacking
+     */
+    case REPACKING = "RAB";
+
+    /**
+     * Repair
+     */
+    case REPAIR = "RAC";
+
+    /**
+     * Returnable container
+     */
+    case RETURNABLE_CONTAINER = "RAD";
+
+    /**
+     * Restocking
+     */
+    case RESTOCKING = "RAF";
+
+    /**
+     * Re-delivery
+     */
+    case REDELIVERY = "RE";
+
+    /**
+     * Refurbishing
+     */
+    case REFURBISHING = "RF";
+
+    /**
+     * Rail wagon hire
+     */
+    case RAIL_WAGON_HIRE = "RH";
+
+    /**
+     * Loading
+     */
+    case LOADING = "RV";
+
+    /**
+     * Salvaging
+     */
+    case SALVAGING = "SA";
+
+    /**
+     * Shipping and handling
+     */
+    case SHIPPING_AND_HANDLING = "SAA";
+
+    /**
+     * Special packaging
+     */
+    case SPECIAL_PACKAGING = "SAD";
+
+    /**
+     * Stamping
+     */
+    case STAMPING = "SAE";
+
+    /**
+     * Consignee unload
+     */
+    case CONSIGNEE_UNLOAD = "SAI";
+
+    /**
+     * Shrink-wrap
+     */
+    case SHRINKWRAP = "SG";
+
+    /**
+     * Special handling
+     */
+    case SPECIAL_HANDLING = "SH";
+
+    /**
+     * Special finish
+     */
+    case SPECIAL_FINISH = "SM";
+
+    /**
+     * Set-up
+     */
+    case SETUP = "SU";
+
+    /**
+     * Tank renting
+     */
+    case TANK_RENTING = "TAB";
+
+    /**
+     * Testing
+     */
+    case TESTING = "TAC";
+
+    /**
+     * Transportation - third party billing
+     */
+    case TRANSPORTATION__THIRD_PARTY_BILLING = "TT";
+
+    /**
+     * Transportation by vendor
+     */
+    case TRANSPORTATION_BY_VENDOR = "TV";
+
+    /**
+     * Drop yard
+     */
+    case DROP_YARD = "V1";
+
+    /**
+     * Drop dock
+     */
+    case DROP_DOCK = "V2";
+
+    /**
+     * Warehousing
+     */
+    case WAREHOUSING = "WH";
+
+    /**
+     * Combine all same day shipment
+     */
+    case COMBINE_ALL_SAME_DAY_SHIPMENT = "XAA";
+
+    /**
+     * Split pick-up
+     */
+    case SPLIT_PICKUP = "YY";
+
+    /**
+     * Mutually defined
+     */
+    case MUTUALLY_DEFINED = "ZZZ";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCountryCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCountryCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCountryCodes.php	(revision 8542)
@@ -0,0 +1,1274 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Country Codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdCountryCodes: string
+{
+
+    /**
+     * Andorra
+     */
+    case ANDORRA = "AD";
+
+    /**
+     * United Arab Emirates (the)
+     */
+    case UNITED_ARAB_EMIRATES_THE = "AE";
+
+    /**
+     * Afghanistan
+     */
+    case AFGHANISTAN = "AF";
+
+    /**
+     * Antigua and Barbuda
+     */
+    case ANTIGUA_AND_BARBUDA = "AG";
+
+    /**
+     * Anguilla
+     */
+    case ANGUILLA = "AI";
+
+    /**
+     * Albania
+     */
+    case ALBANIA = "AL";
+
+    /**
+     * Armenia
+     */
+    case ARMENIA = "AM";
+
+    /**
+     * Angola
+     */
+    case ANGOLA = "AO";
+
+    /**
+     * Antarctica
+     */
+    case ANTARCTICA = "AQ";
+
+    /**
+     * Argentina
+     */
+    case ARGENTINA = "AR";
+
+    /**
+     * American Samoa
+     */
+    case AMERICAN_SAMOA = "AS";
+
+    /**
+     * Austria
+     */
+    case AUSTRIA = "AT";
+
+    /**
+     * Australia
+     */
+    case AUSTRALIA = "AU";
+
+    /**
+     * Aruba
+     */
+    case ARUBA = "AW";
+
+    /**
+     * Ã
+land Islands
+     */
+    case LAND_ISLANDS = "AX";
+
+    /**
+     * Azerbaijan
+     */
+    case AZERBAIJAN = "AZ";
+
+    /**
+     * Bosnia and Herzegovina
+     */
+    case BOSNIA_AND_HERZEGOVINA = "BA";
+
+    /**
+     * Barbados
+     */
+    case BARBADOS = "BB";
+
+    /**
+     * Bangladesh
+     */
+    case BANGLADESH = "BD";
+
+    /**
+     * Belgium
+     */
+    case BELGIUM = "BE";
+
+    /**
+     * Burkina Faso
+     */
+    case BURKINA_FASO = "BF";
+
+    /**
+     * Bulgaria
+     */
+    case BULGARIA = "BG";
+
+    /**
+     * Bahrain
+     */
+    case BAHRAIN = "BH";
+
+    /**
+     * Burundi
+     */
+    case BURUNDI = "BI";
+
+    /**
+     * Benin
+     */
+    case BENIN = "BJ";
+
+    /**
+     * Saint BarthÃ©lemy
+     */
+    case SAINT_BARTHLEMY = "BL";
+
+    /**
+     * Bermuda
+     */
+    case BERMUDA = "BM";
+
+    /**
+     * Brunei Darussalam
+     */
+    case BRUNEI_DARUSSALAM = "BN";
+
+    /**
+     * Bolivia (Plurinational State of)
+     */
+    case BOLIVIA_PLURINATIONAL_STATE_OF = "BO";
+
+    /**
+     * Bonaire, Sint Eustatius and Saba
+     */
+    case BONAIRE_SINT_EUSTATIUS_AND_SABA = "BQ";
+
+    /**
+     * Brazil
+     */
+    case BRAZIL = "BR";
+
+    /**
+     * Bahamas (the)
+     */
+    case BAHAMAS_THE = "BS";
+
+    /**
+     * Bhutan
+     */
+    case BHUTAN = "BT";
+
+    /**
+     * Bouvet Island
+     */
+    case BOUVET_ISLAND = "BV";
+
+    /**
+     * Botswana
+     */
+    case BOTSWANA = "BW";
+
+    /**
+     * Belarus
+     */
+    case BELARUS = "BY";
+
+    /**
+     * Belize
+     */
+    case BELIZE = "BZ";
+
+    /**
+     * Canada
+     */
+    case CANADA = "CA";
+
+    /**
+     * Cocos (Keeling) Islands (the)
+     */
+    case COCOS_KEELING_ISLANDS_THE = "CC";
+
+    /**
+     * Congo (the Democratic Republic of the)
+     */
+    case CONGO_THE_DEMOCRATIC_REPUBLIC_OF_THE = "CD";
+
+    /**
+     * Central African Republic (the)
+     */
+    case CENTRAL_AFRICAN_REPUBLIC_THE = "CF";
+
+    /**
+     * Congo (the)
+     */
+    case CONGO_THE = "CG";
+
+    /**
+     * Switzerland
+     */
+    case SWITZERLAND = "CH";
+
+    /**
+     * CÃŽte d'Ivoire
+     */
+    case CTE_DIVOIRE = "CI";
+
+    /**
+     * Cook Islands (the)
+     */
+    case COOK_ISLANDS_THE = "CK";
+
+    /**
+     * Chile
+     */
+    case CHILE = "CL";
+
+    /**
+     * Cameroon
+     */
+    case CAMEROON = "CM";
+
+    /**
+     * China
+     */
+    case CHINA = "CN";
+
+    /**
+     * Colombia
+     */
+    case COLOMBIA = "CO";
+
+    /**
+     * Costa Rica
+     */
+    case COSTA_RICA = "CR";
+
+    /**
+     * Cuba
+     */
+    case CUBA = "CU";
+
+    /**
+     * Cabo Verde
+     */
+    case CABO_VERDE = "CV";
+
+    /**
+     * CuraÃ§ao
+     */
+    case CURAAO = "CW";
+
+    /**
+     * Christmas Island
+     */
+    case CHRISTMAS_ISLAND = "CX";
+
+    /**
+     * Cyprus
+     */
+    case CYPRUS = "CY";
+
+    /**
+     * Czechia
+     */
+    case CZECHIA = "CZ";
+
+    /**
+     * Germany
+     */
+    case GERMANY = "DE";
+
+    /**
+     * Djibouti
+     */
+    case DJIBOUTI = "DJ";
+
+    /**
+     * Denmark
+     */
+    case DENMARK = "DK";
+
+    /**
+     * Dominica
+     */
+    case DOMINICA = "DM";
+
+    /**
+     * Dominican Republic (the)
+     */
+    case DOMINICAN_REPUBLIC_THE = "DO";
+
+    /**
+     * Algeria
+     */
+    case ALGERIA = "DZ";
+
+    /**
+     * Ecuador
+     */
+    case ECUADOR = "EC";
+
+    /**
+     * Estonia
+     */
+    case ESTONIA = "EE";
+
+    /**
+     * Egypt
+     */
+    case EGYPT = "EG";
+
+    /**
+     * Western Sahara*
+     */
+    case WESTERN_SAHARA = "EH";
+
+    /**
+     * Eritrea
+     */
+    case ERITREA = "ER";
+
+    /**
+     * Spain
+     */
+    case SPAIN = "ES";
+
+    /**
+     * Ethiopia
+     */
+    case ETHIOPIA = "ET";
+
+    /**
+     * Finland
+     */
+    case FINLAND = "FI";
+
+    /**
+     * Fiji
+     */
+    case FIJI = "FJ";
+
+    /**
+     * Falkland Islands (the) [Malvinas]
+     */
+    case FALKLAND_ISLANDS_THE_MALVINAS = "FK";
+
+    /**
+     * Micronesia (Federated States of)
+     */
+    case MICRONESIA_FEDERATED_STATES_OF = "FM";
+
+    /**
+     * Faroe Islands (the)
+     */
+    case FAROE_ISLANDS_THE = "FO";
+
+    /**
+     * France
+     */
+    case FRANCE = "FR";
+
+    /**
+     * Gabon
+     */
+    case GABON = "GA";
+
+    /**
+     * United Kingdom of Great Britain and Northern Ireland (the)
+     */
+    case UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND_THE = "GB";
+
+    /**
+     * Grenada
+     */
+    case GRENADA = "GD";
+
+    /**
+     * Georgia
+     */
+    case GEORGIA = "GE";
+
+    /**
+     * French Guiana
+     */
+    case FRENCH_GUIANA = "GF";
+
+    /**
+     * Guernsey
+     */
+    case GUERNSEY = "GG";
+
+    /**
+     * Ghana
+     */
+    case GHANA = "GH";
+
+    /**
+     * Gibraltar
+     */
+    case GIBRALTAR = "GI";
+
+    /**
+     * Greenland
+     */
+    case GREENLAND = "GL";
+
+    /**
+     * Gambia (the)
+     */
+    case GAMBIA_THE = "GM";
+
+    /**
+     * Guinea
+     */
+    case GUINEA = "GN";
+
+    /**
+     * Guadeloupe
+     */
+    case GUADELOUPE = "GP";
+
+    /**
+     * Equatorial Guinea
+     */
+    case EQUATORIAL_GUINEA = "GQ";
+
+    /**
+     * Greece
+     */
+    case GREECE = "GR";
+
+    /**
+     * South Georgia and the South Sandwich Islands
+     */
+    case SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS = "GS";
+
+    /**
+     * Guatemala
+     */
+    case GUATEMALA = "GT";
+
+    /**
+     * Guam
+     */
+    case GUAM = "GU";
+
+    /**
+     * Guinea-Bissau
+     */
+    case GUINEABISSAU = "GW";
+
+    /**
+     * Guyana
+     */
+    case GUYANA = "GY";
+
+    /**
+     * Hong Kong
+     */
+    case HONG_KONG = "HK";
+
+    /**
+     * Heard Island and McDonald Islands
+     */
+    case HEARD_ISLAND_AND_MCDONALD_ISLANDS = "HM";
+
+    /**
+     * Honduras
+     */
+    case HONDURAS = "HN";
+
+    /**
+     * Croatia
+     */
+    case CROATIA = "HR";
+
+    /**
+     * Haiti
+     */
+    case HAITI = "HT";
+
+    /**
+     * Hungary
+     */
+    case HUNGARY = "HU";
+
+    /**
+     * Indonesia
+     */
+    case INDONESIA = "ID";
+
+    /**
+     * Ireland
+     */
+    case IRELAND = "IE";
+
+    /**
+     * Israel
+     */
+    case ISRAEL = "IL";
+
+    /**
+     * Isle of Man
+     */
+    case ISLE_OF_MAN = "IM";
+
+    /**
+     * India
+     */
+    case INDIA = "IN";
+
+    /**
+     * British Indian Ocean Territory (the)
+     */
+    case BRITISH_INDIAN_OCEAN_TERRITORY_THE = "IO";
+
+    /**
+     * Iraq
+     */
+    case IRAQ = "IQ";
+
+    /**
+     * Iran (Islamic Republic of)
+     */
+    case IRAN_ISLAMIC_REPUBLIC_OF = "IR";
+
+    /**
+     * Iceland
+     */
+    case ICELAND = "IS";
+
+    /**
+     * Italy
+     */
+    case ITALY = "IT";
+
+    /**
+     * Jersey
+     */
+    case JERSEY = "JE";
+
+    /**
+     * Jamaica
+     */
+    case JAMAICA = "JM";
+
+    /**
+     * Jordan
+     */
+    case JORDAN = "JO";
+
+    /**
+     * Japan
+     */
+    case JAPAN = "JP";
+
+    /**
+     * Kenya
+     */
+    case KENYA = "KE";
+
+    /**
+     * Kyrgyzstan
+     */
+    case KYRGYZSTAN = "KG";
+
+    /**
+     * Cambodia
+     */
+    case CAMBODIA = "KH";
+
+    /**
+     * Kiribati
+     */
+    case KIRIBATI = "KI";
+
+    /**
+     * Comoros (the)
+     */
+    case COMOROS_THE = "KM";
+
+    /**
+     * Saint Kitts and Nevis
+     */
+    case SAINT_KITTS_AND_NEVIS = "KN";
+
+    /**
+     * Korea (the Democratic People's Republic of)
+     */
+    case KOREA_THE_DEMOCRATIC_PEOPLES_REPUBLIC_OF = "KP";
+
+    /**
+     * Korea (the Republic of)
+     */
+    case KOREA_THE_REPUBLIC_OF = "KR";
+
+    /**
+     * Kuwait
+     */
+    case KUWAIT = "KW";
+
+    /**
+     * Cayman Islands (the)
+     */
+    case CAYMAN_ISLANDS_THE = "KY";
+
+    /**
+     * Kazakhstan
+     */
+    case KAZAKHSTAN = "KZ";
+
+    /**
+     * Lao People's Democratic Republic (the)
+     */
+    case LAO_PEOPLES_DEMOCRATIC_REPUBLIC_THE = "LA";
+
+    /**
+     * Lebanon
+     */
+    case LEBANON = "LB";
+
+    /**
+     * Saint Lucia
+     */
+    case SAINT_LUCIA = "LC";
+
+    /**
+     * Liechtenstein
+     */
+    case LIECHTENSTEIN = "LI";
+
+    /**
+     * Sri Lanka
+     */
+    case SRI_LANKA = "LK";
+
+    /**
+     * Liberia
+     */
+    case LIBERIA = "LR";
+
+    /**
+     * Lesotho
+     */
+    case LESOTHO = "LS";
+
+    /**
+     * Lithuania
+     */
+    case LITHUANIA = "LT";
+
+    /**
+     * Luxembourg
+     */
+    case LUXEMBOURG = "LU";
+
+    /**
+     * Latvia
+     */
+    case LATVIA = "LV";
+
+    /**
+     * Libya
+     */
+    case LIBYA = "LY";
+
+    /**
+     * Morocco
+     */
+    case MOROCCO = "MA";
+
+    /**
+     * Monaco
+     */
+    case MONACO = "MC";
+
+    /**
+     * Moldova (the Republic of)
+     */
+    case MOLDOVA_THE_REPUBLIC_OF = "MD";
+
+    /**
+     * Montenegro
+     */
+    case MONTENEGRO = "ME";
+
+    /**
+     * Saint Martin (French part)
+     */
+    case SAINT_MARTIN_FRENCH_PART = "MF";
+
+    /**
+     * Madagascar
+     */
+    case MADAGASCAR = "MG";
+
+    /**
+     * Marshall Islands (the)
+     */
+    case MARSHALL_ISLANDS_THE = "MH";
+
+    /**
+     * North Macedonia
+     */
+    case NORTH_MACEDONIA = "MK";
+
+    /**
+     * Mali
+     */
+    case MALI = "ML";
+
+    /**
+     * Myanmar
+     */
+    case MYANMAR = "MM";
+
+    /**
+     * Mongolia
+     */
+    case MONGOLIA = "MN";
+
+    /**
+     * Macao
+     */
+    case MACAO = "MO";
+
+    /**
+     * Northern Mariana Islands (the)
+     */
+    case NORTHERN_MARIANA_ISLANDS_THE = "MP";
+
+    /**
+     * Martinique
+     */
+    case MARTINIQUE = "MQ";
+
+    /**
+     * Mauritania
+     */
+    case MAURITANIA = "MR";
+
+    /**
+     * Montserrat
+     */
+    case MONTSERRAT = "MS";
+
+    /**
+     * Malta
+     */
+    case MALTA = "MT";
+
+    /**
+     * Mauritius
+     */
+    case MAURITIUS = "MU";
+
+    /**
+     * Maldives
+     */
+    case MALDIVES = "MV";
+
+    /**
+     * Malawi
+     */
+    case MALAWI = "MW";
+
+    /**
+     * Mexico
+     */
+    case MEXICO = "MX";
+
+    /**
+     * Malaysia
+     */
+    case MALAYSIA = "MY";
+
+    /**
+     * Mozambique
+     */
+    case MOZAMBIQUE = "MZ";
+
+    /**
+     * Namibia
+     */
+    case NAMIBIA = "NA";
+
+    /**
+     * New Caledonia
+     */
+    case NEW_CALEDONIA = "NC";
+
+    /**
+     * Niger (the)
+     */
+    case NIGER_THE = "NE";
+
+    /**
+     * Norfolk Island
+     */
+    case NORFOLK_ISLAND = "NF";
+
+    /**
+     * Nigeria
+     */
+    case NIGERIA = "NG";
+
+    /**
+     * Nicaragua
+     */
+    case NICARAGUA = "NI";
+
+    /**
+     * Netherlands (the)
+     */
+    case NETHERLANDS_THE = "NL";
+
+    /**
+     * Norway
+     */
+    case NORWAY = "NO";
+
+    /**
+     * Nepal
+     */
+    case NEPAL = "NP";
+
+    /**
+     * Nauru
+     */
+    case NAURU = "NR";
+
+    /**
+     * Niue
+     */
+    case NIUE = "NU";
+
+    /**
+     * New Zealand
+     */
+    case NEW_ZEALAND = "NZ";
+
+    /**
+     * Oman
+     */
+    case OMAN = "OM";
+
+    /**
+     * Panama
+     */
+    case PANAMA = "PA";
+
+    /**
+     * Peru
+     */
+    case PERU = "PE";
+
+    /**
+     * French Polynesia
+     */
+    case FRENCH_POLYNESIA = "PF";
+
+    /**
+     * Papua New Guinea
+     */
+    case PAPUA_NEW_GUINEA = "PG";
+
+    /**
+     * Philippines (the)
+     */
+    case PHILIPPINES_THE = "PH";
+
+    /**
+     * Pakistan
+     */
+    case PAKISTAN = "PK";
+
+    /**
+     * Poland
+     */
+    case POLAND = "PL";
+
+    /**
+     * Saint Pierre and Miquelon
+     */
+    case SAINT_PIERRE_AND_MIQUELON = "PM";
+
+    /**
+     * Pitcairn
+     */
+    case PITCAIRN = "PN";
+
+    /**
+     * Puerto Rico
+     */
+    case PUERTO_RICO = "PR";
+
+    /**
+     * Palestine, State of
+     */
+    case PALESTINE_STATE_OF = "PS";
+
+    /**
+     * Portugal
+     */
+    case PORTUGAL = "PT";
+
+    /**
+     * Palau
+     */
+    case PALAU = "PW";
+
+    /**
+     * Paraguay
+     */
+    case PARAGUAY = "PY";
+
+    /**
+     * Qatar
+     */
+    case QATAR = "QA";
+
+    /**
+     * RÃ©union
+     */
+    case RUNION = "RE";
+
+    /**
+     * Romania
+     */
+    case ROMANIA = "RO";
+
+    /**
+     * Serbia
+     */
+    case SERBIA = "RS";
+
+    /**
+     * Russian Federation (the)
+     */
+    case RUSSIAN_FEDERATION_THE = "RU";
+
+    /**
+     * Rwanda
+     */
+    case RWANDA = "RW";
+
+    /**
+     * Saudi Arabia
+     */
+    case SAUDI_ARABIA = "SA";
+
+    /**
+     * Solomon Islands
+     */
+    case SOLOMON_ISLANDS = "SB";
+
+    /**
+     * Seychelles
+     */
+    case SEYCHELLES = "SC";
+
+    /**
+     * Sudan (the)
+     */
+    case SUDAN_THE = "SD";
+
+    /**
+     * Sweden
+     */
+    case SWEDEN = "SE";
+
+    /**
+     * Singapore
+     */
+    case SINGAPORE = "SG";
+
+    /**
+     * Saint Helena, Ascension and Tristan da Cunha
+     */
+    case SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA = "SH";
+
+    /**
+     * Slovenia
+     */
+    case SLOVENIA = "SI";
+
+    /**
+     * Svalbard and Jan Mayen
+     */
+    case SVALBARD_AND_JAN_MAYEN = "SJ";
+
+    /**
+     * Slovakia
+     */
+    case SLOVAKIA = "SK";
+
+    /**
+     * Sierra Leone
+     */
+    case SIERRA_LEONE = "SL";
+
+    /**
+     * San Marino
+     */
+    case SAN_MARINO = "SM";
+
+    /**
+     * Senegal
+     */
+    case SENEGAL = "SN";
+
+    /**
+     * Somalia
+     */
+    case SOMALIA = "SO";
+
+    /**
+     * Suriname
+     */
+    case SURINAME = "SR";
+
+    /**
+     * South Sudan
+     */
+    case SOUTH_SUDAN = "SS";
+
+    /**
+     * Sao Tome and Principe
+     */
+    case SAO_TOME_AND_PRINCIPE = "ST";
+
+    /**
+     * El Salvador
+     */
+    case EL_SALVADOR = "SV";
+
+    /**
+     * Sint Maarten (Dutch part)
+     */
+    case SINT_MAARTEN_DUTCH_PART = "SX";
+
+    /**
+     * Syrian Arab Republic (the)
+     */
+    case SYRIAN_ARAB_REPUBLIC_THE = "SY";
+
+    /**
+     * Eswatini
+     */
+    case ESWATINI = "SZ";
+
+    /**
+     * Turks and Caicos Islands (the)
+     */
+    case TURKS_AND_CAICOS_ISLANDS_THE = "TC";
+
+    /**
+     * Chad
+     */
+    case CHAD = "TD";
+
+    /**
+     * French Southern Territories (the)
+     */
+    case FRENCH_SOUTHERN_TERRITORIES_THE = "TF";
+
+    /**
+     * Togo
+     */
+    case TOGO = "TG";
+
+    /**
+     * Thailand
+     */
+    case THAILAND = "TH";
+
+    /**
+     * Tajikistan
+     */
+    case TAJIKISTAN = "TJ";
+
+    /**
+     * Tokelau
+     */
+    case TOKELAU = "TK";
+
+    /**
+     * Timor-Leste
+     */
+    case TIMORLESTE = "TL";
+
+    /**
+     * Turkmenistan
+     */
+    case TURKMENISTAN = "TM";
+
+    /**
+     * Tunisia
+     */
+    case TUNISIA = "TN";
+
+    /**
+     * Tonga
+     */
+    case TONGA = "TO";
+
+    /**
+     * Turkey
+     */
+    case TURKEY = "TR";
+
+    /**
+     * Trinidad and Tobago
+     */
+    case TRINIDAD_AND_TOBAGO = "TT";
+
+    /**
+     * Tuvalu
+     */
+    case TUVALU = "TV";
+
+    /**
+     * Taiwan (Province of China)
+     */
+    case TAIWAN_PROVINCE_OF_CHINA = "TW";
+
+    /**
+     * Tanzania, the United Republic of
+     */
+    case TANZANIA_THE_UNITED_REPUBLIC_OF = "TZ";
+
+    /**
+     * Ukraine
+     */
+    case UKRAINE = "UA";
+
+    /**
+     * Uganda
+     */
+    case UGANDA = "UG";
+
+    /**
+     * United States Minor Outlying Islands (the)
+     */
+    case UNITED_STATES_MINOR_OUTLYING_ISLANDS_THE = "UM";
+
+    /**
+     * United States of America (the)
+     */
+    case UNITED_STATES_OF_AMERICA_THE = "US";
+
+    /**
+     * Uruguay
+     */
+    case URUGUAY = "UY";
+
+    /**
+     * Uzbekistan
+     */
+    case UZBEKISTAN = "UZ";
+
+    /**
+     * Holy See (the)
+     */
+    case HOLY_SEE_THE = "VA";
+
+    /**
+     * Saint Vincent and the Grenadines
+     */
+    case SAINT_VINCENT_AND_THE_GRENADINES = "VC";
+
+    /**
+     * Venezuela (Bolivarian Republic of)
+     */
+    case VENEZUELA_BOLIVARIAN_REPUBLIC_OF = "VE";
+
+    /**
+     * Virgin Islands (British)
+     */
+    case VIRGIN_ISLANDS_BRITISH = "VG";
+
+    /**
+     * Virgin Islands (U.S.)
+     */
+    case VIRGIN_ISLANDS_US = "VI";
+
+    /**
+     * Viet Nam
+     */
+    case VIET_NAM = "VN";
+
+    /**
+     * Vanuatu
+     */
+    case VANUATU = "VU";
+
+    /**
+     * Wallis and Futuna
+     */
+    case WALLIS_AND_FUTUNA = "WF";
+
+    /**
+     * Samoa
+     */
+    case SAMOA = "WS";
+
+    /**
+     * Yemen
+     */
+    case YEMEN = "YE";
+
+    /**
+     * Mayotte
+     */
+    case MAYOTTE = "YT";
+
+    /**
+     * South Africa
+     */
+    case SOUTH_AFRICA = "ZA";
+
+    /**
+     * Zambia
+     */
+    case ZAMBIA = "ZM";
+
+    /**
+     * Zimbabwe
+     */
+    case ZIMBABWE = "ZW";
+
+    /**
+     * Kosovo
+     */
+    case KOSOVO = "1A";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCurrencyCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCurrencyCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdCurrencyCodes.php	(revision 8542)
@@ -0,0 +1,918 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Currency Codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdCurrencyCodes: string
+{
+
+    /**
+     * UAE Dirham
+     */
+    case UAE_DIRHAM = "AED";
+
+    /**
+     * Afghani
+     */
+    case AFGHANI = "AFN";
+
+    /**
+     * Lek
+     */
+    case LEK = "ALL";
+
+    /**
+     * Armenian Dram
+     */
+    case ARMENIAN_DRAM = "AMD";
+
+    /**
+     * Netherlands Antillean Guilder
+     */
+    case NETHERLANDS_ANTILLEAN_GUILDER = "ANG";
+
+    /**
+     * Kwanza
+     */
+    case KWANZA = "AOA";
+
+    /**
+     * Argentine Peso
+     */
+    case ARGENTINE_PESO = "ARS";
+
+    /**
+     * Australian Dollar
+     */
+    case AUSTRALIAN_DOLLAR = "AUD";
+
+    /**
+     * Aruban Florin
+     */
+    case ARUBAN_FLORIN = "AWG";
+
+    /**
+     * Azerbaijan Manat
+     */
+    case AZERBAIJAN_MANAT = "AZN";
+
+    /**
+     * Convertible Mark
+     */
+    case CONVERTIBLE_MARK = "BAM";
+
+    /**
+     * Barbados Dollar
+     */
+    case BARBADOS_DOLLAR = "BBD";
+
+    /**
+     * Taka
+     */
+    case TAKA = "BDT";
+
+    /**
+     * Bulgarian Lev
+     */
+    case BULGARIAN_LEV = "BGN";
+
+    /**
+     * Bahraini Dinar
+     */
+    case BAHRAINI_DINAR = "BHD";
+
+    /**
+     * Burundi Franc
+     */
+    case BURUNDI_FRANC = "BIF";
+
+    /**
+     * Bermudian Dollar
+     */
+    case BERMUDIAN_DOLLAR = "BMD";
+
+    /**
+     * Brunei Dollar
+     */
+    case BRUNEI_DOLLAR = "BND";
+
+    /**
+     * Boliviano
+     */
+    case BOLIVIANO = "BOB";
+
+    /**
+     * Mvdol
+     */
+    case MVDOL = "BOV";
+
+    /**
+     * Brazilian Real
+     */
+    case BRAZILIAN_REAL = "BRL";
+
+    /**
+     * Bahamian Dollar
+     */
+    case BAHAMIAN_DOLLAR = "BSD";
+
+    /**
+     * Ngultrum
+     */
+    case NGULTRUM = "BTN";
+
+    /**
+     * Pula
+     */
+    case PULA = "BWP";
+
+    /**
+     * Belarusian Ruble
+     */
+    case BELARUSIAN_RUBLE = "BYN";
+
+    /**
+     * Belize Dollar
+     */
+    case BELIZE_DOLLAR = "BZD";
+
+    /**
+     * Canadian Dollar
+     */
+    case CANADIAN_DOLLAR = "CAD";
+
+    /**
+     * Congolese Franc
+     */
+    case CONGOLESE_FRANC = "CDF";
+
+    /**
+     * WIR Euro
+     */
+    case WIR_EURO = "CHE";
+
+    /**
+     * Swiss Franc
+     */
+    case SWISS_FRANC = "CHF";
+
+    /**
+     * WIR Franc
+     */
+    case WIR_FRANC = "CHW";
+
+    /**
+     * Unidad de Fomento
+     */
+    case UNIDAD_DE_FOMENTO = "CLF";
+
+    /**
+     * Chilean Peso
+     */
+    case CHILEAN_PESO = "CLP";
+
+    /**
+     * Yuan Renminbi
+     */
+    case YUAN_RENMINBI = "CNY";
+
+    /**
+     * Colombian Peso
+     */
+    case COLOMBIAN_PESO = "COP";
+
+    /**
+     * Unidad de Valor Real
+     */
+    case UNIDAD_DE_VALOR_REAL = "COU";
+
+    /**
+     * Costa Rican Colon
+     */
+    case COSTA_RICAN_COLON = "CRC";
+
+    /**
+     * Peso Convertible
+     */
+    case PESO_CONVERTIBLE = "CUC";
+
+    /**
+     * Cuban Peso
+     */
+    case CUBAN_PESO = "CUP";
+
+    /**
+     * Cabo Verde Escudo
+     */
+    case CABO_VERDE_ESCUDO = "CVE";
+
+    /**
+     * Czech Koruna
+     */
+    case CZECH_KORUNA = "CZK";
+
+    /**
+     * Djibouti Franc
+     */
+    case DJIBOUTI_FRANC = "DJF";
+
+    /**
+     * Danish Krone
+     */
+    case DANISH_KRONE = "DKK";
+
+    /**
+     * Dominican Peso
+     */
+    case DOMINICAN_PESO = "DOP";
+
+    /**
+     * Algerian Dinar
+     */
+    case ALGERIAN_DINAR = "DZD";
+
+    /**
+     * Egyptian Pound
+     */
+    case EGYPTIAN_POUND = "EGP";
+
+    /**
+     * Nakfa
+     */
+    case NAKFA = "ERN";
+
+    /**
+     * Ethiopian Birr
+     */
+    case ETHIOPIAN_BIRR = "ETB";
+
+    /**
+     * Euro
+     */
+    case EURO = "EUR";
+
+    /**
+     * Fiji Dollar
+     */
+    case FIJI_DOLLAR = "FJD";
+
+    /**
+     * Falkland Islands Pound
+     */
+    case FALKLAND_ISLANDS_POUND = "FKP";
+
+    /**
+     * Pound Sterling
+     */
+    case POUND_STERLING = "GBP";
+
+    /**
+     * Lari
+     */
+    case LARI = "GEL";
+
+    /**
+     * Ghana Cedi
+     */
+    case GHANA_CEDI = "GHS";
+
+    /**
+     * Gibraltar Pound
+     */
+    case GIBRALTAR_POUND = "GIP";
+
+    /**
+     * Dalasi
+     */
+    case DALASI = "GMD";
+
+    /**
+     * Guinean Franc
+     */
+    case GUINEAN_FRANC = "GNF";
+
+    /**
+     * Quetzal
+     */
+    case QUETZAL = "GTQ";
+
+    /**
+     * Guyana Dollar
+     */
+    case GUYANA_DOLLAR = "GYD";
+
+    /**
+     * Hong Kong Dollar
+     */
+    case HONG_KONG_DOLLAR = "HKD";
+
+    /**
+     * Lempira
+     */
+    case LEMPIRA = "HNL";
+
+    /**
+     * Kuna
+     */
+    case KUNA = "HRK";
+
+    /**
+     * Gourde
+     */
+    case GOURDE = "HTG";
+
+    /**
+     * Forint
+     */
+    case FORINT = "HUF";
+
+    /**
+     * Rupiah
+     */
+    case RUPIAH = "IDR";
+
+    /**
+     * New Israeli Sheqel
+     */
+    case NEW_ISRAELI_SHEQEL = "ILS";
+
+    /**
+     * Indian Rupee
+     */
+    case INDIAN_RUPEE = "INR";
+
+    /**
+     * Iraqi Dinar
+     */
+    case IRAQI_DINAR = "IQD";
+
+    /**
+     * Iranian Rial
+     */
+    case IRANIAN_RIAL = "IRR";
+
+    /**
+     * Iceland Krona
+     */
+    case ICELAND_KRONA = "ISK";
+
+    /**
+     * Jamaican Dollar
+     */
+    case JAMAICAN_DOLLAR = "JMD";
+
+    /**
+     * Jordanian Dinar
+     */
+    case JORDANIAN_DINAR = "JOD";
+
+    /**
+     * Yen
+     */
+    case YEN = "JPY";
+
+    /**
+     * Kenyan Shilling
+     */
+    case KENYAN_SHILLING = "KES";
+
+    /**
+     * Som
+     */
+    case SOM = "KGS";
+
+    /**
+     * Riel
+     */
+    case RIEL = "KHR";
+
+    /**
+     * Comorian Franc
+     */
+    case COMORIAN_FRANC = "KMF";
+
+    /**
+     * North Korean Won
+     */
+    case NORTH_KOREAN_WON = "KPW";
+
+    /**
+     * Won
+     */
+    case WON = "KRW";
+
+    /**
+     * Kuwaiti Dinar
+     */
+    case KUWAITI_DINAR = "KWD";
+
+    /**
+     * Cayman Islands Dollar
+     */
+    case CAYMAN_ISLANDS_DOLLAR = "KYD";
+
+    /**
+     * Tenge
+     */
+    case TENGE = "KZT";
+
+    /**
+     * Lao Kip
+     */
+    case LAO_KIP = "LAK";
+
+    /**
+     * Lebanese Pound
+     */
+    case LEBANESE_POUND = "LBP";
+
+    /**
+     * Sri Lanka Rupee
+     */
+    case SRI_LANKA_RUPEE = "LKR";
+
+    /**
+     * Liberian Dollar
+     */
+    case LIBERIAN_DOLLAR = "LRD";
+
+    /**
+     * Loti
+     */
+    case LOTI = "LSL";
+
+    /**
+     * Libyan Dinar
+     */
+    case LIBYAN_DINAR = "LYD";
+
+    /**
+     * Moroccan Dirham
+     */
+    case MOROCCAN_DIRHAM = "MAD";
+
+    /**
+     * Moldovan Leu
+     */
+    case MOLDOVAN_LEU = "MDL";
+
+    /**
+     * Malagasy Ariary
+     */
+    case MALAGASY_ARIARY = "MGA";
+
+    /**
+     * Denar
+     */
+    case DENAR = "MKD";
+
+    /**
+     * Kyat
+     */
+    case KYAT = "MMK";
+
+    /**
+     * Tugrik
+     */
+    case TUGRIK = "MNT";
+
+    /**
+     * Pataca
+     */
+    case PATACA = "MOP";
+
+    /**
+     * Ouguiya
+     */
+    case OUGUIYA = "MRU";
+
+    /**
+     * Mauritius Rupee
+     */
+    case MAURITIUS_RUPEE = "MUR";
+
+    /**
+     * Rufiyaa
+     */
+    case RUFIYAA = "MVR";
+
+    /**
+     * Malawi Kwacha
+     */
+    case MALAWI_KWACHA = "MWK";
+
+    /**
+     * Mexican Peso
+     */
+    case MEXICAN_PESO = "MXN";
+
+    /**
+     * Mexican Unidad de Inversion (UDI)
+     */
+    case MEXICAN_UNIDAD_DE_INVERSION_UDI = "MXV";
+
+    /**
+     * Malaysian Ringgit
+     */
+    case MALAYSIAN_RINGGIT = "MYR";
+
+    /**
+     * Mozambique Metical
+     */
+    case MOZAMBIQUE_METICAL = "MZN";
+
+    /**
+     * Namibia Dollar
+     */
+    case NAMIBIA_DOLLAR = "NAD";
+
+    /**
+     * Naira
+     */
+    case NAIRA = "NGN";
+
+    /**
+     * Cordoba Oro
+     */
+    case CORDOBA_ORO = "NIO";
+
+    /**
+     * Norwegian Krone
+     */
+    case NORWEGIAN_KRONE = "NOK";
+
+    /**
+     * Nepalese Rupee
+     */
+    case NEPALESE_RUPEE = "NPR";
+
+    /**
+     * New Zealand Dollar
+     */
+    case NEW_ZEALAND_DOLLAR = "NZD";
+
+    /**
+     * Rial Omani
+     */
+    case RIAL_OMANI = "OMR";
+
+    /**
+     * Balboa
+     */
+    case BALBOA = "PAB";
+
+    /**
+     * Sol
+     */
+    case SOL = "PEN";
+
+    /**
+     * Kina
+     */
+    case KINA = "PGK";
+
+    /**
+     * Philippine Peso
+     */
+    case PHILIPPINE_PESO = "PHP";
+
+    /**
+     * Pakistan Rupee
+     */
+    case PAKISTAN_RUPEE = "PKR";
+
+    /**
+     * Zloty
+     */
+    case ZLOTY = "PLN";
+
+    /**
+     * Guarani
+     */
+    case GUARANI = "PYG";
+
+    /**
+     * Qatari Rial
+     */
+    case QATARI_RIAL = "QAR";
+
+    /**
+     * Romanian Leu
+     */
+    case ROMANIAN_LEU = "RON";
+
+    /**
+     * Serbian Dinar
+     */
+    case SERBIAN_DINAR = "RSD";
+
+    /**
+     * Russian Ruble
+     */
+    case RUSSIAN_RUBLE = "RUB";
+
+    /**
+     * Rwanda Franc
+     */
+    case RWANDA_FRANC = "RWF";
+
+    /**
+     * Saudi Riyal
+     */
+    case SAUDI_RIYAL = "SAR";
+
+    /**
+     * Solomon Islands Dollar
+     */
+    case SOLOMON_ISLANDS_DOLLAR = "SBD";
+
+    /**
+     * Seychelles Rupee
+     */
+    case SEYCHELLES_RUPEE = "SCR";
+
+    /**
+     * Sudanese Pound
+     */
+    case SUDANESE_POUND = "SDG";
+
+    /**
+     * Swedish Krona
+     */
+    case SWEDISH_KRONA = "SEK";
+
+    /**
+     * Singapore Dollar
+     */
+    case SINGAPORE_DOLLAR = "SGD";
+
+    /**
+     * Saint Helena Pound
+     */
+    case SAINT_HELENA_POUND = "SHP";
+
+    /**
+     * Leone
+     */
+    case LEONE = "SLL";
+
+    /**
+     * Somali Shilling
+     */
+    case SOMALI_SHILLING = "SOS";
+
+    /**
+     * Surinam Dollar
+     */
+    case SURINAM_DOLLAR = "SRD";
+
+    /**
+     * South Sudanese Pound
+     */
+    case SOUTH_SUDANESE_POUND = "SSP";
+
+    /**
+     * Dobra
+     */
+    case DOBRA = "STN";
+
+    /**
+     * El Salvador Colon
+     */
+    case EL_SALVADOR_COLON = "SVC";
+
+    /**
+     * Syrian Pound
+     */
+    case SYRIAN_POUND = "SYP";
+
+    /**
+     * Lilangeni
+     */
+    case LILANGENI = "SZL";
+
+    /**
+     * Baht
+     */
+    case BAHT = "THB";
+
+    /**
+     * Somoni
+     */
+    case SOMONI = "TJS";
+
+    /**
+     * Turkmenistan New Manat
+     */
+    case TURKMENISTAN_NEW_MANAT = "TMT";
+
+    /**
+     * Tunisian Dinar
+     */
+    case TUNISIAN_DINAR = "TND";
+
+    /**
+     * Paâanga
+     */
+    case PAANGA = "TOP";
+
+    /**
+     * Turkish Lira
+     */
+    case TURKISH_LIRA = "TRY";
+
+    /**
+     * Trinidad and Tobago Dollar
+     */
+    case TRINIDAD_AND_TOBAGO_DOLLAR = "TTD";
+
+    /**
+     * New Taiwan Dollar
+     */
+    case NEW_TAIWAN_DOLLAR = "TWD";
+
+    /**
+     * Tanzanian Shilling
+     */
+    case TANZANIAN_SHILLING = "TZS";
+
+    /**
+     * Hryvnia
+     */
+    case HRYVNIA = "UAH";
+
+    /**
+     * Uganda Shilling
+     */
+    case UGANDA_SHILLING = "UGX";
+
+    /**
+     * US Dollar
+     */
+    case US_DOLLAR = "USD";
+
+    /**
+     * US Dollar (Next day)
+     */
+    case US_DOLLAR_NEXT_DAY = "USN";
+
+    /**
+     * Uruguay Peso en Unidades Indexadas (UI)
+     */
+    case URUGUAY_PESO_EN_UNIDADES_INDEXADAS_UI = "UYI";
+
+    /**
+     * Peso Uruguayo
+     */
+    case PESO_URUGUAYO = "UYU";
+
+    /**
+     * Unidad Previsional
+     */
+    case UNIDAD_PREVISIONAL = "UYW";
+
+    /**
+     * Uzbekistan Sum
+     */
+    case UZBEKISTAN_SUM = "UZS";
+
+    /**
+     * BolÃ­var Soberano
+     */
+    case BOLVAR_SOBERANO = "VES";
+
+    /**
+     * Dong
+     */
+    case DONG = "VND";
+
+    /**
+     * Vatu
+     */
+    case VATU = "VUV";
+
+    /**
+     * Tala
+     */
+    case TALA = "WST";
+
+    /**
+     * CFA Franc BEAC
+     */
+    case CFA_FRANC_BEAC = "XAF";
+
+    /**
+     * Silver
+     */
+    case SILVER = "XAG";
+
+    /**
+     * Gold
+     */
+    case GOLD = "XAU";
+
+    /**
+     * Bond Markets Unit European Composite Unit (EURCO)
+     */
+    case BOND_MARKETS_UNIT_EUROPEAN_COMPOSITE_UNIT_EURCO = "XBA";
+
+    /**
+     * Bond Markets Unit European Monetary Unit (E.M.U.-6)
+     */
+    case BOND_MARKETS_UNIT_EUROPEAN_MONETARY_UNIT_EMU6 = "XBB";
+
+    /**
+     * Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
+     */
+    case BOND_MARKETS_UNIT_EUROPEAN_UNIT_OF_ACCOUNT_9_EUA9 = "XBC";
+
+    /**
+     * Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
+     */
+    case BOND_MARKETS_UNIT_EUROPEAN_UNIT_OF_ACCOUNT_17_EUA17 = "XBD";
+
+    /**
+     * East Caribbean Dollar
+     */
+    case EAST_CARIBBEAN_DOLLAR = "XCD";
+
+    /**
+     * SDR (Special Drawing Right)
+     */
+    case SDR_SPECIAL_DRAWING_RIGHT = "XDR";
+
+    /**
+     * CFA Franc BCEAO
+     */
+    case CFA_FRANC_BCEAO = "XOF";
+
+    /**
+     * Palladium
+     */
+    case PALLADIUM = "XPD";
+
+    /**
+     * CFP Franc
+     */
+    case CFP_FRANC = "XPF";
+
+    /**
+     * Platinum
+     */
+    case PLATINUM = "XPT";
+
+    /**
+     * Sucre
+     */
+    case SUCRE = "XSU";
+
+    /**
+     * Codes specifically reserved for testing purposes
+     */
+    case CODES_SPECIFICALLY_RESERVED_FOR_TESTING_PURPOSES = "XTS";
+
+    /**
+     * ADB Unit of Account
+     */
+    case ADB_UNIT_OF_ACCOUNT = "XUA";
+
+    /**
+     * The codes assigned for transactions where no currency is involved
+     */
+    case THE_CODES_ASSIGNED_FOR_TRANSACTIONS_WHERE_NO_CURRENCY_IS_INVOLVED = "XXX";
+
+    /**
+     * Yemeni Rial
+     */
+    case YEMENI_RIAL = "YER";
+
+    /**
+     * Rand
+     */
+    case RAND = "ZAR";
+
+    /**
+     * Zambian Kwacha
+     */
+    case ZAMBIAN_KWACHA = "ZMW";
+
+    /**
+     * Zimbabwe Dollar
+     */
+    case ZIMBABWE_DOLLAR = "ZWL";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdDutyTaxFeeCategories.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdDutyTaxFeeCategories.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdDutyTaxFeeCategories.php	(revision 8542)
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Duty or tax or fee categories
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdDutyTaxFeeCategories: string
+{
+
+    /**
+     * Standard rate
+     */
+    case STANDARD_RATE = "S";
+
+    /**
+     * Zero rated goods
+     */
+    case ZERO_RATED_GOODS = "Z";
+
+    /**
+     * Exempt from tax
+     */
+    case EXEMPT_FROM_TAX = "E";
+
+    /**
+     * VAT Reverse charge
+     */
+    case VAT_REVERSE_CHARGE = "AE";
+
+    /**
+     * VAT exempt for EEA intra-community supply of goods and services
+     */
+    case VAT_EXEMPT_FOR_EEA_INTRACOMMUNITY_SUPPLY_OF_GOODS_AND_SERVICES = "K";
+
+    /**
+     * Free export item, tax not charged
+     */
+    case FREE_EXPORT_ITEM_TAX_NOT_CHARGED = "G";
+
+    /**
+     * Service outside scope of tax
+     */
+    case SERVICE_OUTSIDE_SCOPE_OF_TAX = "O";
+
+    /**
+     * Canary Islands general indirect tax
+     */
+    case CANARY_ISLANDS_GENERAL_INDIRECT_TAX = "L";
+
+    /**
+     * Tax for production, services and importation in Ceuta and Melilla
+     */
+    case TAX_FOR_PRODUCTION_SERVICES_AND_IMPORTATION_IN_CEUTA_AND_MELILLA = "M";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdElectronicAddressScheme.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdElectronicAddressScheme.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdElectronicAddressScheme.php	(revision 8542)
@@ -0,0 +1,479 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing EAS : Electronice Address Scheme
+ * For BT-34-1, BT-49-1
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   L. Ollivault
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdElectronicAddressScheme: string
+{
+
+    /**
+     * O.F.T.P. (ODETTE File Transfer Protocol)
+     */
+    case UNECE3155_AN = "AN";
+
+    /**
+     * X.400 address for mail text
+     */
+    case UNECE3155_AQ = "AQ";
+
+    /**
+     * AS2 exchange
+     */
+    case UNECE3155_AS = "AS";
+
+    /**
+     * File Transfer Protocol
+     */
+    case UNECE3155_AU = "AU";
+
+    /**
+     * Electronic mail (SMTP)
+     */
+    case UNECE3155_EM = "EM";
+
+    /**
+     * System Information et Repertoire des Entreprise et des Etablissements: SIRENE
+     */
+    case ICD_0002 = "0002";
+
+    /**
+     * Organisationsnummer
+     */
+    case ICD_0007 = "0007";
+
+    /**
+     * SIRET-CODE
+     */
+    case ICD_0009 = "0009";
+
+    /**
+     * LY-tunnus
+     */
+    case ICD_0037 = "0037";
+
+    /**
+     * Data Universal Numbering System (D-U-N-S Number)
+     */
+    case ICD_0060 = "0060";
+
+    /**
+     * EAN Location Code
+     */
+    case ICD_0088 = "0088";
+
+    /**
+     * DANISH CHAMBER OF COMMERCE Scheme (EDIRA compliant)
+     */
+    case ICD_0096 = "0096";
+
+    /**
+     * FTI - Ediforum Italia, (EDIRA compliant)
+     */
+    case ICD_0097 = "0097";
+
+    /**
+     * Vereniging van Kamers van Koophandel en Fabrieken in Nederland (Association of Chambers of Commerce and Industry in the Netherlands), Scheme (EDIRA compliant)
+     */
+    case ICD_0106 = "0106";
+
+    /**
+     * Directorates of the European Commission
+     */
+    case ICD_0130 = "0130";
+
+    /**
+     * SIA Object Identifiers
+     */
+    case ICD_0135 = "0135";
+
+    /**
+     * SECETI Object Identifiers
+     */
+    case ICD_0142 = "0142";
+
+    /**
+     * Australian Business Number (ABN) Scheme
+     */
+    case ICD_0151 = "0151";
+
+    /**
+     * NumÃ©ro d'identification suisse des enterprises (IDE), Swiss Unique Business Identification Number (UIDB)
+     */
+    case ICD_0183 = "0183";
+
+    /**
+     * DIGSTORG
+     */
+    case ICD_0184 = "0184";
+
+    /**
+     * Dutch Originator's Identification Number
+     */
+    case ICD_0190 = "0190";
+
+    /**
+     * Centre of Registers and Information Systems of the Ministry of Justice
+     */
+    case ICD_0191 = "0191";
+
+    /**
+     * Enhetsregisteret ved Bronnoysundregisterne
+     */
+    case ICD_0192 = "0192";
+
+    /**
+     * UBL.BE party identifier
+     */
+    case ICD_0193 = "0193";
+
+    /**
+     * KOIOS Open Technical Dictionary
+     */
+    case ICD_0194 = "0194";
+
+    /**
+     * Singapore UEN identifier
+     */
+    case ICD_0195 = "0195";
+
+    /**
+     * Kennitala - Iceland legal id for individuals and legal entities
+     */
+    case ICD_0196 = "0196";
+
+    /**
+     * ERSTORG
+     */
+    case ICD_0198 = "0198";
+
+    /**
+     * Legal Entity Identifier (LEI)
+     */
+    case ICD_0199 = "0199";
+
+    /**
+     * Legal entity code (Lithuania)
+     */
+    case ICD_0200 = "0200";
+
+    /**
+     * Codice Univoco UnitÃ  Organizzativa iPA
+     */
+    case ICD_0201 = "0201";
+
+    /**
+     * Indirizzo di Posta Elettronica Certificata
+     */
+    case ICD_0202 = "0202";
+
+    /**
+     * eDelivery Network Participant identifier
+     */
+    case ICD_0203 = "0203";
+
+    /**
+     * Leitweg-ID
+     */
+    case ICD_0204 = "0204";
+
+    /**
+     * Numero d'entreprise / ondernemingsnummer / Unternehmensnummer
+     */
+    case ICD_0208 = "0208";
+
+    /**
+     * GS1 identification keys
+     */
+    case ICD_0209 = "0209";
+
+    /**
+     * CODICE FISCALE
+     */
+    case ICD_0210 = "0210";
+
+    /**
+     * PARTITA IVA
+     */
+    case ICD_0211 = "0211";
+
+    /**
+     * Finnish Organization Identifier
+     */
+    case ICD_0212 = "0212";
+
+    /**
+     * Finnish Organization Value Add Tax Identifier
+     */
+    case ICD_0213 = "0213";
+
+    /**
+     * Danish Ministry of the Interior and Health
+     */
+    case PEPPOL_9901 = "9901";
+
+    /**
+     * The Danish Commerce and Companies Agency
+     */
+    case PEPPOL_9902 = "9902";
+
+    /**
+     * Danish Ministry of Taxation, Central Customs and Tax Administration
+     */
+    case PEPPOL_9904 = "9904";
+
+    /**
+     * Danish VANS providers
+     */
+    case PEPPOL_9905 = "9905";
+
+    /**
+     * Ufficio responsabile gestione partite IVA
+     */
+    case PEPPOL_9906 = "9906";
+
+    /**
+     * TAX Authority
+     */
+    case PEPPOL_9907 = "9907";
+
+    /**
+     * Hungary VAT number
+     */
+    case PEPPOL_9910 = "9910";
+
+    /**
+     * Business Registers Network
+     */
+    case PEPPOL_9913 = "9913";
+
+    /**
+     * Ãsterreichische Umsatzsteuer-Identifikationsnummer
+     */
+    case PEPPOL_9914 = "9914";
+
+    /**
+     * Ãsterreichisches Verwaltungs bzw. Organisationskennzeichen
+     */
+    case PEPPOL_9915 = "9915";
+
+    /**
+     * Kennitala - Iceland legal id for organizations and individuals
+     */
+    case PEPPOL_9917 = "9917";
+
+    /**
+     * SOCIETY FOR WORLDWIDE INTERBANK FINANCIAL, TELECOMMUNICATION S.W.I.F.T
+     */
+    case PEPPOL_9918 = "9918";
+
+    /**
+     * Kennziffer des Unternehmensregisters
+     */
+    case PEPPOL_9919 = "9919";
+
+    /**
+     * Agencia EspaÃ±ola de AdministraciÃ³n Tributaria
+     */
+    case PEPPOL_9920 = "9920";
+
+    /**
+     * Indice delle Pubbliche Amministrazioni
+     */
+    case PEPPOL_9921 = "9921";
+
+    /**
+     * Andorra VAT number
+     */
+    case PEPPOL_9922 = "9922";
+
+    /**
+     * Albania VAT number
+     */
+    case PEPPOL_9923 = "9923";
+
+    /**
+     * Bosnia and Herzegovina VAT number
+     */
+    case PEPPOL_9924 = "9924";
+
+    /**
+     * Belgium VAT number
+     */
+    case PEPPOL_9925 = "9925";
+
+    /**
+     * Bulgaria VAT number
+     */
+    case PEPPOL_9926 = "9926";
+
+    /**
+     * Switzerland VAT number
+     */
+    case PEPPOL_9927 = "9927";
+
+    /**
+     * Cyprus VAT number
+     */
+    case PEPPOL_9928 = "9928";
+
+    /**
+     * Czech Republic VAT number
+     */
+    case PEPPOL_9929 = "9929";
+
+    /**
+     * Germany VAT number
+     */
+    case PEPPOL_9930 = "9930";
+
+    /**
+     * Estonia VAT number
+     */
+    case PEPPOL_9931 = "9931";
+
+    /**
+     * United Kingdom VAT number
+     */
+    case PEPPOL_9932 = "9932";
+
+    /**
+     * Greece VAT number
+     */
+    case PEPPOL_9933 = "9933";
+
+    /**
+     * Croatia VAT number
+     */
+    case PEPPOL_9934 = "9934";
+
+    /**
+     * Ireland VAT number
+     */
+    case PEPPOL_9935 = "9935";
+
+    /**
+     * Liechtenstein VAT number
+     */
+    case PEPPOL_9936 = "9936";
+
+    /**
+     * Lithuania VAT number
+     */
+    case PEPPOL_9937 = "9937";
+
+    /**
+     * Luxemburg VAT number
+     */
+    case PEPPOL_9938 = "9938";
+
+    /**
+     * Latvia VAT number
+     */
+    case PEPPOL_9939 = "9939";
+
+    /**
+     * Monaco VAT number
+     */
+    case PEPPOL_9940 = "9940";
+
+    /**
+     * Montenegro VAT number
+     */
+    case PEPPOL_9941 = "9941";
+
+    /**
+     * Macedonia, the former Yugoslav Republic of VAT number
+     */
+    case PEPPOL_9942 = "9942";
+
+    /**
+     * Malta VAT number
+     */
+    case PEPPOL_9943 = "9943";
+
+    /**
+     * Netherlands VAT number
+     */
+    case PEPPOL_9944 = "9944";
+
+    /**
+     * Poland VAT number
+     */
+    case PEPPOL_9945 = "9945";
+
+    /**
+     * Portugal VAT number
+     */
+    case PEPPOL_9946 = "9946";
+
+    /**
+     * Romania VAT number
+     */
+    case PEPPOL_9947 = "9947";
+
+    /**
+     * Serbia VAT number
+     */
+    case PEPPOL_9948 = "9948";
+
+    /**
+     * Slovenia VAT number
+     */
+    case PEPPOL_9949 = "9949";
+
+    /**
+     * Slovakia VAT number
+     */
+    case PEPPOL_9950 = "9950";
+
+    /**
+     * San Marino VAT number
+     */
+    case PEPPOL_9951 = "9951";
+
+    /**
+     * Turkey VAT number
+     */
+    case PEPPOL_9952 = "9952";
+
+    /**
+     * Holy See (Vatican City State) VAT number
+     */
+    case PEPPOL_9953 = "9953";
+
+    /**
+     * Swedish VAT number
+     */
+    case PEPPOL_9955 = "9955";
+
+    /**
+     * Belgian Crossroad Bank of Enterprises
+     */
+    case PEPPOL_9956 = "9956";
+
+    /**
+     * French VAT number
+     */
+    case PEPPOL_9957 = "9957";
+
+    /**
+     * German Leitweg ID
+     */
+    case PEPPOL_9958 = "9958";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdInvoiceType.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdInvoiceType.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdInvoiceType.php	(revision 8542)
@@ -0,0 +1,328 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the different invoice types
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdInvoiceType: int
+{
+
+    /**
+     * Debit note related to goods or services (80)
+     * is an Invoice
+     */
+    case DEBITNOTERELATEDTOGOODSSERVICES = 80;
+
+    /**
+     * Credit note related to goods or services (81)
+     * is a Credit Note
+     */
+    case CREDITNOTERELATEDTOGOODSSERVICES = 81;
+
+    /**
+     * Metered services invoice (82)
+     * is an Invoice
+     */
+    case METEREDSERVICESINVOICE = 82;
+
+    /**
+     * Credit note related to financial adjustments (83)
+     * is a Credit Note
+     */
+    case CREDITNOTERELATEDTOFINANCIALADJUSTMENTS = 83;
+
+    /**
+     * Debit note related to financial adjustments (84)
+     * is an Invoice
+     */
+    case DEBITNOTERELATEDTOFINANCIALADJUSTMENTS = 84;
+
+    /**
+     * Invoicing data sheet (130)
+     * is an Invoice
+     */
+    case INVOICINGDATASHEET = 130;
+
+    /**
+     * Direct payment valuation (202)
+     * is an Invoice
+     */
+    case DIRECTPAYMENTVALUATION = 202;
+
+    /**
+     * Provisional payment valuation (203)
+     * is an Invoice
+     */
+    case PROVISIONALPAYMENTVALUATION = 203;
+
+    /**
+     * Payment valuation (204)
+     * is an Invoice
+     */
+    case PAYMENTVALUATION = 204;
+
+    /**
+     * Interim application for payment (211)
+     * is an Invoice
+     */
+    case INTERIMAPPLICATIONFORPAYMENT = 211;
+
+    /**
+     * Self billed credit note (261)
+     * is a Credit Note
+     *
+     * A document which indicates that the customer
+     * is claiming credit in a self billing environment
+     */
+    case SELFBILLEDCREDITNOTE = 261;
+
+    /**
+     * Consolidated credit note - goods and services (262)
+     * is a Credit Note
+     */
+    case CONSOLIDATEDCREDITNOTESGOODSERVICES = 262;
+
+    /**
+     * Price variation invoice (295)
+     * is an Invoice
+     */
+    case PRICEVARIATIONINVOICE = 295;
+
+    /**
+     * Credit note for price variation (296)
+     * is a Credit Note
+     */
+    case CREDITNOTEPRICEVARIATION = 296;
+
+    /**
+     * Delcredere credit note (308)
+     * is a Credit Note
+     */
+    case DELCREDERECREDITNOTE = 308;
+
+    /**
+     * Proforma invoice (325)
+     * is an Invoice
+     */
+    case PROFORMAINVOICE = 325;
+
+    /**
+     * Partial invoice (326)
+     * is an Invoice
+     *
+     * Teilrechnung
+     */
+    case PARTIALINVOICE = 326;
+
+    /**
+     * Commercial invoice (380)
+     * is an Invoice
+     *
+     * This is the main invoice type
+     *
+     * Handelsrechnung
+     */
+    case INVOICE = 380;
+
+    /**
+     * Credit note (381)
+     * is a Credit Note
+     *
+     * This is the main credit note type
+     *
+     * Gutschriftanzeige
+     */
+    case CREDITNOTE = 381;
+
+    /**
+     * Debit note (383)
+     * is an Invoice
+     *
+     * Belastungsanzeige
+     */
+    case DEBITNOTE = 383;
+
+    /**
+     * Corrected invoice (384)
+     * is an Invoice
+     *
+     * Rechnungskorrektur
+     */
+    case CORRECTION = 384;
+
+    /**
+     * Consolidated invoice (385)
+     * is an Invoice
+     */
+    case CONSOLIDATEDINVOICE = 385;
+
+    /**
+     * Prepayment invoice (386)
+     * is an Invoice
+     *
+     * Vorauszahlungsrechnung
+     * Eine Rechnung, die Vorauszahlung fÃŒr Produkte anfordert.
+     * Die darin enthaltenen BetrÃ€ge werden in der Schlussrechnung
+     * abgezogen.
+     *
+     * An invoice requesting prepayment for products.
+     * The amounts contained therein will be deducted from the final
+     * invoice.
+     */
+    case PREPAYMENTINVOICE = 386;
+
+    /**
+     * Hire invoice (387)
+     * is an Invoice
+     */
+    case HIREINVOICE = 387;
+
+    /**
+     * Tax invoice (388)
+     * is an Invoice
+     */
+    case TAXINVOICE = 388;
+
+    /**
+     * Self-billed invoice (389)
+     * is an Invoice
+     *
+     * Gutschrift (Selbst ausgestellte Rechnung)
+     * Gutschrift im Gutschriftverfahren
+     *
+     * Eine Rechnung, die der Zahlungspflichtige selbst ausstellt
+     * anstelle des VerkÃ€ufers.
+     *
+     * An invoice that the debtor issues himself instead of the
+     * seller.
+     */
+    case SELFBILLEDINVOICE = 389;
+
+    /**
+     * Delcredere invoice (390)
+     * is an Invoice
+     */
+    case DELCREDEREINVOICE = 390;
+
+    /**
+     * Factored invoice (393)
+     * is an Invoice
+     */
+    case FACTOREDINVOICE = 393;
+
+    /**
+     * Lease invoice (394)
+     * is an Invoice
+     */
+    case LEASEINVOICE = 394;
+
+    /**
+     * Consignment invoice (395)
+     * is an Invoice
+     */
+    case CONSIGNMENTINVOICE = 395;
+
+    /**
+     * Factored credit note (396)
+     * is a Credit Note
+     */
+    case FACTOREDCREDITNOTE = 396;
+
+    /**
+     * Optical Character Reading (OCR) payment credit note (420)
+     * is a Credit Note
+     */
+    case OCRPAYMENTCREDITNOTE = 420;
+
+    /**
+     * Debit advice (456)
+     * is an Invoice
+     */
+    case DEBITADVICE = 456;
+
+    /**
+     * Reversal of debit (457)
+     * is an Invoice
+     */
+    case REVERSALOFDEBIT = 457;
+
+    /**
+     * Reversal of credit (458)
+     * is a Credit Note
+     */
+    case REVERSALOFCREDIT = 458;
+
+    /**
+     * Self billed debit note (527)
+     * is an Invoice
+     */
+    case SELFBILLEDDEBITNOTE = 527;
+
+    /**
+     * Insurer's invoice (575)
+     * is an Invoice
+     */
+    case INSURERSINVOICE = 575;
+
+    /**
+     * Forwarder's invoice (623)
+     * is an Invoice
+     */
+    case FORWARDERSINVOICE = 623;
+
+    /**
+     * Port charges documents (633)
+     * is an Invoice
+     */
+    case PORTCHARGESDOCUMENTS = 633;
+
+    /**
+     * Invoice information for accounting purposes (751)
+     * is an Invoice
+     *
+     * Buchungshilfe - KEINE Rechnung
+     *
+     * FÃŒr die Profile BASIC WL und MINIMUM darf ausschlieÃlich dieser
+     * Code 751 "Buchungshilfe - KEINE Rechnung" verwendet werden, da diese
+     * Profile in DE steuerrechtlich keine Rechnungen darstellen!
+     *
+     * For the BASIC WL and MINIMUM profiles only this code 751 "Booking
+     * aid - NO invoice" may be used, since these profiles do not represent
+     * invoices for tax purposes in DE!
+     */
+    case INVOICEINFORMATION = 751;
+
+    /**
+     * Freight invoice (780)
+     * is an Invoice
+     */
+    case FREIGHTINVOICE = 780;
+
+    /**
+     * Customs invoice (935)
+     * is an Invoice
+     */
+    case CUSTOMSINVOICE = 935;
+
+    /**
+     * Corrected invoice (1380)
+     * is an Invoice
+     *
+     * Old ZUGFeRD variant, use Corrected Invoice (384) instead
+     */
+    case CORRECTIONOLD = 1380;
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdItemTypeIdentificationCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdItemTypeIdentificationCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdItemTypeIdentificationCodes.php	(revision 8542)
@@ -0,0 +1,928 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Item type identification codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdItemTypeIdentificationCodes: string
+{
+
+    /**
+     * Product version number
+     */
+    case UNTDID_7143_AA = 'AA';
+
+    /**
+     * Assembly
+     */
+    case UNTDID_7143_AB = 'AB';
+
+    /**
+     * HIBC (Health Industry Bar Code)
+     */
+    case UNTDID_7143_AC = 'AC';
+
+    /**
+     * Cold roll number
+     */
+    case UNTDID_7143_AD = 'AD';
+
+    /**
+     * Hot roll number
+     */
+    case UNTDID_7143_AE = 'AE';
+
+    /**
+     * Slab number
+     */
+    case UNTDID_7143_AF = 'AF';
+
+    /**
+     * Software revision number
+     */
+    case UNTDID_7143_AG = 'AG';
+
+    /**
+     * UPC (Universal Product Code) Consumer package code (1-5-5)
+     */
+    case UNTDID_7143_AH = 'AH';
+
+    /**
+     * UPC (Universal Product Code) Consumer package code (1-5-5-
+     */
+    case UNTDID_7143_AI = 'AI';
+
+    /**
+     * Sample number
+     */
+    case UNTDID_7143_AJ = 'AJ';
+
+    /**
+     * Pack number
+     */
+    case UNTDID_7143_AK = 'AK';
+
+    /**
+     * UPC (Universal Product Code) Shipping container code (1-2-
+     */
+    case UNTDID_7143_AL = 'AL';
+
+    /**
+     * UPC (Universal Product Code)/EAN (European article number)
+     */
+    case UNTDID_7143_AM = 'AM';
+
+    /**
+     * UPC (Universal Product Code) suffix
+     */
+    case UNTDID_7143_AN = 'AN';
+
+    /**
+     * State label code
+     */
+    case UNTDID_7143_AO = 'AO';
+
+    /**
+     * Heat number
+     */
+    case UNTDID_7143_AP = 'AP';
+
+    /**
+     * Coupon number
+     */
+    case UNTDID_7143_AQ = 'AQ';
+
+    /**
+     * Resource number
+     */
+    case UNTDID_7143_AR = 'AR';
+
+    /**
+     * Work task number
+     */
+    case UNTDID_7143_AS = 'AS';
+
+    /**
+     * Price look up number
+     */
+    case UNTDID_7143_AT = 'AT';
+
+    /**
+     * NSN (North Atlantic Treaty Organization Stock Number)
+     */
+    case UNTDID_7143_AU = 'AU';
+
+    /**
+     * Refined product code
+     */
+    case UNTDID_7143_AV = 'AV';
+
+    /**
+     * Exhibit
+     */
+    case UNTDID_7143_AW = 'AW';
+
+    /**
+     * End item
+     */
+    case UNTDID_7143_AX = 'AX';
+
+    /**
+     * Federal supply classification
+     */
+    case UNTDID_7143_AY = 'AY';
+
+    /**
+     * Engineering data list
+     */
+    case UNTDID_7143_AZ = 'AZ';
+
+    /**
+     * Milestone event number
+     */
+    case UNTDID_7143_BA = 'BA';
+
+    /**
+     * Lot number
+     */
+    case UNTDID_7143_BB = 'BB';
+
+    /**
+     * National drug code 4-4-2 format
+     */
+    case UNTDID_7143_BC = 'BC';
+
+    /**
+     * National drug code 5-3-2 format
+     */
+    case UNTDID_7143_BD = 'BD';
+
+    /**
+     * National drug code 5-4-1 format
+     */
+    case UNTDID_7143_BE = 'BE';
+
+    /**
+     * National drug code 5-4-2 format
+     */
+    case UNTDID_7143_BF = 'BF';
+
+    /**
+     * National drug code
+     */
+    case UNTDID_7143_BG = 'BG';
+
+    /**
+     * Part number
+     */
+    case UNTDID_7143_BH = 'BH';
+
+    /**
+     * Local Stock Number (LSN)
+     */
+    case UNTDID_7143_BI = 'BI';
+
+    /**
+     * Next higher assembly number
+     */
+    case UNTDID_7143_BJ = 'BJ';
+
+    /**
+     * Data category
+     */
+    case UNTDID_7143_BK = 'BK';
+
+    /**
+     * Control number
+     */
+    case UNTDID_7143_BL = 'BL';
+
+    /**
+     * Special material identification code
+     */
+    case UNTDID_7143_BM = 'BM';
+
+    /**
+     * Locally assigned control number
+     */
+    case UNTDID_7143_BN = 'BN';
+
+    /**
+     * Buyer's colour
+     */
+    case UNTDID_7143_BO = 'BO';
+
+    /**
+     * Buyer's part number
+     */
+    case UNTDID_7143_BP = 'BP';
+
+    /**
+     * Variable measure product code
+     */
+    case UNTDID_7143_BQ = 'BQ';
+
+    /**
+     * Financial phase
+     */
+    case UNTDID_7143_BR = 'BR';
+
+    /**
+     * Contract breakdown
+     */
+    case UNTDID_7143_BS = 'BS';
+
+    /**
+     * Technical phase
+     */
+    case UNTDID_7143_BT = 'BT';
+
+    /**
+     * Dye lot number
+     */
+    case UNTDID_7143_BU = 'BU';
+
+    /**
+     * Daily statement of activities
+     */
+    case UNTDID_7143_BV = 'BV';
+
+    /**
+     * Periodical statement of activities within a bilaterally
+     */
+    case UNTDID_7143_BW = 'BW';
+
+    /**
+     * Calendar week statement of activities
+     */
+    case UNTDID_7143_BX = 'BX';
+
+    /**
+     * Calendar month statement of activities
+     */
+    case UNTDID_7143_BY = 'BY';
+
+    /**
+     * Original equipment number
+     */
+    case UNTDID_7143_BZ = 'BZ';
+
+    /**
+     * Industry commodity code
+     */
+    case UNTDID_7143_CC = 'CC';
+
+    /**
+     * Commodity grouping
+     */
+    case UNTDID_7143_CG = 'CG';
+
+    /**
+     * Colour number
+     */
+    case UNTDID_7143_CL = 'CL';
+
+    /**
+     * Contract number
+     */
+    case UNTDID_7143_CR = 'CR';
+
+    /**
+     * Customs article number
+     */
+    case UNTDID_7143_CV = 'CV';
+
+    /**
+     * Drawing revision number
+     */
+    case UNTDID_7143_DR = 'DR';
+
+    /**
+     * Drawing
+     */
+    case UNTDID_7143_DW = 'DW';
+
+    /**
+     * Engineering change level
+     */
+    case UNTDID_7143_EC = 'EC';
+
+    /**
+     * Material code
+     */
+    case UNTDID_7143_EF = 'EF';
+
+    /**
+     * International Article Numbering Association (EAN)
+     */
+    case UNTDID_7143_EN = 'EN';
+
+    /**
+     * Fish species
+     */
+    case UNTDID_7143_FS = 'FS';
+
+    /**
+     * Buyer's internal product group code
+     */
+    case UNTDID_7143_GB = 'GB';
+
+    /**
+     * National product group code
+     */
+    case UNTDID_7143_GN = 'GN';
+
+    /**
+     * General specification number
+     */
+    case UNTDID_7143_GS = 'GS';
+
+    /**
+     * Harmonised system
+     */
+    case UNTDID_7143_HS = 'HS';
+
+    /**
+     * ISBN (International Standard Book Number)
+     */
+    case UNTDID_7143_IB = 'IB';
+
+    /**
+     * Buyer's item number
+     */
+    case UNTDID_7143_IN = 'IN';
+
+    /**
+     * ISSN (International Standard Serial Number)
+     */
+    case UNTDID_7143_IS = 'IS';
+
+    /**
+     * Buyer's style number
+     */
+    case UNTDID_7143_IT = 'IT';
+
+    /**
+     * Buyer's size code
+     */
+    case UNTDID_7143_IZ = 'IZ';
+
+    /**
+     * Machine number
+     */
+    case UNTDID_7143_MA = 'MA';
+
+    /**
+     * Manufacturer's (producer's) article number
+     */
+    case UNTDID_7143_MF = 'MF';
+
+    /**
+     * Model number
+     */
+    case UNTDID_7143_MN = 'MN';
+
+    /**
+     * Product/service identification number
+     */
+    case UNTDID_7143_MP = 'MP';
+
+    /**
+     * Batch number
+     */
+    case UNTDID_7143_NB = 'NB';
+
+    /**
+     * Customer order number
+     */
+    case UNTDID_7143_ON = 'ON';
+
+    /**
+     * Part number description
+     */
+    case UNTDID_7143_PD = 'PD';
+
+    /**
+     * Purchaser's order line number
+     */
+    case UNTDID_7143_PL = 'PL';
+
+    /**
+     * Purchase order number
+     */
+    case UNTDID_7143_PO = 'PO';
+
+    /**
+     * Promotional variant number
+     */
+    case UNTDID_7143_PV = 'PV';
+
+    /**
+     * Buyer's qualifier for size
+     */
+    case UNTDID_7143_QS = 'QS';
+
+    /**
+     * Returnable container number
+     */
+    case UNTDID_7143_RC = 'RC';
+
+    /**
+     * Release number
+     */
+    case UNTDID_7143_RN = 'RN';
+
+    /**
+     * Run number
+     */
+    case UNTDID_7143_RU = 'RU';
+
+    /**
+     * Record keeping of model year
+     */
+    case UNTDID_7143_RY = 'RY';
+
+    /**
+     * Supplier's article number
+     */
+    case UNTDID_7143_SA = 'SA';
+
+    /**
+     * Standard group of products (mixed assortment)
+     */
+    case UNTDID_7143_SG = 'SG';
+
+    /**
+     * SKU (Stock keeping unit)
+     */
+    case UNTDID_7143_SK = 'SK';
+
+    /**
+     * Serial number
+     */
+    case UNTDID_7143_SN = 'SN';
+
+    /**
+     * RSK number
+     */
+    case UNTDID_7143_SRS = 'SRS';
+
+    /**
+     * IFLS (Institut Francais du Libre Service) 5 digit product
+     */
+    case UNTDID_7143_SRT = 'SRT';
+
+    /**
+     * IFLS (Institut Francais du Libre Service) 9 digit product
+     */
+    case UNTDID_7143_SRU = 'SRU';
+
+    /**
+     * GS1 Global Trade Item Number
+     */
+    case UNTDID_7143_SRV = 'SRV';
+
+    /**
+     * EDIS (Energy Data Identification System)
+     */
+    case UNTDID_7143_SRW = 'SRW';
+
+    /**
+     * Slaughter number
+     */
+    case UNTDID_7143_SRX = 'SRX';
+
+    /**
+     * Official animal number
+     */
+    case UNTDID_7143_SRY = 'SRY';
+
+    /**
+     * Harmonized tariff schedule
+     */
+    case UNTDID_7143_SRZ = 'SRZ';
+
+    /**
+     * Supplier's supplier article number
+     */
+    case UNTDID_7143_SS = 'SS';
+
+    /**
+     * 46 Level DOT Code
+     */
+    case UNTDID_7143_SSA = 'SSA';
+
+    /**
+     * Airline Tariff 6D
+     */
+    case UNTDID_7143_SSB = 'SSB';
+
+    /**
+     * Title 49 Code of Federal Regulations
+     */
+    case UNTDID_7143_SSC = 'SSC';
+
+    /**
+     * International Civil Aviation Administration code
+     */
+    case UNTDID_7143_SSD = 'SSD';
+
+    /**
+     * Hazardous Materials ID DOT
+     */
+    case UNTDID_7143_SSE = 'SSE';
+
+    /**
+     * Endorsement
+     */
+    case UNTDID_7143_SSF = 'SSF';
+
+    /**
+     * Air Force Regulation 71-4
+     */
+    case UNTDID_7143_SSG = 'SSG';
+
+    /**
+     * Breed
+     */
+    case UNTDID_7143_SSH = 'SSH';
+
+    /**
+     * Chemical Abstract Service (CAS) registry number
+     */
+    case UNTDID_7143_SSI = 'SSI';
+
+    /**
+     * Engine model designation
+     */
+    case UNTDID_7143_SSJ = 'SSJ';
+
+    /**
+     * Institutional Meat Purchase Specifications (IMPS) Number
+     */
+    case UNTDID_7143_SSK = 'SSK';
+
+    /**
+     * Price Look-Up code (PLU)
+     */
+    case UNTDID_7143_SSL = 'SSL';
+
+    /**
+     * International Maritime Organization (IMO) Code
+     */
+    case UNTDID_7143_SSM = 'SSM';
+
+    /**
+     * Bureau of Explosives 600-A (rail)
+     */
+    case UNTDID_7143_SSN = 'SSN';
+
+    /**
+     * United Nations Dangerous Goods List
+     */
+    case UNTDID_7143_SSO = 'SSO';
+
+    /**
+     * International Code of Botanical Nomenclature (ICBN)
+     */
+    case UNTDID_7143_SSP = 'SSP';
+
+    /**
+     * International Code of Zoological Nomenclature (ICZN)
+     */
+    case UNTDID_7143_SSQ = 'SSQ';
+
+    /**
+     * International Code of Nomenclature for Cultivated Plants
+     */
+    case UNTDID_7143_SSR = 'SSR';
+
+    /**
+     * Distributorâs article identifier
+     */
+    case UNTDID_7143_SSS = 'SSS';
+
+    /**
+     * Norwegian Classification system ENVA
+     */
+    case UNTDID_7143_SST = 'SST';
+
+    /**
+     * Supplier assigned classification
+     */
+    case UNTDID_7143_SSU = 'SSU';
+
+    /**
+     * Mexican classification system AMECE
+     */
+    case UNTDID_7143_SSV = 'SSV';
+
+    /**
+     * German classification system CCG
+     */
+    case UNTDID_7143_SSW = 'SSW';
+
+    /**
+     * Finnish classification system EANFIN
+     */
+    case UNTDID_7143_SSX = 'SSX';
+
+    /**
+     * Canadian classification system ICC
+     */
+    case UNTDID_7143_SSY = 'SSY';
+
+    /**
+     * French classification system IFLS5
+     */
+    case UNTDID_7143_SSZ = 'SSZ';
+
+    /**
+     * Style number
+     */
+    case UNTDID_7143_ST = 'ST';
+
+    /**
+     * Dutch classification system CBL
+     */
+    case UNTDID_7143_STA = 'STA';
+
+    /**
+     * Japanese classification system JICFS
+     */
+    case UNTDID_7143_STB = 'STB';
+
+    /**
+     * European Union dairy subsidy eligibility classification
+     */
+    case UNTDID_7143_STC = 'STC';
+
+    /**
+     * GS1 Spain classification system
+     */
+    case UNTDID_7143_STD = 'STD';
+
+    /**
+     * GS1 Poland classification system
+     */
+    case UNTDID_7143_STE = 'STE';
+
+    /**
+     * Federal Agency on Technical Regulating and Metrology of the
+     */
+    case UNTDID_7143_STF = 'STF';
+
+    /**
+     * Efficient Consumer Response (ECR) Austria classification
+     */
+    case UNTDID_7143_STG = 'STG';
+
+    /**
+     * GS1 Italy classification system
+     */
+    case UNTDID_7143_STH = 'STH';
+
+    /**
+     * CPV (Common Procurement Vocabulary)
+     */
+    case UNTDID_7143_STI = 'STI';
+
+    /**
+     * IFDA (International Foodservice Distributors Association)
+     */
+    case UNTDID_7143_STJ = 'STJ';
+
+    /**
+     * AHFS (American Hospital Formulary Service) pharmacologic -
+     */
+    case UNTDID_7143_STK = 'STK';
+
+    /**
+     * ATC (Anatomical Therapeutic Chemical) classification system
+     */
+    case UNTDID_7143_STL = 'STL';
+
+    /**
+     * CLADIMED (Classification des Dispositifs MÃ©dicaux)
+     */
+    case UNTDID_7143_STM = 'STM';
+
+    /**
+     * CMDR (Canadian Medical Device Regulations) classification
+     */
+    case UNTDID_7143_STN = 'STN';
+
+    /**
+     * CNDM (Classificazione Nazionale dei Dispositivi Medici)
+     */
+    case UNTDID_7143_STO = 'STO';
+
+    /**
+     * UK DM&D (Dictionary of Medicines & Devices) standard coding
+     */
+    case UNTDID_7143_STP = 'STP';
+
+    /**
+     * eCl@ss
+     */
+    case UNTDID_7143_STQ = 'STQ';
+
+    /**
+     * EDMA (European Diagnostic Manufacturers Association)
+     */
+    case UNTDID_7143_STR = 'STR';
+
+    /**
+     * EGAR (European Generic Article Register)
+     */
+    case UNTDID_7143_STS = 'STS';
+
+    /**
+     * GMDN (Global Medical Devices Nomenclature)
+     */
+    case UNTDID_7143_STT = 'STT';
+
+    /**
+     * GPI (Generic Product Identifier)
+     */
+    case UNTDID_7143_STU = 'STU';
+
+    /**
+     * HCPCS (Healthcare Common Procedure Coding System)
+     */
+    case UNTDID_7143_STV = 'STV';
+
+    /**
+     * ICPS (International Classification for Patient Safety)
+     */
+    case UNTDID_7143_STW = 'STW';
+
+    /**
+     * MedDRA (Medical Dictionary for Regulatory Activities)
+     */
+    case UNTDID_7143_STX = 'STX';
+
+    /**
+     * Medical Columbus
+     */
+    case UNTDID_7143_STY = 'STY';
+
+    /**
+     * NAPCS (North American Product Classification System)
+     */
+    case UNTDID_7143_STZ = 'STZ';
+
+    /**
+     * NHS (National Health Services) eClass
+     */
+    case UNTDID_7143_SUA = 'SUA';
+
+    /**
+     * US FDA (Food and Drug Administration) Product Code
+     */
+    case UNTDID_7143_SUB = 'SUB';
+
+    /**
+     * SNOMED CT (Systematized Nomenclature of Medicine-Clinical
+     */
+    case UNTDID_7143_SUC = 'SUC';
+
+    /**
+     * UMDNS (Universal Medical Device Nomenclature System)
+     */
+    case UNTDID_7143_SUD = 'SUD';
+
+    /**
+     * GS1 Global Returnable Asset Identifier, non-serialised
+     */
+    case UNTDID_7143_SUE = 'SUE';
+
+    /**
+     * IMEI
+     */
+    case UNTDID_7143_SUF = 'SUF';
+
+    /**
+     * Waste Type (EMSA)
+     */
+    case UNTDID_7143_SUG = 'SUG';
+
+    /**
+     * Ship's store classification type
+     */
+    case UNTDID_7143_SUH = 'SUH';
+
+    /**
+     * Emergency fire code
+     */
+    case UNTDID_7143_SUI = 'SUI';
+
+    /**
+     * Emergency spillage code
+     */
+    case UNTDID_7143_SUJ = 'SUJ';
+
+    /**
+     * IMDG packing group
+     */
+    case UNTDID_7143_SUK = 'SUK';
+
+    /**
+     * MARPOL Code IBC
+     */
+    case UNTDID_7143_SUL = 'SUL';
+
+    /**
+     * IMDG subsidiary risk class
+     */
+    case UNTDID_7143_SUM = 'SUM';
+
+    /**
+     * Transport group number
+     */
+    case UNTDID_7143_TG = 'TG';
+
+    /**
+     * Taxonomic Serial Number
+     */
+    case UNTDID_7143_TSN = 'TSN';
+
+    /**
+     * IMDG main hazard class
+     */
+    case UNTDID_7143_TSO = 'TSO';
+
+    /**
+     * EU Combined Nomenclature
+     */
+    case UNTDID_7143_TSP = 'TSP';
+
+    /**
+     * Therapeutic classification number
+     */
+    case UNTDID_7143_TSQ = 'TSQ';
+
+    /**
+     * European Waste Catalogue
+     */
+    case UNTDID_7143_TSR = 'TSR';
+
+    /**
+     * Price grouping code
+     */
+    case UNTDID_7143_TSS = 'TSS';
+
+    /**
+     * UNSPSC
+     */
+    case UNTDID_7143_TST = 'TST';
+
+    /**
+     * Ultimate customer's article number
+     */
+    case UNTDID_7143_UA = 'UA';
+
+    /**
+     * UPC (Universal product code)
+     */
+    case UNTDID_7143_UP = 'UP';
+
+    /**
+     * Vendor item number
+     */
+    case UNTDID_7143_VN = 'VN';
+
+    /**
+     * Vendor's (seller's) part number
+     */
+    case UNTDID_7143_VP = 'VP';
+
+    /**
+     * Vendor's supplemental item number
+     */
+    case UNTDID_7143_VS = 'VS';
+
+    /**
+     * Vendor specification number
+     */
+    case UNTDID_7143_VX = 'VX';
+
+    /**
+     * Mutually defined
+     */
+    case UNTDID_7143_ZZZ = 'ZZZ';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdPaymentMeans.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdPaymentMeans.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdPaymentMeans.php	(revision 8542)
@@ -0,0 +1,433 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Payment means
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdPaymentMeans: int
+{
+
+    /**
+     * Instrument not defined
+     */
+    case UNTDID_4461_1 = 1;
+
+    /**
+     * Automated clearing house credit
+     */
+    case UNTDID_4461_2 = 2;
+
+    /**
+     * Automated clearing house debit
+     */
+    case UNTDID_4461_3 = 3;
+
+    /**
+     * ACH demand debit reversal
+     */
+    case UNTDID_4461_4 = 4;
+
+    /**
+     * ACH demand credit reversal
+     */
+    case UNTDID_4461_5 = 5;
+
+    /**
+     * ACH demand credit
+     */
+    case UNTDID_4461_6 = 6;
+
+    /**
+     * ACH demand debit
+     */
+    case UNTDID_4461_7 = 7;
+
+    /**
+     * Hold
+     */
+    case UNTDID_4461_8 = 8;
+
+    /**
+     * National or regional clearing
+     */
+    case UNTDID_4461_9 = 9;
+
+    /**
+     * In cash
+     */
+    case UNTDID_4461_10 = 10;
+
+    /**
+     * ACH savings credit reversal
+     */
+    case UNTDID_4461_11 = 11;
+
+    /**
+     * ACH savings debit reversal
+     */
+    case UNTDID_4461_12 = 12;
+
+    /**
+     * ACH savings credit
+     */
+    case UNTDID_4461_13 = 13;
+
+    /**
+     * ACH savings debit
+     */
+    case UNTDID_4461_14 = 14;
+
+    /**
+     * Bookentry credit
+     */
+    case UNTDID_4461_15 = 15;
+
+    /**
+     * Bookentry debit
+     */
+    case UNTDID_4461_16 = 16;
+
+    /**
+     * ACH demand cash concentration/disbursement (CCD) credit
+     */
+    case UNTDID_4461_17 = 17;
+
+    /**
+     * ACH demand cash concentration/disbursement (CCD) debit
+     */
+    case UNTDID_4461_18 = 18;
+
+    /**
+     * ACH demand corporate trade payment (CTP) credit
+     */
+    case UNTDID_4461_19 = 19;
+
+    /**
+     * Cheque
+     */
+    case UNTDID_4461_20 = 20;
+
+    /**
+     * Banker's draft
+     */
+    case UNTDID_4461_21 = 21;
+
+    /**
+     * Certified banker's draft
+     */
+    case UNTDID_4461_22 = 22;
+
+    /**
+     * Bank cheque (issued by a banking or similar establishment)
+     */
+    case UNTDID_4461_23 = 23;
+
+    /**
+     * Bill of exchange awaiting acceptance
+     */
+    case UNTDID_4461_24 = 24;
+
+    /**
+     * Certified cheque
+     */
+    case UNTDID_4461_25 = 25;
+
+    /**
+     * Local cheque
+     */
+    case UNTDID_4461_26 = 26;
+
+    /**
+     * ACH demand corporate trade payment (CTP) debit
+     */
+    case UNTDID_4461_27 = 27;
+
+    /**
+     * ACH demand corporate trade exchange (CTX) credit
+     */
+    case UNTDID_4461_28 = 28;
+
+    /**
+     * ACH demand corporate trade exchange (CTX) debit
+     */
+    case UNTDID_4461_29 = 29;
+
+    /**
+     * Credit transfer
+     */
+    case UNTDID_4461_30 = 30;
+
+    /**
+     * Debit transfer
+     */
+    case UNTDID_4461_31 = 31;
+
+    /**
+     * ACH demand cash concentration/disbursement plus (CCD+)
+     */
+    case UNTDID_4461_32 = 32;
+
+    /**
+     * ACH demand cash concentration/disbursement plus (CCD+)
+     */
+    case UNTDID_4461_33 = 33;
+
+    /**
+     * ACH prearranged payment and deposit (PPD)
+     */
+    case UNTDID_4461_34 = 34;
+
+    /**
+     * ACH savings cash concentration/disbursement (CCD) credit
+     */
+    case UNTDID_4461_35 = 35;
+
+    /**
+     * ACH savings cash concentration/disbursement (CCD) debit
+     */
+    case UNTDID_4461_36 = 36;
+
+    /**
+     * ACH savings corporate trade payment (CTP) credit
+     */
+    case UNTDID_4461_37 = 37;
+
+    /**
+     * ACH savings corporate trade payment (CTP) debit
+     */
+    case UNTDID_4461_38 = 38;
+
+    /**
+     * ACH savings corporate trade exchange (CTX) credit
+     */
+    case UNTDID_4461_39 = 39;
+
+    /**
+     * ACH savings corporate trade exchange (CTX) debit
+     */
+    case UNTDID_4461_40 = 40;
+
+    /**
+     * ACH savings cash concentration/disbursement plus (CCD+)
+     */
+    case UNTDID_4461_41 = 41;
+
+    /**
+     * Payment to bank account
+     */
+    case UNTDID_4461_42 = 42;
+
+    /**
+     * ACH savings cash concentration/disbursement plus (CCD+)
+     */
+    case UNTDID_4461_43 = 43;
+
+    /**
+     * Accepted bill of exchange
+     */
+    case UNTDID_4461_44 = 44;
+
+    /**
+     * Referenced home-banking credit transfer
+     */
+    case UNTDID_4461_45 = 45;
+
+    /**
+     * Interbank debit transfer
+     */
+    case UNTDID_4461_46 = 46;
+
+    /**
+     * Home-banking debit transfer
+     */
+    case UNTDID_4461_47 = 47;
+
+    /**
+     * Bank card
+     */
+    case UNTDID_4461_48 = 48;
+
+    /**
+     * Direct debit
+     */
+    case UNTDID_4461_49 = 49;
+
+    /**
+     * Payment by postgiro
+     */
+    case UNTDID_4461_50 = 50;
+
+    /**
+     * FR, norme 6 97-Telereglement CFONB (French Organisation for
+     */
+    case UNTDID_4461_51 = 51;
+
+    /**
+     * Urgent commercial payment
+     */
+    case UNTDID_4461_52 = 52;
+
+    /**
+     * Urgent Treasury Payment
+     */
+    case UNTDID_4461_53 = 53;
+
+    /**
+     * Credit card
+     */
+    case UNTDID_4461_54 = 54;
+
+    /**
+     * Debit card
+     */
+    case UNTDID_4461_55 = 55;
+
+    /**
+     * Bankgiro
+     */
+    case UNTDID_4461_56 = 56;
+
+    /**
+     * Standing agreement
+     */
+    case UNTDID_4461_57 = 57;
+
+    /**
+     * SEPA credit transfer
+     */
+    case UNTDID_4461_58 = 58;
+
+    /**
+     * SEPA direct debit
+     */
+    case UNTDID_4461_59 = 59;
+
+    /**
+     * Promissory note
+     */
+    case UNTDID_4461_60 = 60;
+
+    /**
+     * Promissory note signed by the debtor
+     */
+    case UNTDID_4461_61 = 61;
+
+    /**
+     * Promissory note signed by the debtor and endorsed by a bank
+     */
+    case UNTDID_4461_62 = 62;
+
+    /**
+     * Promissory note signed by the debtor and endorsed by a
+     */
+    case UNTDID_4461_63 = 63;
+
+    /**
+     * Promissory note signed by a bank
+     */
+    case UNTDID_4461_64 = 64;
+
+    /**
+     * Promissory note signed by a bank and endorsed by another
+     */
+    case UNTDID_4461_65 = 65;
+
+    /**
+     * Promissory note signed by a third party
+     */
+    case UNTDID_4461_66 = 66;
+
+    /**
+     * Promissory note signed by a third party and endorsed by a
+     */
+    case UNTDID_4461_67 = 67;
+
+    /**
+     * Online payment service
+     */
+    case UNTDID_4461_68 = 68;
+
+    /**
+     * Transfer Advice
+     */
+    case UNTDID_4461_69 = 69;
+
+    /**
+     * Bill drawn by the creditor on the debtor
+     */
+    case UNTDID_4461_70 = 70;
+
+    /**
+     * Bill drawn by the creditor on a bank
+     */
+    case UNTDID_4461_74 = 74;
+
+    /**
+     * Bill drawn by the creditor, endorsed by another bank
+     */
+    case UNTDID_4461_75 = 75;
+
+    /**
+     * Bill drawn by the creditor on a bank and endorsed by a
+     */
+    case UNTDID_4461_76 = 76;
+
+    /**
+     * Bill drawn by the creditor on a third party
+     */
+    case UNTDID_4461_77 = 77;
+
+    /**
+     * Bill drawn by creditor on third party, accepted and
+     */
+    case UNTDID_4461_78 = 78;
+
+    /**
+     * Not transferable banker's draft
+     */
+    case UNTDID_4461_91 = 91;
+
+    /**
+     * Not transferable local cheque
+     */
+    case UNTDID_4461_92 = 92;
+
+    /**
+     * Reference giro
+     */
+    case UNTDID_4461_93 = 93;
+
+    /**
+     * Urgent giro
+     */
+    case UNTDID_4461_94 = 94;
+
+    /**
+     * Free format giro
+     */
+    case UNTDID_4461_95 = 95;
+
+    /**
+     * Requested method for payment was not used
+     */
+    case UNTDID_4461_96 = 96;
+
+    /**
+     * Clearing between partners
+     */
+    case UNTDID_4461_97 = 97;
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdReferenceCodeQualifiers.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdReferenceCodeQualifiers.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdReferenceCodeQualifiers.php	(revision 8542)
@@ -0,0 +1,5947 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing list of reference code qualifiers
+ * Name of list: UNTDID 1153 Reference code qualifier
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ * @see      https://www.xrepository.de/details/urn:xoev-de:kosit:codeliste:untdid.1153
+ */
+enum ZugferdReferenceCodeQualifiers: string
+{
+
+    /**
+     * Accident reference number (APP)
+     *
+     * Reference number assigned to an accident.
+     */
+    case ACCI_REFE_NUMB = 'APP';
+
+    /**
+     * Account number (ADE)
+     *
+     * Identification number of an account.
+     */
+    case ACCO_NUMB = 'ADE';
+
+    /**
+     * Account party's bank reference (AGC)
+     *
+     * Reference number of the account party's bank.
+     */
+    case ACCO_PART_BANK_REFE = 'AGC';
+
+    /**
+     * Account party's reference (AFN)
+     *
+     * Reference of the account party.
+     */
+    case ACCO_PART_REFE = 'AFN';
+
+    /**
+     * Account payable number (AV)
+     *
+     * Reference number assigned by accounts payable department to the account of
+     * a specific creditor.
+     */
+    case ACCO_PAYA_NUMB = 'AV';
+
+    /**
+     * Account servicing bank's reference number (ANA)
+     *
+     * Reference number of the account servicing bank.
+     */
+    case ACCO_SERV_BANK_REFE_NUMB = 'ANA';
+
+    /**
+     * Accounting entry (AWQ)
+     *
+     * Accounting entry to which this item is related.
+     */
+    case ACCO_ENTR = 'AWQ';
+
+    /**
+     * Accounting file reference (AOD)
+     *
+     * Reference of an accounting file.
+     */
+    case ACCO_FILE_REFE = 'AOD';
+
+    /**
+     * Accounting transmission number (ASU)
+     *
+     * A number used to identify the transmission of an accounting book entry.
+     */
+    case ACCO_TRAN_NUMB = 'ASU';
+
+    /**
+     * Accounts receivable number (AP)
+     *
+     * Reference number assigned by accounts receivable department to the account
+     * of a specific debtor.
+     */
+    case ACCO_RECE_NUMB = 'AP';
+
+    /**
+     * Action authorization number (AKO)
+     *
+     * A reference number authorizing an action.
+     */
+    case ACTI_AUTH_NUMB = 'AKO';
+
+    /**
+     * Activite Principale Exercee (APE) identifier (AQQ)
+     *
+     * The French industry code for the main activity of a company.
+     */
+    case ACTI_PRIN_EXER_APE_IDEN = 'AQQ';
+
+    /**
+     * Additional reference number (ACD)
+     *
+     * [1010] Reference number provided in addition to another given reference.
+     */
+    case ADDI_REFE_NUMB = 'ACD';
+
+    /**
+     * Addressee reference (ACF)
+     *
+     * A reference number of an addressee.
+     */
+    case ADDR_REFE = 'ACF';
+
+    /**
+     * Administrative Reference Code (AWT)
+     *
+     * Reference number assigned by Customs to a âshipment of excise goodsâ.
+     */
+    case ADMI_REFE_CODE = 'AWT';
+
+    /**
+     * Advise through bank's reference (AMP)
+     *
+     * Financial institution through which the advising bank is to advise the
+     * documentary credit.
+     */
+    case ADVI_THRO_BANK_REFE = 'AMP';
+
+    /**
+     * Advising bank's reference (AWD)
+     *
+     * Reference number of the advising bank.
+     */
+    case ADVI_BANK_REFE = 'AWD';
+
+    /**
+     * Agency clause number (AJE)
+     *
+     * A number indicating a clause applicable to a particular agency.
+     */
+    case AGEN_CLAU_NUMB = 'AJE';
+
+    /**
+     * Agent's bank reference (AGD)
+     *
+     * Reference number issued by the agent's bank.
+     */
+    case AGEN_BANK_REFE = 'AGD';
+
+    /**
+     * Agent's reference (AGE)
+     *
+     * Reference number of the agent.
+     */
+    case AGEN_REFE = 'AGE';
+
+    /**
+     * AGERD (Aerospace Ground Equipment Requirement Data) number (ALU)
+     *
+     * Identifies the equipment required to conduct maintenance.
+     */
+    case AGER_AERO_GROU_EQUI_REQU_DATA_NUMB = 'ALU';
+
+    /**
+     * Agreement number (AJS)
+     *
+     * A number specifying an agreement between parties.
+     */
+    case AGRE_NUMB = 'AJS';
+
+    /**
+     * Agreement to pay number (AGA)
+     *
+     * A number that identifies an agreement to pay.
+     */
+    case AGRE_TO_PAY_NUMB = 'AGA';
+
+    /**
+     * Air cargo transfer manifest (AC)
+     *
+     * A number assigned to an air cargo list of goods to be transferred.
+     */
+    case AIR_CARG_TRAN_MANI = 'AC';
+
+    /**
+     * Air waybill number (AWB)
+     *
+     * Reference number assigned to an air waybill, see: 1001 = 740.
+     */
+    case AIR_WAYB_NUMB = 'AWB';
+
+    /**
+     * Airlines flight identification number (AF)
+     *
+     * (8028) Identification of a commercial flight by carrier code and number as
+     * assigned by the airline (IATA).
+     */
+    case AIRL_FLIG_IDEN_NUMB = 'AF';
+
+    /**
+     * Allocated seat (SEA)
+     *
+     * Reference to a seat allocated to a passenger.
+     */
+    case ALLO_SEAT = 'SEA';
+
+    /**
+     * Allotment identification (Air) (ABY)
+     *
+     * Reference assigned to guarantied capacity on one or more specific flights
+     * on specific date(s) to third parties as agents and other airlines.
+     */
+    case ALLO_IDEN_AIR = 'ABY';
+
+    /**
+     * Analysis number/test number (ADD)
+     *
+     * Number given to a specific analysis or test operation.
+     */
+    case ANAL_NUMB_NUMB = 'ADD';
+
+    /**
+     * Animal farm licence number (CFF)
+     *
+     * Veterinary licence number allocated by a national authority to an animal
+     * farm.
+     */
+    case ANIM_FARM_LICE_NUMB = 'CFF';
+
+    /**
+     * Anti-dumping case number (ABC)
+     *
+     * Reference issued by a Customs administration pertaining to a past or
+     * current investigation of goods "dumped" at a price lower than the
+     * exporter's domestic market price.
+     */
+    case ANTI_CASE_NUMB = 'ABC';
+
+    /**
+     * Applicable coefficient identification number (APT)
+     *
+     * The identification number of the coefficient which is applicable.
+     */
+    case APPL_COEF_IDEN_NUMB = 'APT';
+
+    /**
+     * Applicable instructions or standards (AEH)
+     *
+     * Instructions or standards applicable for the whole message or a message
+     * line item. These instructions or standards may be published by a neutral
+     * organization or authority or another party concerned.
+     */
+    case APPL_INST_OR_STAN = 'AEH';
+
+    /**
+     * Applicant's bank reference (AFQ)
+     *
+     * Reference number of the applicant's bank.
+     */
+    case APPL_BANK_REFE = 'AFQ';
+
+    /**
+     * Applicant's reference (AGF)
+     *
+     * Reference number of the applicant.
+     */
+    case APPL_REFE = 'AGF';
+
+    /**
+     * Application for financial support reference number (AUK)
+     *
+     * Reference number assigned to an application for financial support.
+     */
+    case APPL_FOR_FINA_SUPP_REFE_NUMB = 'AUK';
+
+    /**
+     * Application reference number (AGK)
+     *
+     * A number that identifies an application reference.
+     */
+    case APPL_REFE_NUMB = 'AGK';
+
+    /**
+     * Appropriation number (AKP)
+     *
+     * The number identifying a type of funding for a specific purpose
+     * (appropriation).
+     */
+    case APPR_NUMB = 'AKP';
+
+    /**
+     * Article number (ABU)
+     *
+     * A number that identifies an article.
+     */
+    case ARTI_NUMB = 'ABU';
+
+    /**
+     * Assembly number (AEB)
+     *
+     * A number that identifies an assembly.
+     */
+    case ASSE_NUMB = 'AEB';
+
+    /**
+     * Associated invoices (AFL)
+     *
+     * A number that identifies associated invoices.
+     */
+    case ASSO_INVO = 'AFL';
+
+    /**
+     * Assuming company (ASC)
+     *
+     * A number that identifies an assuming company.
+     */
+    case ASSU_COMP = 'ASC';
+
+    /**
+     * ATA carnet number (ACG)
+     *
+     * Reference number assigned to an ATA carnet.
+     */
+    case ATA_CARN_NUMB = 'ACG';
+
+    /**
+     * Authorisation for repair reference (APV)
+     *
+     * Reference of the authorisation for repair.
+     */
+    case AUTH_FOR_REPA_REFE = 'APV';
+
+    /**
+     * Authority issued equipment identification (AHB)
+     *
+     * Identification issued by an authority, e.g. government, airport authority.
+     */
+    case AUTH_ISSU_EQUI_IDEN = 'AHB';
+
+    /**
+     * Authorization for expense (AFE) number (AE)
+     *
+     * A number that identifies an authorization for expense (AFE).
+     */
+    case AUTH_FOR_EXPE_AFE_NUMB = 'AE';
+
+    /**
+     * Authorization number (ANJ)
+     *
+     * A number which uniquely identifies an authorization.
+     */
+    case AUTH_NUMB = 'ANJ';
+
+    /**
+     * Authorization number for exception to dangerous goods regulations (ALF)
+     *
+     * Reference number allocated by an authority. This number contains an
+     * approval concerning exceptions on the existing dangerous goods regulations.
+     */
+    case AUTH_NUMB_FOR_EXCE_TO_DANG_GOOD_REGU = 'ALF';
+
+    /**
+     * Authorization to meet competition number (AU)
+     *
+     * A number assigned by a requestor to an offer incoming following request for
+     * quote.
+     */
+    case AUTH_TO_MEET_COMP_NUMB = 'AU';
+
+    /**
+     * Bankgiro reference (ATL)
+     *
+     * Reference of the Bankgiro.
+     */
+    case BANK_REFE = 'ATL';
+
+    /**
+     * Bank's batch interbank transaction reference number (AAH)
+     *
+     * Reference number allocated by the bank to a batch of different underlying
+     * interbank transactions.
+     */
+    case BANK_BATC_INTE_TRAN_REFE_NUMB = 'AAH';
+
+    /**
+     * Bank's common transaction reference number (AII)
+     *
+     * Bank's reference number allocated by the bank to different underlying
+     * individual transactions.
+     */
+    case BANK_COMM_TRAN_REFE_NUMB = 'AII';
+
+    /**
+     * Bank's documentary procedure reference (ATG)
+     *
+     * Reference allocated by the bank to a documentary procedure.
+     */
+    case BANK_DOCU_PROC_REFE = 'ATG';
+
+    /**
+     * Bank's individual interbank transaction reference number (AAI)
+     *
+     * Reference number allocated by the bank to one specific interbank
+     * transaction.
+     */
+    case BANK_INDI_INTE_TRAN_REFE_NUMB = 'AAI';
+
+    /**
+     * Bank's individual transaction reference number (AIK)
+     *
+     * Bank's reference number allocated by the bank to one specific transaction.
+     */
+    case BANK_INDI_TRAN_REFE_NUMB = 'AIK';
+
+    /**
+     * Banker's acceptance (ACX)
+     *
+     * Reference number for banker's acceptance issued by the accepting financial
+     * institution.
+     */
+    case BANK_ACCE = 'ACX';
+
+    /**
+     * Bankruptcy procedure number (AQZ)
+     *
+     * A number identifying a bankruptcy procedure.
+     */
+    case BANK_PROC_NUMB = 'AQZ';
+
+    /**
+     * Bar coded label serial number (LS)
+     *
+     * The serial number on a bar code label.
+     */
+    case BAR_CODE_LABE_SERI_NUMB = 'LS';
+
+    /**
+     * Batch number/lot number (BT)
+     *
+     * [7338] Reference number assigned by manufacturer to a series of similar
+     * products or goods produced under similar conditions.
+     */
+    case BATC_NUMB_NUMB = 'BT';
+
+    /**
+     * Battery and accumulator producer registration number (BTP)
+     *
+     * Registration number of producer of batteries and accumulators.
+     */
+    case BATT_AND_ACCU_PROD_REGI_NUMB = 'BTP';
+
+    /**
+     * Beginning job sequence number (AQN)
+     *
+     * The number designating the beginning of the job sequence.
+     */
+    case BEGI_JOB_SEQU_NUMB = 'AQN';
+
+    /**
+     * Beginning meter reading actual (BA)
+     *
+     * Meter reading at the beginning of an invoicing period.
+     */
+    case BEGI_METE_READ_ACTU = 'BA';
+
+    /**
+     * Beginning meter reading estimated (BE)
+     *
+     * Meter reading at the beginning of an invoicing period where an actual
+     * reading is not available.
+     */
+    case BEGI_METE_READ_ESTI = 'BE';
+
+    /**
+     * Beneficiary's bank reference (AFS)
+     *
+     * Reference number of the beneficiary's bank.
+     */
+    case BENE_BANK_REFE = 'AFS';
+
+    /**
+     * Beneficiary's reference (AFO)
+     *
+     * Reference of the beneficiary.
+     */
+    case BENE_REFE = 'AFO';
+
+    /**
+     * Bid number (BD)
+     *
+     * Number assigned by a submitter of a bid to his bid.
+     */
+    case BID_NUMB = 'BD';
+
+    /**
+     * Bill of lading number (BM)
+     *
+     * Reference number assigned to a bill of lading, see: 1001 = 705.
+     */
+    case BILL_OF_LADI_NUMB = 'BM';
+
+    /**
+     * Bill of quantities number (AFX)
+     *
+     * Reference number assigned to a bill of quantities.
+     */
+    case BILL_OF_QUAN_NUMB = 'AFX';
+
+    /**
+     * Blanket order number (BO)
+     *
+     * Reference number assigned by the order issuer to a blanket order.
+     */
+    case BLAN_ORDE_NUMB = 'BO';
+
+    /**
+     * Blended with number (BW)
+     *
+     * The batch/lot/package number a product is blended with.
+     */
+    case BLEN_WITH_NUMB = 'BW';
+
+    /**
+     * Book number (ART)
+     *
+     * A number assigned to identify a book.
+     */
+    case BOOK_NUMB = 'ART';
+
+    /**
+     * Bordereau number (AFC)
+     *
+     * Reference number assigned to a bordereau, see: 1001 = 787.
+     */
+    case BORD_NUMB = 'AFC';
+
+    /**
+     * Broker or sales office number (BR)
+     *
+     * A number that identifies a broker or sales office.
+     */
+    case BROK_OR_SALE_OFFI_NUMB = 'BR';
+
+    /**
+     * Broker reference 3 (AVK)
+     *
+     * Third reference of a broker.
+     */
+    case BROK_REFE = 'AVK';
+
+    /**
+     * Budget chapter (ASD)
+     *
+     * A reference to the chapter in a budget.
+     */
+    case BUDG_CHAP = 'ASD';
+
+    /**
+     * Bureau signing (statement reference) (ADI)
+     *
+     * A statement reference that identifies a bureau signing.
+     */
+    case BURE_SIGN_STAT_REFE = 'ADI';
+
+    /**
+     * Buyer's catalogue number (AMW)
+     *
+     * Identification of a catalogue maintained by a buyer.
+     */
+    case BUYE_CATA_NUMB = 'AMW';
+
+    /**
+     * Buyer's contract number (BC)
+     *
+     * Reference number assigned by buyer to a contract.
+     */
+    case BUYE_CONT_NUMB = 'BC';
+
+    /**
+     * Buyer's debtor number (DB)
+     *
+     * Reference number assigned to a debtor.
+     */
+    case BUYE_DEBT_NUMB = 'DB';
+
+    /**
+     * Buyer's fund number (AWW)
+     *
+     * A reference number indicating the fund number used by the buyer.
+     */
+    case BUYE_FUND_NUMB = 'AWW';
+
+    /**
+     * Buyer's item number (ADA)
+     *
+     * [7304] Reference number assigned by the buyer to an item.
+     */
+    case BUYE_ITEM_NUMB = 'ADA';
+
+    /**
+     * CAD file layer convention (ANF)
+     *
+     * Reference number identifying a layer convention for a file in a Computer
+     * Aided Design (CAD) environment.
+     */
+    case CAD_FILE_LAYE_CONV = 'ANF';
+
+    /**
+     * Cadastro Geral do Contribuinte (CGC) (ASW)
+     *
+     * Brazilian taxpayer number.
+     */
+    case CADA_GERA_DO_CONT_CGC = 'ASW';
+
+    /**
+     * Calendar (AOJ)
+     *
+     * A calendar reference number.
+     */
+    case CALENDAR = 'AOJ';
+
+    /**
+     * Call off order number (COF)
+     *
+     * A number that identifies a call off order.
+     */
+    case CALL_OFF_ORDE_NUMB = 'COF';
+
+    /**
+     * Canadian excise entry number (AMN)
+     *
+     * An excise entry number assigned by the Canadian Customs.
+     */
+    case CANA_EXCI_ENTR_NUMB = 'AMN';
+
+    /**
+     * Cargo acceptance order reference number (ACA)
+     *
+     * Reference assigned to the cargo acceptance order.
+     */
+    case CARG_ACCE_ORDE_REFE_NUMB = 'ACA';
+
+    /**
+     * Cargo control number (XC)
+     *
+     * Reference used to identify and control a carrier and consignment from
+     * initial entry into a country until release of the cargo by Customs.
+     */
+    case CARG_CONT_NUMB = 'XC';
+
+    /**
+     * Cargo manifest number (AFB)
+     *
+     * [1037] Reference number assigned to a cargo manifest.
+     */
+    case CARG_MANI_NUMB = 'AFB';
+
+    /**
+     * Carrier's agent reference number (AAY)
+     *
+     * Reference number assigned by the carriers agent to a transaction.
+     */
+    case CARR_AGEN_REFE_NUMB = 'AAY';
+
+    /**
+     * Carrier's reference number (CN)
+     *
+     * Reference number assigned by carrier to a consignment.
+     */
+    case CARR_REFE_NUMB = 'CN';
+
+    /**
+     * Case number (AMH)
+     *
+     * Number assigned to a case.
+     */
+    case CASE_NUMB = 'AMH';
+
+    /**
+     * Case of need party's reference (ANO)
+     *
+     * Reference number of the case of need party.
+     */
+    case CASE_OF_NEED_PART_REFE = 'ANO';
+
+    /**
+     * Catalogue sequence number (AKS)
+     *
+     * A number which uniquely identifies an item within a catalogue according to
+     * a standard numbering system.
+     */
+    case CATA_SEQU_NUMB = 'AKS';
+
+    /**
+     * Catastrophe number (ADG)
+     *
+     * A number that identifies a catastrophe.
+     */
+    case CATA_NUMB = 'ADG';
+
+    /**
+     * Category of work reference (AWH)
+     *
+     * A reference identifying a category of work.
+     */
+    case CATE_OF_WORK_REFE = 'AWH';
+
+    /**
+     * CD-ROM (ASY)
+     *
+     * Identity number of the Compact Disk Read Only Memory (CD-ROM).
+     */
+    case CDROM = 'ASY';
+
+    /**
+     * Cedent's claim number (APD)
+     *
+     * To identify the number assigned to the claim by the ceding company.
+     */
+    case CEDE_CLAI_NUMB = 'APD';
+
+    /**
+     * Ceding company (CEC)
+     *
+     * Company selling obligations to a third party.
+     */
+    case CEDI_COMP = 'CEC';
+
+    /**
+     * Ceiling formula reference number (APJ)
+     *
+     * The reference number which identifies a formula for determining a ceiling.
+     */
+    case CEIL_FORM_REFE_NUMB = 'APJ';
+
+    /**
+     * Central secretariat log number (AQE)
+     *
+     * The reference log number assigned by the central secretariat for the Data
+     * Maintenance Request (DMR).
+     */
+    case CENT_SECR_LOG_NUMB = 'AQE';
+
+    /**
+     * Central secretariat log number, child Data Maintenance Request (DMR) (AQG)
+     *
+     * The reference log number assigned by the central secretariat for the child
+     * Data Maintenance Request (DMR).
+     */
+    case CENT_SECR_LOG_NUMB_CHIL_DATA_MAIN_REQU_DMR = 'AQG';
+
+    /**
+     * Central secretariat log number, parent Data Maintenance Request (DMR) (AQF)
+     *
+     * The reference log number assigned by the central secretariat for the parent
+     * Data Maintenance Request (DMR).
+     */
+    case CENT_SECR_LOG_NUMB_PARE_DATA_MAIN_REQU_DMR = 'AQF';
+
+    /**
+     * Certificate of conformity (AID)
+     *
+     * Certificate certifying the conformity to predefined definitions.
+     */
+    case CERT_OF_CONF = 'AID';
+
+    /**
+     * Chamber of Commerce registration number (AHO)
+     *
+     * The registration number by which a company/organization is known to the
+     * Chamber of Commerce.
+     */
+    case CHAM_OF_COMM_REGI_NUMB = 'AHO';
+
+    /**
+     * Charge card account number (AIU)
+     *
+     * Number to identify charge card account.
+     */
+    case CHAR_CARD_ACCO_NUMB = 'AIU';
+
+    /**
+     * Charges note document attachment indicator (CNO)
+     *
+     * [1070] Indication that a charges note has been established and attached to
+     * a transport contract document or not.
+     */
+    case CHAR_NOTE_DOCU_ATTA_INDI = 'CNO';
+
+    /**
+     * Checking number (CKN)
+     *
+     * Number assigned by checking party to one specific check action.
+     */
+    case CHEC_NUMB = 'CKN';
+
+    /**
+     * Cheque number (CK)
+     *
+     * Unique number assigned to one specific cheque.
+     */
+    case CHEQ_NUMB = 'CK';
+
+    /**
+     * Circular publication number (AJF)
+     *
+     * A number specifying a circular publication.
+     */
+    case CIRC_PUBL_NUMB = 'AJF';
+
+    /**
+     * Civil action number (AAX)
+     *
+     * A reference number identifying the civil action.
+     */
+    case CIVI_ACTI_NUMB = 'AAX';
+
+    /**
+     * Clave Unica de Identificacion Tributaria (CUIT) (ATU)
+     *
+     * Tax identification number in Argentina.
+     */
+    case CLAV_UNIC_DE_IDEN_TRIB_CUIT = 'ATU';
+
+    /**
+     * Clearing reference (ANX)
+     *
+     * Reference allocated by a clearing procedure.
+     */
+    case CLEA_REFE = 'ANX';
+
+    /**
+     * Cold roll number (ACQ)
+     *
+     * Number attributed to a cold roll coil.
+     */
+    case COLD_ROLL_NUMB = 'ACQ';
+
+    /**
+     * Collecting bank's reference (ANP)
+     *
+     * Reference number of the collecting bank.
+     */
+    case COLL_BANK_REFE = 'ANP';
+
+    /**
+     * Collection advice document identifier (ACN)
+     *
+     * [1030] Reference number to identify a collection advice document.
+     */
+    case COLL_ADVI_DOCU_IDEN = 'ACN';
+
+    /**
+     * Collection instrument number (ATN)
+     *
+     * To identify the number of an instrument used to remit funds to a
+     * beneficiary.
+     */
+    case COLL_INST_NUMB = 'ATN';
+
+    /**
+     * Collection reference (AUD)
+     *
+     * A reference identifying a collection.
+     */
+    case COLL_REFE = 'AUD';
+
+    /**
+     * Commercial account summary reference number (APQ)
+     *
+     * A reference number identifying a commercial account summary.
+     */
+    case COMM_ACCO_SUMM_REFE_NUMB = 'APQ';
+
+    /**
+     * Commodity number (AED)
+     *
+     * A number that identifies a commodity.
+     */
+    case COMM_NUMB = 'AED';
+
+    /**
+     * Common transaction reference number (AIH)
+     *
+     * Reference number applicable to different underlying individual
+     * transactions.
+     */
+    case COMM_TRAN_REFE_NUMB = 'AIH';
+
+    /**
+     * Companies Registry Office (CRO) number (ARC)
+     *
+     * Identifies the reference number assigned by the Companies Registry Office
+     * (CRO).
+     */
+    case COMP_REGI_OFFI_CRO_NUMB = 'ARC';
+
+    /**
+     * Company / syndicate reference 2 (ADK)
+     *
+     * Second reference of a company/syndicate.
+     */
+    case COMP_SYND_REFE = 'ADK';
+
+    /**
+     * Company issued equipment ID (AGP)
+     *
+     * Owner/operator, non-government issued equipment reference number.
+     */
+    case COMP_ISSU_EQUI_ID = 'AGP';
+
+    /**
+     * Company trading account number (AWX)
+     *
+     * A reference number identifying a company trading account.
+     */
+    case COMP_TRAD_ACCO_NUMB = 'AWX';
+
+    /**
+     * Company/place registration number (XA)
+     *
+     * Company registration and place as legally required.
+     */
+    case COMP_REGI_NUMB = 'XA';
+
+    /**
+     * Completed units payment request reference (ANB)
+     *
+     * A reference to a payment request for completed units.
+     */
+    case COMP_UNIT_PAYM_REQU_REFE = 'ANB';
+
+    /**
+     * Compliance code number (AIA)
+     *
+     * Number assigned to indicate regulatory compliance.
+     */
+    case COMP_CODE_NUMB = 'AIA';
+
+    /**
+     * Condition of purchase document number (CP)
+     *
+     * Reference number identifying the conditions of purchase relevant to a
+     * purchase.
+     */
+    case COND_OF_PURC_DOCU_NUMB = 'CP';
+
+    /**
+     * Condition of sale document number (CS)
+     *
+     * Reference number identifying the conditions of sale relevant to a sale.
+     */
+    case COND_OF_SALE_DOCU_NUMB = 'CS';
+
+    /**
+     * Connected location (AWN)
+     *
+     * Reference of a connected location.
+     */
+    case CONN_LOCA = 'AWN';
+
+    /**
+     * Connecting point to central grid (AUV)
+     *
+     * Reference to a connecting point to a central grid.
+     */
+    case CONN_POIN_TO_CENT_GRID = 'AUV';
+
+    /**
+     * Consignor's further order (CFO)
+     *
+     * Reference of an order given by the consignor after departure of the means
+     * of transport.
+     */
+    case CONS_FURT_ORDE = 'CFO';
+
+    /**
+     * Consolidated invoice number (AIZ)
+     *
+     * Invoice number into which other invoices are consolidated.
+     */
+    case CONS_INVO_NUMB = 'AIZ';
+
+    /**
+     * Consignee's order number (CG)
+     *
+     * A number that identifies a consignee's order.
+     */
+    case CONS_ORDE_NUMB = 'CG';
+
+    /**
+     * Consignee's reference (ANT)
+     *
+     * Reference number of the consignee.
+     */
+    case CONS_REFE = 'ANT';
+
+    /**
+     * Consignment contract number (AXP)
+     *
+     * Reference number identifying a consignment contract.
+     */
+    case CONS_CONT_NUMB = 'AXP';
+
+    /**
+     * Consignment identifier, carrier assigned (BN)
+     *
+     * [1016] Reference number assigned by a carrier of its agent to identify a
+     * specific consignment such as a booking reference number when cargo space is
+     * reserved prior to loading.
+     */
+    case CONS_IDEN_CARR_ASSI = 'BN';
+
+    /**
+     * Consignment identifier, consignor assigned (CU)
+     *
+     * [1140] Reference number assigned by the consignor to identify a particular
+     * consignment.
+     */
+    case CONS_IDEN_CONS_ASSI = 'CU';
+
+    /**
+     * Consignment identifier, freight forwarder assigned (FF)
+     *
+     * [1460] Reference number assigned by the freight forwarder to identify a
+     * particular consignment.
+     */
+    case CONS_IDEN_FREI_FORW_ASSI = 'FF';
+
+    /**
+     * Consignment information (AVL)
+     *
+     * Code identifying that the reference number given applies to the consignment
+     * information segment group in the referred message .
+     */
+    case CONS_INFO = 'AVL';
+
+    /**
+     * Consignment receipt identifier (REN)
+     *
+     * [1150] Reference number assigned to identify a consignment upon its arrival
+     * at its destination.
+     */
+    case CONS_RECE_IDEN = 'REN';
+
+    /**
+     * Consignment stock contract (AUF)
+     *
+     * Reference identifying a consignment stock contract.
+     */
+    case CONS_STOC_CONT = 'AUF';
+
+    /**
+     * Consolidated orders' reference (AUP)
+     *
+     * A reference number to identify orders which have been, or shall be
+     * consolidated.
+     */
+    case CONS_ORDE_REFE = 'AUP';
+
+    /**
+     * Constraint notation (AOX)
+     *
+     * Identifies a reference to a constraint notation.
+     */
+    case CONS_NOTA = 'AOX';
+
+    /**
+     * Consumption data request number (AMF)
+     *
+     * A number which identifies a request for consumption data.
+     */
+    case CONS_DATA_REQU_NUMB = 'AMF';
+
+    /**
+     * Container disposition order reference number (AKA)
+     *
+     * Reference assigned to the empty container disposition order.
+     */
+    case CONT_DISP_ORDE_REFE_NUMB = 'AKA';
+
+    /**
+     * Container operators reference number (CV)
+     *
+     * Reference number assigned by the party operating or controlling the
+     * transport container to a transaction or consignment.
+     */
+    case CONT_OPER_REFE_NUMB = 'CV';
+
+    /**
+     * Container prefix (AKB)
+     *
+     * The first part of the unique identification of a container formed by an
+     * alpha code identifying the owner of the container.
+     */
+    case CONT_PREF = 'AKB';
+
+    /**
+     * Container work order reference number (ADO)
+     *
+     * Reference number assigned by the principal to the work order for a (set of)
+     * container(s).
+     */
+    case CONT_WORK_ORDE_REFE_NUMB = 'ADO';
+
+    /**
+     * Container/equipment receipt number (ER)
+     *
+     * Number of the Equipment Interchange Receipt issued for full or empty
+     * equipment received.
+     */
+    case CONT_RECE_NUMB = 'ER';
+
+    /**
+     * Contract breakdown reference (APR)
+     *
+     * A reference which identifies a specific breakdown of a contract.
+     */
+    case CONT_BREA_REFE = 'APR';
+
+    /**
+     * Contract document addendum identifier (AAD)
+     *
+     * [1318] Reference number to identify an addendum to a contract.
+     */
+    case CONT_DOCU_ADDE_IDEN = 'AAD';
+
+    /**
+     * Contract number (CT)
+     *
+     * [1296] Reference number of a contract concluded between parties.
+     */
+    case CONT_NUMB = 'CT';
+
+    /**
+     * Contract party reference number (AGB)
+     *
+     * Reference number assigned to a party for a particular contract.
+     */
+    case CONT_PART_REFE_NUMB = 'AGB';
+
+    /**
+     * Contractor registration number (APS)
+     *
+     * A reference number used to identify a contractor.
+     */
+    case CONT_REGI_NUMB = 'APS';
+
+    /**
+     * Contractor request reference (APO)
+     *
+     * Reference identifying a request made by a contractor.
+     */
+    case CONT_REQU_REFE = 'APO';
+
+    /**
+     * Converted Postgiro number (ATO)
+     *
+     * To identify the reference number of a giro payment having been converted to
+     * a Postgiro account.
+     */
+    case CONV_POST_NUMB = 'ATO';
+
+    /**
+     * Cooperation contract number (CZ)
+     *
+     * Number issued by a party concerned given to a contract on cooperation of
+     * two or more parties.
+     */
+    case COOP_CONT_NUMB = 'CZ';
+
+    /**
+     * Cost account (AOU)
+     *
+     * A cost control account reference.
+     */
+    case COST_ACCO = 'AOU';
+
+    /**
+     * Cost accounting document (CAY)
+     *
+     * The reference to a cost accounting document.
+     */
+    case COST_ACCO_DOCU = 'CAY';
+
+    /**
+     * Cost centre (AWE)
+     *
+     * A number identifying a cost centre.
+     */
+    case COST_CENT = 'AWE';
+
+    /**
+     * Cost centre alignment number (ATP)
+     *
+     * Number used in the financial management process to align cost allocations.
+     */
+    case COST_CENT_ALIG_NUMB = 'ATP';
+
+    /**
+     * Costa Rican judicial number (ARD)
+     *
+     * A number assigned by the government to a business in Costa Rica.
+     */
+    case COST_RICA_JUDI_NUMB = 'ARD';
+
+    /**
+     * Credit memo number (CM)
+     *
+     * Reference number assigned by issuer to a credit memo.
+     */
+    case CRED_MEMO_NUMB = 'CM';
+
+    /**
+     * Credit note number (CD)
+     *
+     * [1113] Reference number assigned to a credit note.
+     */
+    case CRED_NOTE_NUMB = 'CD';
+
+    /**
+     * Credit rating agency's reference number (AGH)
+     *
+     * Reference number assigned by a credit rating agency to a debtor.
+     */
+    case CRED_RATI_AGEN_REFE_NUMB = 'AGH';
+
+    /**
+     * Creditor's reference number (AHL)
+     *
+     * Reference number of the party to whom a debt is owed.
+     */
+    case CRED_REFE_NUMB = 'AHL';
+
+    /**
+     * Current invoice number (OH)
+     *
+     * Reference number identifying the current invoice.
+     */
+    case CURR_INVO_NUMB = 'OH';
+
+    /**
+     * Customer catalogue number (CH)
+     *
+     * Number identifying a catalogue for customer's usage.
+     */
+    case CUST_CATA_NUMB = 'CH';
+
+    /**
+     * Customer material specification number (ACJ)
+     *
+     * Number for a material specification given by customer.
+     */
+    case CUST_MATE_SPEC_NUMB = 'ACJ';
+
+    /**
+     * Customer process specification number (AEF)
+     *
+     * Retrieval number for a process specification defined by customer.
+     */
+    case CUST_PROC_SPEC_NUMB = 'AEF';
+
+    /**
+     * Customer reference number (CR)
+     *
+     * Reference number assigned by the customer to a transaction.
+     */
+    case CUST_REFE_NUMB = 'CR';
+
+    /**
+     * Customer reference number assigned to previous balance of payment
+     * information (ALC)
+     *
+     * Identification number of the previous balance of payments information from
+     * customer message.
+     */
+    case CUST_REFE_NUMB_ASSI_TO_PREV_BALA_OF_PAYM_INFO = 'ALC';
+
+    /**
+     * Customer specification number (AEG)
+     *
+     * Retrieval number for a specification defined by customer.
+     */
+    case CUST_SPEC_NUMB = 'AEG';
+
+    /**
+     * Customer travel service identifier (AVI)
+     *
+     * A reference identifying a travel service to a customer.
+     */
+    case CUST_TRAV_SERV_IDEN = 'AVI';
+
+    /**
+     * Customer's common transaction reference number (AIL)
+     *
+     * Customer's reference number allocated by the customer to different
+     * underlying individual transactions.
+     */
+    case CUST_COMM_TRAN_REFE_NUMB = 'AIL';
+
+    /**
+     * Customer's documentary procedure reference (ATH)
+     *
+     * Reference allocated by a customer to a documentary procedure.
+     */
+    case CUST_DOCU_PROC_REFE = 'ATH';
+
+    /**
+     * Customer's individual transaction reference number (AIJ)
+     *
+     * Customer's reference number allocated by the customer to one specific
+     * transaction.
+     */
+    case CUST_INDI_TRAN_REFE_NUMB = 'AIJ';
+
+    /**
+     * Customer's unit inventory number (AEN)
+     *
+     * Number assigned by customer to a unique unit for inventory purposes.
+     */
+    case CUST_UNIT_INVE_NUMB = 'AEN';
+
+    /**
+     * Customs binding ruling number (AUQ)
+     *
+     * Binding ruling number issued by customs.
+     */
+    case CUST_BIND_RULI_NUMB = 'AUQ';
+
+    /**
+     * Customs decision request number (ABG)
+     *
+     * Reference issued by Customs pertaining to a pending tariff classification
+     * decision requested by an importer or agent.
+     */
+    case CUST_DECI_REQU_NUMB = 'ABG';
+
+    /**
+     * Customs guarantee number (ABL)
+     *
+     * Reference assigned to a Customs guarantee.
+     */
+    case CUST_GUAR_NUMB = 'ABL';
+
+    /**
+     * Customs item number (AFD)
+     *
+     * Number (1496 in CST) assigned by the declarant to an item.
+     */
+    case CUST_ITEM_NUMB = 'AFD';
+
+    /**
+     * Customs non-binding ruling number (AUR)
+     *
+     * Non-binding ruling number issued by customs.
+     */
+    case CUST_NONB_RULI_NUMB = 'AUR';
+
+    /**
+     * Customs pre-approval ruling number (AUZ)
+     *
+     * Pre-approval ruling number issued by Customs.
+     */
+    case CUST_PREA_RULI_NUMB = 'AUZ';
+
+    /**
+     * Customs preference inquiry number (AIP)
+     *
+     * The number assigned by Customs to a preference inquiry.
+     */
+    case CUST_PREF_INQU_NUMB = 'AIP';
+
+    /**
+     * Customs release code (AHZ)
+     *
+     * A code associated to a requirement that must be presented to gain the
+     * release of goods by Customs.
+     */
+    case CUST_RELE_CODE = 'AHZ';
+
+    /**
+     * Customs tariff number (ABD)
+     *
+     * (7357) Code number of the goods in accordance with the tariff nomenclature
+     * system of classification in use where the Customs declaration is made.
+     */
+    case CUST_TARI_NUMB = 'ABD';
+
+    /**
+     * Customs transhipment number (AIO)
+     *
+     * Approval number issued by Customs for cargo to be transhipped under Customs
+     * control.
+     */
+    case CUST_TRAN_NUMB = 'AIO';
+
+    /**
+     * Customs valuation decision number (ABA)
+     *
+     * Reference by an importing party to a previous decision made by a Customs
+     * administration regarding the valuation of goods.
+     */
+    case CUST_VALU_DECI_NUMB = 'ABA';
+
+    /**
+     * Dangerous Goods information (AVN)
+     *
+     * Code identifying that the reference number given applies to the dangerous
+     * goods information segment group in the referred message.
+     */
+    case DANG_GOOD_INFO = 'AVN';
+
+    /**
+     * Dangerous goods security number (ALG)
+     *
+     * Reference number allocated by an authority in order to control the
+     * dangerous goods on board of a specific means of transport for dangerous
+     * goods security purposes.
+     */
+    case DANG_GOOD_SECU_NUMB = 'ALG';
+
+    /**
+     * Dangerous goods transport licence number (ALH)
+     *
+     * Licence number allocated by an authority as to the permission of carrying
+     * dangerous goods by a specific means of transport.
+     */
+    case DANG_GOOD_TRAN_LICE_NUMB = 'ALH';
+
+    /**
+     * Data structure tag (AQD)
+     *
+     * The tag assigned to a data structure.
+     */
+    case DATA_STRU_TAG = 'AQD';
+
+    /**
+     * Debit account number (DAN)
+     *
+     * Reference number assigned by issuer to a debit account.
+     */
+    case DEBI_ACCO_NUMB = 'DAN';
+
+    /**
+     * Debit card number (AAF)
+     *
+     * A reference number identifying a debit card.
+     */
+    case DEBI_CARD_NUMB = 'AAF';
+
+    /**
+     * Debit letter number (CED)
+     *
+     * Reference number identifying the letter of debit document.
+     */
+    case DEBI_LETT_NUMB = 'CED';
+
+    /**
+     * Debit note number (DL)
+     *
+     * [1117] Reference number assigned by issuer to a debit note.
+     */
+    case DEBI_NOTE_NUMB = 'DL';
+
+    /**
+     * Debit reference number (AOI)
+     *
+     * The reference number of a debit instruction.
+     */
+    case DEBI_REFE_NUMB = 'AOI';
+
+    /**
+     * Debtor's reference number (AHM)
+     *
+     * Reference number of the party who owes an amount of money.
+     */
+    case DEBT_REFE_NUMB = 'AHM';
+
+    /**
+     * Declarant's Customs identity number (ABP)
+     *
+     * Reference to the party whose posted bond or security is being declared in
+     * order to accept responsibility for a goods declaration and the applicable
+     * duties and taxes.
+     */
+    case DECL_CUST_IDEN_NUMB = 'ABP';
+
+    /**
+     * Declarant's reference number (ABE)
+     *
+     * Unique reference number assigned to a document or a message by the
+     * declarant for identification purposes.
+     */
+    case DECL_REFE_NUMB = 'ABE';
+
+    /**
+     * Defense priorities allocation system priority rating (AJQ)
+     *
+     * A reference indicating a priority rating assigned to allocate resources for
+     * defense purchases.
+     */
+    case DEFE_PRIO_ALLO_SYST_PRIO_RATI = 'AJQ';
+
+    /**
+     * Deferment approval number (DA)
+     *
+     * Number assigned by authorities to a party to approve deferment of payment
+     * of tax or duties.
+     */
+    case DEFE_APPR_NUMB = 'DA';
+
+    /**
+     * Delivery note number (DQ)
+     *
+     * [1033] Reference number assigned by the issuer to a delivery note.
+     */
+    case DELI_NOTE_NUMB = 'DQ';
+
+    /**
+     * Delivery number (transport) (AEL)
+     *
+     * Reference number by which a haulier/carrier will announce himself at the
+     * container terminal or depot when delivering equipment.
+     */
+    case DELI_NUMB_TRAN = 'AEL';
+
+    /**
+     * Delivery order number (AAJ)
+     *
+     * Reference number assigned by issuer to a delivery order.
+     */
+    case DELI_ORDE_NUMB = 'AAJ';
+
+    /**
+     * Delivery route reference (AUS)
+     *
+     * A reference to the route of the delivery.
+     */
+    case DELI_ROUT_REFE = 'AUS';
+
+    /**
+     * Delivery schedule number (AAN)
+     *
+     * Reference number assigned by buyer to a delivery schedule.
+     */
+    case DELI_SCHE_NUMB = 'AAN';
+
+    /**
+     * Delivery verification certificate (AGL)
+     *
+     * Formal identification of delivery verification certificate which is a
+     * formal document from Customs etc. confirming that physical goods have been
+     * delivered. It may be needed to support a tax reclaim based on an invoice.
+     */
+    case DELI_VERI_CERT = 'AGL';
+
+    /**
+     * Department (AOQ)
+     *
+     * Section of an organisation.
+     */
+    case DEPARTMENT = 'AOQ';
+
+    /**
+     * Department number (AMV)
+     *
+     * Number assigned to a department within an organization.
+     */
+    case DEPA_NUMB = 'AMV';
+
+    /**
+     * Department of transportation bond number (AIB)
+     *
+     * Number of a bond assigned by the department of transportation.
+     */
+    case DEPA_OF_TRAN_BOND_NUMB = 'AIB';
+
+    /**
+     * Deposit reference number (ANL)
+     *
+     * A reference number identifying a deposit.
+     */
+    case DEPO_REFE_NUMB = 'ANL';
+
+    /**
+     * Despatch advice number (AAK)
+     *
+     * [1035] Reference number assigned by issuing party to a despatch advice.
+     */
+    case DESP_ADVI_NUMB = 'AAK';
+
+    /**
+     * Despatch note (post parcels) number (AEZ)
+     *
+     * (1128) Reference number assigned to a despatch note (post parcels), see:
+     * 1001 = 750.
+     */
+    case DESP_NOTE_POST_PARC_NUMB = 'AEZ';
+
+    /**
+     * Despatch note document identifier (AAU)
+     *
+     * [1128] Reference number to identify a Despatch Note.
+     */
+    case DESP_NOTE_DOCU_IDEN = 'AAU';
+
+    /**
+     * Direct debit reference (AKJ)
+     *
+     * Reference number assigned to the direct debit operation.
+     */
+    case DIRE_DEBI_REFE = 'AKJ';
+
+    /**
+     * Direct payment valuation number (AFT)
+     *
+     * Reference number assigned to a direct payment valuation.
+     */
+    case DIRE_PAYM_VALU_NUMB = 'AFT';
+
+    /**
+     * Direct payment valuation request number (AFU)
+     *
+     * Reference number assigned to a direct payment valuation request.
+     */
+    case DIRE_PAYM_VALU_REQU_NUMB = 'AFU';
+
+    /**
+     * Dispensation reference (ASA)
+     *
+     * A reference number assigned to an official exemption from a law or
+     * obligation.
+     */
+    case DISP_REFE = 'ASA';
+
+    /**
+     * Dispute number (AGG)
+     *
+     * Reference number to a dispute notice.
+     */
+    case DISP_NUMB = 'AGG';
+
+    /**
+     * Distributor invoice number (DI)
+     *
+     * Reference number assigned by issuer to a distributor invoice.
+     */
+    case DIST_INVO_NUMB = 'DI';
+
+    /**
+     * Dock receipt number (DR)
+     *
+     * Number of the cargo receipt submitted when cargo is delivered to a marine
+     * terminal.
+     */
+    case DOCK_RECE_NUMB = 'DR';
+
+    /**
+     * Docket number (AAW)
+     *
+     * A reference number identifying the docket.
+     */
+    case DOCK_NUMB = 'AAW';
+
+    /**
+     * Document identifier (DM)
+     *
+     * [1004] Reference number identifying a specific document.
+     */
+    case DOCU_IDEN = 'DM';
+
+    /**
+     * Document line identifier (LI)
+     *
+     * [1156] To identify a line of a document.
+     */
+    case DOCU_LINE_IDEN = 'LI';
+
+    /**
+     * Document page identifier (ARO)
+     *
+     * [1212] To identify a page number.
+     */
+    case DOCU_PAGE_IDEN = 'ARO';
+
+    /**
+     * Document reference, internal (CAW)
+     *
+     * Internal reference to a document.
+     */
+    case DOCU_REFE_INTE = 'CAW';
+
+    /**
+     * Document reference, original (AWR)
+     *
+     * The original reference of a document.
+     */
+    case DOCU_REFE_ORIG = 'AWR';
+
+    /**
+     * Document volume number (ARS)
+     *
+     * The number of a document volume.
+     */
+    case DOCU_VOLU_NUMB = 'ARS';
+
+    /**
+     * Documentary credit amendment number (AWC)
+     *
+     * Number of the amendment of the documentary credit.
+     */
+    case DOCU_CRED_AMEN_NUMB = 'AWC';
+
+    /**
+     * Documentary credit identifier (AAC)
+     *
+     * [1172] Reference number to identify a documentary credit.
+     */
+    case DOCU_CRED_IDEN = 'AAC';
+
+    /**
+     * Documentary payment reference (AOA)
+     *
+     * Reference of the documentary payment.
+     */
+    case DOCU_PAYM_REFE = 'AOA';
+
+    /**
+     * Domestic flight number (AGQ)
+     *
+     * Airline flight number assigned to a flight originating and terminating
+     * within the same country.
+     */
+    case DOME_FLIG_NUMB = 'AGQ';
+
+    /**
+     * Domestic inventory management code (ALB)
+     *
+     * Code to identify the management of domestic inventory.
+     */
+    case DOME_INVE_MANA_CODE = 'ALB';
+
+    /**
+     * Drawee's reference (ANN)
+     *
+     * Reference number of the drawee.
+     */
+    case DRAW_REFE = 'ANN';
+
+    /**
+     * Drawing list number (AEQ)
+     *
+     * Reference number identifying a drawing list.
+     */
+    case DRAW_LIST_NUMB = 'AEQ';
+
+    /**
+     * Drawing number (AAL)
+     *
+     * Reference number identifying a specific product drawing.
+     */
+    case DRAW_NUMB = 'AAL';
+
+    /**
+     * Dun and Bradstreet Canada's 8 digit Standard Industrial Classification
+     * (SIC) code (AQP)
+     *
+     * Dun and Bradstreet Canada's 8 digit Standard Industrial Classification
+     * (SIC) code identifying activities of the company.
+     */
+    case DUN_AND_BRAD_CANA__DIGI_STAN_INDU_CLAS_SIC_CODE = 'AQP';
+
+    /**
+     * Dun and Bradstreet US 8 digit Standard Industrial Classification (SIC) code (AQR)
+     *
+     * Dun and Bradstreet United States' 8 digit Standard Industrial
+     * Classification (SIC) code identifying activities of the company.
+     */
+    case DUN_AND_BRAD_US__DIGI_STAN_INDU_CLAS_SIC_CODE = 'AQR';
+
+    /**
+     * Duty free products receipt authorisation number (ASF)
+     *
+     * Authorisation number allocated for the receipt of duty free products.
+     */
+    case DUTY_FREE_PROD_RECE_AUTH_NUMB = 'ASF';
+
+    /**
+     * Duty free products security number (ASE)
+     *
+     * A security number allocated for duty free products.
+     */
+    case DUTY_FREE_PROD_SECU_NUMB = 'ASE';
+
+    /**
+     * Duty memo number (ACY)
+     *
+     * Reference number assigned by customs to a duty memo.
+     */
+    case DUTY_MEMO_NUMB = 'ACY';
+
+    /**
+     * Economic Operators Registration and Identification Number (EORI) (AVY)
+     *
+     * Number assigned by an authority to an economic operator.
+     */
+    case ECON_OPER_REGI_AND_IDEN_NUMB_EORI = 'AVY';
+
+    /**
+     * Electrical and electronic equipment producer registration number (EEP)
+     *
+     * Registration number of producer of electrical and electronic equipment.
+     */
+    case ELEC_AND_ELEC_EQUI_PROD_REGI_NUMB = 'EEP';
+
+    /**
+     * Embargo number (EN)
+     *
+     * Number assigned to specific goods or a family of goods in a classification
+     * of embargo measures.
+     */
+    case EMBA_NUMB = 'EN';
+
+    /**
+     * Embargo permit number (EB)
+     *
+     * Reference number assigned by issuer to an embargo permit.
+     */
+    case EMBA_PERM_NUMB = 'EB';
+
+    /**
+     * Employer identification number of service bureau (AGS)
+     *
+     * Reference number assigned by a service/processing bureau to an employer.
+     */
+    case EMPL_IDEN_NUMB_OF_SERV_BURE = 'AGS';
+
+    /**
+     * Employer's identification number (EI)
+     *
+     * Number issued by an authority to identify an employer.
+     */
+    case EMPL_IDEN_NUMB = 'EI';
+
+    /**
+     * Empty container bill number (AEW)
+     *
+     * Reference number assigned to an empty container bill, see: 1001 = 708.
+     */
+    case EMPT_CONT_BILL_NUMB = 'AEW';
+
+    /**
+     * End item number (AJU)
+     *
+     * A number specifying the end item applicable to a subordinate item.
+     */
+    case END_ITEM_NUMB = 'AJU';
+
+    /**
+     * End use authorization number (ABB)
+     *
+     * Reference issued by a Customs administration authorizing a preferential
+     * rate of duty if a product is used for a specified purpose, see: 1001 = 990.
+     */
+    case END_USE_AUTH_NUMB = 'ABB';
+
+    /**
+     * Ending job sequence number (JE)
+     *
+     * A number that identifies the ending job sequence.
+     */
+    case ENDI_JOB_SEQU_NUMB = 'JE';
+
+    /**
+     * Ending meter reading actual (EA)
+     *
+     * Meter reading at the end of an invoicing period.
+     */
+    case ENDI_METE_READ_ACTU = 'EA';
+
+    /**
+     * Ending meter reading estimated (EE)
+     *
+     * Meter reading at the end of an invoicing period where an actual reading is
+     * not available.
+     */
+    case ENDI_METE_READ_ESTI = 'EE';
+
+    /**
+     * Enquiry number (AAV)
+     *
+     * Reference number assigned to an enquiry.
+     */
+    case ENQU_NUMB = 'AAV';
+
+    /**
+     * Entity reference number, previous (AUX)
+     *
+     * The previous reference number assigned to an entity.
+     */
+    case ENTI_REFE_NUMB_PREV = 'AUX';
+
+    /**
+     * Entry flagging (CAU)
+     *
+     * Reference to a flagging of entries.
+     */
+    case ENTR_FLAG = 'CAU';
+
+    /**
+     * Entry point assessment log number (AQA)
+     *
+     * The reference log number assigned by an entry point assessment group for
+     * the DMR.
+     */
+    case ENTR_POIN_ASSE_LOG_NUMB = 'AQA';
+
+    /**
+     * Entry point assessment log number, child DMR (AQC)
+     *
+     * The reference log number assigned by an entry point assessment group for a
+     * child Data Maintenance Request (DMR).
+     */
+    case ENTR_POIN_ASSE_LOG_NUMB_CHIL_DMR = 'AQC';
+
+    /**
+     * Entry point assessment log number, parent DMR (AQB)
+     *
+     * The reference log number assigned by an entry point assessment group for
+     * the parent Data Maintenance Request (DMR).
+     */
+    case ENTR_POIN_ASSE_LOG_NUMB_PARE_DMR = 'AQB';
+
+    /**
+     * Equipment number (EQ)
+     *
+     * Number assigned by the manufacturer to specific equipment.
+     */
+    case EQUI_NUMB = 'EQ';
+
+    /**
+     * Equipment owner reference number (APC)
+     *
+     * Reference number issued by the owner of the equipment.
+     */
+    case EQUI_OWNE_REFE_NUMB = 'APC';
+
+    /**
+     * Equipment sequence number (SQ)
+     *
+     * (1492) A temporary reference number identifying a particular piece of
+     * equipment within a series of pieces of equipment.
+     */
+    case EQUI_SEQU_NUMB = 'SQ';
+
+    /**
+     * Equipment transport charge number (ACZ)
+     *
+     * Reference assigned to a specific equipment transportation charge.
+     */
+    case EQUI_TRAN_CHAR_NUMB = 'ACZ';
+
+    /**
+     * Error position (AWL)
+     *
+     * Reference to the position of an error in a message.
+     */
+    case ERRO_POSI = 'AWL';
+
+    /**
+     * Estimate order reference number (ACV)
+     *
+     * Reference number assigned by the ordering party of the estimate order.
+     */
+    case ESTI_ORDE_REFE_NUMB = 'ACV';
+
+    /**
+     * ETERMS reference (AOY)
+     *
+     * Identifies a reference to the ICC (International Chamber of Commerce)
+     * ETERMS(tm) repository of electronic commerce trading terms and conditions.
+     */
+    case ETER_REFE = 'AOY';
+
+    /**
+     * Eur 1 certificate number (AEE)
+     *
+     * Reference number assigned to a Eur 1 certificate.
+     */
+    case EUR__CERT_NUMB = 'AEE';
+
+    /**
+     * European Value Added Tax identification (CAX)
+     *
+     * Value Added Tax identification number according to European regulation.
+     */
+    case EURO_VALU_ADDE_TAX_IDEN = 'CAX';
+
+    /**
+     * Event reference number (AIV)
+     *
+     * [1007] Reference number identifying an event.
+     */
+    case EVEN_REFE_NUMB = 'AIV';
+
+    /**
+     * Exceptional transport authorisation number (ATT)
+     *
+     * Authorisation number for exceptional transport (using specific equipment,
+     * out of gauge, materials and/or specific routing).
+     */
+    case EXCE_TRAN_AUTH_NUMB = 'ATT';
+
+    /**
+     * Excess transportation number (ET)
+     *
+     * (1041) Number assigned to excess transport.
+     */
+    case EXCE_TRAN_NUMB = 'ET';
+
+    /**
+     * Export clearance instruction reference number (ABR)
+     *
+     * Reference number of the clearance instructions given by the consignor
+     * through different means.
+     */
+    case EXPO_CLEA_INST_REFE_NUMB = 'ABR';
+
+    /**
+     * Export control classification number (AVJ)
+     *
+     * Number identifying the classification of goods covered by an export
+     * licence.
+     */
+    case EXPO_CONT_CLAS_NUMB = 'AVJ';
+
+    /**
+     * Export Control Commodity number (ECCN) (AFE)
+     *
+     * Reference number to relevant item within Commodity Control List covering
+     * actual products change functionality.
+     */
+    case EXPO_CONT_COMM_NUMB_ECCN = 'AFE';
+
+    /**
+     * Export declaration (ED)
+     *
+     * Number assigned by the exporter to his export declaration number submitted
+     * to an authority.
+     */
+    case EXPO_DECL = 'ED';
+
+    /**
+     * Export establishment number (AIC)
+     *
+     * Number to identify export establishment.
+     */
+    case EXPO_ESTA_NUMB = 'AIC';
+
+    /**
+     * Export permit identifier (EX)
+     *
+     * [1208] Reference number to identify an export licence or permit.
+     */
+    case EXPO_PERM_IDEN = 'EX';
+
+    /**
+     * Exporter's reference number (ERN)
+     *
+     * Reference to a party exporting goods.
+     */
+    case EXPO_REFE_NUMB = 'ERN';
+
+    /**
+     * External object reference (ATS)
+     *
+     * A reference identifying an external object.
+     */
+    case EXTE_OBJE_REFE = 'ATS';
+
+    /**
+     * Federal supply schedule item number (AJV)
+     *
+     * A number specifying an item listed in a federal supply schedule.
+     */
+    case FEDE_SUPP_SCHE_ITEM_NUMB = 'AJV';
+
+    /**
+     * File conversion journal (ANI)
+     *
+     * Reference number identifying a journal recording details about conversion
+     * operations between file formats.
+     */
+    case FILE_CONV_JOUR = 'ANI';
+
+    /**
+     * File identification number (AQY)
+     *
+     * A number assigned to identify a file.
+     */
+    case FILE_IDEN_NUMB = 'AQY';
+
+    /**
+     * File line identifier (FI)
+     *
+     * Number assigned by the file issuer or sender to identify a specific line.
+     */
+    case FILE_LINE_IDEN = 'FI';
+
+    /**
+     * File version number (FV)
+     *
+     * Number given to a version of an identified file.
+     */
+    case FILE_VERS_NUMB = 'FV';
+
+    /**
+     * Final sequence number (FS)
+     *
+     * A number that identifies the final sequence.
+     */
+    case FINA_SEQU_NUMB = 'FS';
+
+    /**
+     * Financial cancellation reference number (ATA)
+     *
+     * Reference number of a financial cancellation.
+     */
+    case FINA_CANC_REFE_NUMB = 'ATA';
+
+    /**
+     * Financial management reference (ALY)
+     *
+     * A financial management reference.
+     */
+    case FINA_MANA_REFE = 'ALY';
+
+    /**
+     * Financial phase reference (ARW)
+     *
+     * A reference which identifies a specific financial phase.
+     */
+    case FINA_PHAS_REFE = 'ARW';
+
+    /**
+     * Financial settlement party's reference number (AMX)
+     *
+     * Reference number of the party who is responsible for the financial
+     * settlement.
+     */
+    case FINA_SETT_PART_REFE_NUMB = 'AMX';
+
+    /**
+     * Financial transaction reference number (ANU)
+     *
+     * Reference number of the financial transaction.
+     */
+    case FINA_TRAN_REFE_NUMB = 'ANU';
+
+    /**
+     * Firm booking reference number (AXE)
+     *
+     * A reference number identifying a previous firm booking.
+     */
+    case FIRM_BOOK_REFE_NUMB = 'AXE';
+
+    /**
+     * First financial institution's transaction reference (AVA)
+     *
+     * Identifies the reference given to the individual transaction by the
+     * financial institution that is the transaction's point of entry into the
+     * interbank transaction chain.
+     */
+    case FIRS_FINA_INST_TRAN_REFE = 'AVA';
+
+    /**
+     * Fiscal number (FC)
+     *
+     * Tax payer's number. Number assigned to individual persons as well as to
+     * corporates by a public institution; this number is different from the VAT
+     * registration number.
+     */
+    case FISC_NUMB = 'FC';
+
+    /**
+     * Flat rack container bundle identification number (ATW)
+     *
+     * Reference number assigned to a bundle of flat rack containers.
+     */
+    case FLAT_RACK_CONT_BUND_IDEN_NUMB = 'ATW';
+
+    /**
+     * Flow reference number (FLW)
+     *
+     * Number given to a usual sender which has regular expeditions of the same
+     * goods, to the same destination, defining all general conditions of the
+     * transport.
+     */
+    case FLOW_REFE_NUMB = 'FLW';
+
+    /**
+     * Foreign exchange (FO)
+     *
+     * Exchange of two currencies at an agreed rate.
+     */
+    case FORE_EXCH = 'FO';
+
+    /**
+     * Foreign exchange contract number (FX)
+     *
+     * Reference number identifying a foreign exchange contract.
+     */
+    case FORE_EXCH_CONT_NUMB = 'FX';
+
+    /**
+     * Foreign military sales number (AJP)
+     *
+     * A number specifying a sale to a foreign military.
+     */
+    case FORE_MILI_SALE_NUMB = 'AJP';
+
+    /**
+     * Foreign resident identification number (ASX)
+     *
+     * Number assigned by a government agency to identify a foreign resident.
+     */
+    case FORE_RESI_IDEN_NUMB = 'ASX';
+
+    /**
+     * Formal report number (ASP)
+     *
+     * A number uniquely identifying a formal report.
+     */
+    case FORM_REPO_NUMB = 'ASP';
+
+    /**
+     * Formal statement reference (ASH)
+     *
+     * A reference to a formal statement.
+     */
+    case FORM_STAT_REFE = 'ASH';
+
+    /**
+     * Formula reference number (AXM)
+     *
+     * The reference number which identifies a formula.
+     */
+    case FORM_REFE_NUMB = 'AXM';
+
+    /**
+     * Forwarding order number (AKT)
+     *
+     * Reference number assigned to the forwarding order by the ordering customer.
+     */
+    case FORW_ORDE_NUMB = 'AKT';
+
+    /**
+     * Framework Agreement Number (AVV)
+     *
+     * A reference to an agreement between one or more contracting authorities and
+     * one or more economic operators, the purpose of which is to establish the
+     * terms governing contracts to be awarded during a given period, in
+     * particular with regard to price and, where appropriate, the quantity
+     * envisaged.
+     */
+    case FRAM_AGRE_NUMB = 'AVV';
+
+    /**
+     * Free zone identifier (FT)
+     *
+     * Identifier to specify the territory of a State where any goods introduced
+     * are generally regarded, insofar as import duties and taxes are concerned,
+     * as being outside the Customs territory and are not subject to usual Customs
+     * control (CCC).
+     */
+    case FREE_ZONE_IDEN = 'FT';
+
+    /**
+     * Freight bill number (FN)
+     *
+     * Reference number assigned by issuing party to a freight bill.
+     */
+    case FREI_BILL_NUMB = 'FN';
+
+    /**
+     * Freight Forwarder number (AHY)
+     *
+     * An identification code of a Freight Forwarder.
+     */
+    case FREI_FORW_NUMB = 'AHY';
+
+    /**
+     * Functional work group (AOO)
+     *
+     * A reference to identify a functional group performing work.
+     */
+    case FUNC_WORK_GROU = 'AOO';
+
+    /**
+     * Fund account number (ASQ)
+     *
+     * Account number of fund.
+     */
+    case FUND_ACCO_NUMB = 'ASQ';
+
+    /**
+     * Fund code number (AHD)
+     *
+     * Reference number to identify appropriation and branch chargeable for item.
+     */
+    case FUND_CODE_NUMB = 'AHD';
+
+    /**
+     * General cargo consignment reference number (AKR)
+     *
+     * Reference number identifying a particular general cargo (non-containerised
+     * or break bulk) consignment.
+     */
+    case GENE_CARG_CONS_REFE_NUMB = 'AKR';
+
+    /**
+     * General declaration number (GDN)
+     *
+     * Number of the declaration of incoming goods out of a vessel.
+     */
+    case GENE_DECL_NUMB = 'GDN';
+
+    /**
+     * General order number (OR)
+     *
+     * Customs number assigned to imported merchandise that has been left
+     * unclaimed and subsequently moved to a Customs bonded warehouse for storage.
+     */
+    case GENE_ORDE_NUMB = 'OR';
+
+    /**
+     * General purpose message reference number (APG)
+     *
+     * A reference number identifying a general purpose message.
+     */
+    case GENE_PURP_MESS_REFE_NUMB = 'APG';
+
+    /**
+     * Goods and Services Tax identification number (AMT)
+     *
+     * Identifier assigned to an entity by a tax authority for Goods and Services
+     * Tax (GST) related purposes.
+     */
+    case GOOD_AND_SERV_TAX_IDEN_NUMB = 'AMT';
+
+    /**
+     * Goods declaration document identifier, Customs (ABT)
+     *
+     * [1426] Reference number, assigned or accepted by Customs, to identify a
+     * goods declaration.
+     */
+    case GOOD_DECL_DOCU_IDEN_CUST = 'ABT';
+
+    /**
+     * Goods declaration number (AAE)
+     *
+     * Reference number assigned to a goods declaration.
+     */
+    case GOOD_DECL_NUMB = 'AAE';
+
+    /**
+     * Goods item information (AVM)
+     *
+     * Code identifying that the reference number given applies to the goods item
+     * information segment group in the referred message.
+     */
+    case GOOD_ITEM_INFO = 'AVM';
+
+    /**
+     * Government agency reference number (AEA)
+     *
+     * Coded reference number that pertains to the business of a government
+     * agency.
+     */
+    case GOVE_AGEN_REFE_NUMB = 'AEA';
+
+    /**
+     * Government bill of lading (AKH)
+     *
+     * Bill of lading as defined by the government.
+     */
+    case GOVE_BILL_OF_LADI = 'AKH';
+
+    /**
+     * Government contract number (GC)
+     *
+     * Number assigned to a specific government/public contract.
+     */
+    case GOVE_CONT_NUMB = 'GC';
+
+    /**
+     * Government quality assurance and control level Number (AMI)
+     *
+     * A number which identifies the level of quality assurance and control
+     * required by the government for an article.
+     */
+    case GOVE_QUAL_ASSU_AND_CONT_LEVE_NUMB = 'AMI';
+
+    /**
+     * Government reference number (GN)
+     *
+     * A number that identifies a government reference.
+     */
+    case GOVE_REFE_NUMB = 'GN';
+
+    /**
+     * Grid operator's customer reference number (CAZ)
+     *
+     * A number, assigned by a grid operator, to reference a customer.
+     */
+    case GRID_OPER_CUST_REFE_NUMB = 'CAZ';
+
+    /**
+     * Group accounting (ADT)
+     *
+     * A number that identifies group accounting.
+     */
+    case GROU_ACCO = 'ADT';
+
+    /**
+     * Group reference number (AST)
+     *
+     * The reference number identifying a group.
+     */
+    case GROU_REFE_NUMB = 'AST';
+
+    /**
+     * Guarantee number (ATM)
+     *
+     * Number of a guarantee.
+     */
+    case GUAR_NUMB = 'ATM';
+
+    /**
+     * Handling and movement reference number (AWZ)
+     *
+     * A reference number identifying a previously transmitted cargo/goods
+     * handling and movement message.
+     */
+    case HAND_AND_MOVE_REFE_NUMB = 'AWZ';
+
+    /**
+     * Harmonised system number (HS)
+     *
+     * Number specifying the goods classification under the Harmonised Commodity
+     * Description and Coding System of the Customs Co-operation Council (CCC).
+     */
+    case HARM_SYST_NUMB = 'HS';
+
+    /**
+     * Hash value (AVW)
+     *
+     * Contains the hash value of a related document.
+     */
+    case HASH_VALU = 'AVW';
+
+    /**
+     * Hastening number (AMD)
+     *
+     * A number which uniquely identifies a request to hasten an action.
+     */
+    case HAST_NUMB = 'AMD';
+
+    /**
+     * Hot roll number (ACP)
+     *
+     * Number attributed to a hot roll coil.
+     */
+    case HOT_ROLL_NUMB = 'ACP';
+
+    /**
+     * House bill of lading number (BH)
+     *
+     * [1039] Reference number assigned to a house bill of lading.
+     */
+    case HOUS_BILL_OF_LADI_NUMB = 'BH';
+
+    /**
+     * House waybill number (HWB)
+     *
+     * Reference number assigned to a house waybill, see: 1001 = 703.
+     */
+    case HOUS_WAYB_NUMB = 'HWB';
+
+    /**
+     * Hygienic Certificate number, national (AWS)
+     *
+     * Nationally set Hygienic Certificate number, such as sanitary,
+     * epidemiologic.
+     */
+    case HYGI_CERT_NUMB_NATI = 'AWS';
+
+    /**
+     * IATA Cargo Agent CASS Address number (CAS)
+     *
+     * Code issued by IATA to identify agent locations for CASS billing purposes.
+     */
+    case IATA_CARG_AGEN_CASS_ADDR_NUMB = 'CAS';
+
+    /**
+     * IATA cargo agent code number (ICA)
+     *
+     * Code issued by IATA identify each IATA Cargo Agent whose name is entered on
+     * the Cargo Agency List.
+     */
+    case IATA_CARG_AGEN_CODE_NUMB = 'ICA';
+
+    /**
+     * Image reference (AUI)
+     *
+     * A reference number identifying an image.
+     */
+    case IMAG_REFE = 'AUI';
+
+    /**
+     * Immediate exportation no. for in bond movement (AFK)
+     *
+     * A number that identifies the immediate exportation number for an in bond
+     * movement.
+     */
+    case IMME_EXPO_NO_FOR_IN_BOND_MOVE = 'AFK';
+
+    /**
+     * Immediate transportation no. for in bond movement (AFI)
+     *
+     * A number that identifies immediate transportation for in bond movement.
+     */
+    case IMME_TRAN_NO_FOR_IN_BOND_MOVE = 'AFI';
+
+    /**
+     * Implementation version number (AOZ)
+     *
+     * Identifies a version number of an implementation.
+     */
+    case IMPL_VERS_NUMB = 'AOZ';
+
+    /**
+     * Import clearance instruction reference number (ABS)
+     *
+     * Reference number of the import clearance instructions given by the
+     * consignor/consignee through different means.
+     */
+    case IMPO_CLEA_INST_REFE_NUMB = 'ABS';
+
+    /**
+     * Import permit identifier (IP)
+     *
+     * [1107] Reference number to identify an import licence or permit.
+     */
+    case IMPO_PERM_IDEN = 'IP';
+
+    /**
+     * Importer reference number (ABQ)
+     *
+     * Reference number assigned by the importer to identify a particular shipment
+     * for his own purposes.
+     */
+    case IMPO_REFE_NUMB = 'ABQ';
+
+    /**
+     * Importer's letter of credit reference (AUG)
+     *
+     * Letter of credit reference issued by importer.
+     */
+    case IMPO_LETT_OF_CRED_REFE = 'AUG';
+
+    /**
+     * Imputation account (ARV)
+     *
+     * An account to which an amount is to be posted.
+     */
+    case IMPU_ACCO = 'ARV';
+
+    /**
+     * In bond number (IB)
+     *
+     * Customs assigned number that is used to control the movement of imported
+     * cargo prior to its formal Customs clearing.
+     */
+    case IN_BOND_NUMB = 'IB';
+
+    /**
+     * Incorporated legal reference (APA)
+     *
+     * Identifies a legal reference which is deemed incorporated by reference.
+     */
+    case INCO_LEGA_REFE = 'APA';
+
+    /**
+     * Individual transaction reference number (AIM)
+     *
+     * Reference number applying to one specific transaction.
+     */
+    case INDI_TRAN_REFE_NUMB = 'AIM';
+
+    /**
+     * Initial sample inspection report number (II)
+     *
+     * Inspection report number given to the initial sample inspection.
+     */
+    case INIT_SAMP_INSP_REPO_NUMB = 'II';
+
+    /**
+     * Inland transport order number (ADN)
+     *
+     * Reference number assigned by the principal to the transport order for
+     * inland carriage.
+     */
+    case INLA_TRAN_ORDE_NUMB = 'ADN';
+
+    /**
+     * Institut Belgo-Luxembourgeois de Codification (IBLC) number (ATR)
+     *
+     * An identification number assigned by the Luxembourg National Bank to a
+     * business in Luxembourg.
+     */
+    case INST_BELG_DE_CODI_IBLC_NUMB = 'ATR';
+
+    /**
+     * Institute of Security and Future Market Development (ISFMD) serial number (AQX)
+     *
+     * A number used to identify a public but not publicly traded company.
+     */
+    case INST_OF_SECU_AND_FUTU_MARK_DEVE_ISFM_SERI_NUMB = 'AQX';
+
+    /**
+     * Instruction for returns number (AXB)
+     *
+     * A reference number identifying a previously communicated instruction for
+     * return message.
+     */
+    case INST_FOR_RETU_NUMB = 'AXB';
+
+    /**
+     * Instruction to despatch reference number (AXA)
+     *
+     * A reference number identifying a previously transmitted instruction to
+     * despatch message.
+     */
+    case INST_TO_DESP_REFE_NUMB = 'AXA';
+
+    /**
+     * Insurance certificate reference number (ICE)
+     *
+     * A number that identifies an insurance certificate reference.
+     */
+    case INSU_CERT_REFE_NUMB = 'ICE';
+
+    /**
+     * Insurance contract reference number (ICO)
+     *
+     * A number that identifies an insurance contract reference.
+     */
+    case INSU_CONT_REFE_NUMB = 'ICO';
+
+    /**
+     * Insurer assigned reference number (AMM)
+     *
+     * A unique reference number assigned by the insurer.
+     */
+    case INSU_ASSI_REFE_NUMB = 'AMM';
+
+    /**
+     * Integrated logistic support cross reference number (AMU)
+     *
+     * Provides the identification of the reference which allows cross referencing
+     * of items between different areas of integrated logistics support.
+     */
+    case INTE_LOGI_SUPP_CROS_REFE_NUMB = 'AMU';
+
+    /**
+     * Interchange number new (INN)
+     *
+     * Number assigned by the interchange sender to identify one specific
+     * interchange. This number points to the actual interchange.
+     */
+    case INTE_NUMB_NEW = 'INN';
+
+    /**
+     * Interchange number old (INO)
+     *
+     * Number assigned by the interchange sender to identify one specific
+     * interchange. This number points to the previous interchange.
+     */
+    case INTE_NUMB_OLD = 'INO';
+
+    /**
+     * Intermediary broker (INB)
+     *
+     * A number that identifies an intermediary broker.
+     */
+    case INTE_BROK = 'INB';
+
+    /**
+     * Internal customer number (IT)
+     *
+     * Number assigned by a seller, supplier etc. to identify a customer within
+     * his enterprise.
+     */
+    case INTE_CUST_NUMB = 'IT';
+
+    /**
+     * Internal data process number (AWG)
+     *
+     * A number identifying an internal data process.
+     */
+    case INTE_DATA_PROC_NUMB = 'AWG';
+
+    /**
+     * Internal order number (IL)
+     *
+     * Number assigned to an order for internal handling/follow up.
+     */
+    case INTE_ORDE_NUMB = 'IL';
+
+    /**
+     * Internal vendor number (IA)
+     *
+     * Number identifying the company-internal vending department/unit.
+     */
+    case INTE_VEND_NUMB = 'IA';
+
+    /**
+     * International assessment log number (AQH)
+     *
+     * The reference log number assigned to a Data Maintenance Request (DMR)
+     * changed in international assessment.
+     */
+    case INTE_ASSE_LOG_NUMB = 'AQH';
+
+    /**
+     * International assessment log number, child Data Maintenance Request (DMR) (AQJ)
+     *
+     * The reference log number assigned to a Data Maintenance Request (DMR)
+     * changed in international assessment that is a child to the current DMR.
+     */
+    case INTE_ASSE_LOG_NUMB_CHIL_DATA_MAIN_REQU_DMR = 'AQJ';
+
+    /**
+     * International assessment log number, parent Data Maintenance Request (DMR) (AQI)
+     *
+     * The reference log number assigned to a Data Maintenance Request (DMR)
+     * changed in international assessment that is a parent to the current DMR.
+     */
+    case INTE_ASSE_LOG_NUMB_PARE_DATA_MAIN_REQU_DMR = 'AQI';
+
+    /**
+     * International flight number (AGR)
+     *
+     * Airline flight number assigned to a flight originating and terminating
+     * across national borders.
+     */
+    case INTE_FLIG_NUMB = 'AGR';
+
+    /**
+     * International Standard Industrial Classification (ISIC) code (AUY)
+     *
+     * A code specifying an international standard industrial classification.
+     */
+    case INTE_STAN_INDU_CLAS_ISIC_CODE = 'AUY';
+
+    /**
+     * Intra-plant routing (ABV)
+     *
+     * To define routing within a plant.
+     */
+    case INTR_ROUT = 'ABV';
+
+    /**
+     * Inventory report reference number (API)
+     *
+     * A reference number identifying an inventory report.
+     */
+    case INVE_REPO_REFE_NUMB = 'API';
+
+    /**
+     * Inventory report request number (AVD)
+     *
+     * Reference number assigned to a request for an inventory report.
+     */
+    case INVE_REPO_REQU_NUMB = 'AVD';
+
+    /**
+     * Investment reference number (ASB)
+     *
+     * A reference to a specific investment.
+     */
+    case INVE_REFE_NUMB = 'ASB';
+
+    /**
+     * Invoice document identifier (IV)
+     *
+     * [1334] Reference number to identify an invoice.
+     */
+    case INVO_DOCU_IDEN = 'IV';
+
+    /**
+     * Invoice number suffix (IS)
+     *
+     * A number added at the end of an invoice number.
+     */
+    case INVO_NUMB_SUFF = 'IS';
+
+    /**
+     * Invoicing data sheet reference number (APH)
+     *
+     * A reference number identifying an invoicing data sheet.
+     */
+    case INVO_DATA_SHEE_REFE_NUMB = 'APH';
+
+    /**
+     * Iron charge number (ACO)
+     *
+     * Number attributed to the iron charge for the production of steel products.
+     */
+    case IRON_CHAR_NUMB = 'ACO';
+
+    /**
+     * Issued prescription identification (AUC)
+     *
+     * The identification of the issued prescription.
+     */
+    case ISSU_PRES_IDEN = 'AUC';
+
+    /**
+     * Issuing bank's reference (AFR)
+     *
+     * Reference number of the issuing bank.
+     */
+    case ISSU_BANK_REFE = 'AFR';
+
+    /**
+     * Job number (JB)
+     *
+     * [1043] Identifies a piece of work.
+     */
+    case JOB_NUMB = 'JB';
+
+    /**
+     * Joint venture reference number (AHN)
+     *
+     * Reference number assigned to a joint venture agreement.
+     */
+    case JOIN_VENT_REFE_NUMB = 'AHN';
+
+    /**
+     * Judgment number (ATC)
+     *
+     * A reference number identifying the legal decision.
+     */
+    case JUDG_NUMB = 'ATC';
+
+    /**
+     * Kamer Van Koophandel (KVK) number (ATQ)
+     *
+     * An identification number assigned by the Dutch Chamber of Commerce to a
+     * business in the Netherlands.
+     */
+    case KAME_VAN_KOOP_KVK_NUMB = 'ATQ';
+
+    /**
+     * Laboratory registration number (AHH)
+     *
+     * Reference number is the official registration number of the laboratory.
+     */
+    case LABO_REGI_NUMB = 'AHH';
+
+    /**
+     * Last received banking status message reference (ATF)
+     *
+     * Reference number of the latest received banking status message.
+     */
+    case LAST_RECE_BANK_STAT_MESS_REFE = 'ATF';
+
+    /**
+     * Latest accounting entry record reference (AWP)
+     *
+     * Code identifying the reference of the latest accounting entry record.
+     */
+    case LATE_ACCO_ENTR_RECO_REFE = 'AWP';
+
+    /**
+     * Lease contract reference (AKV)
+     *
+     * Reference number of the lease contract.
+     */
+    case LEAS_CONT_REFE = 'AKV';
+
+    /**
+     * Letter of credit number (LC)
+     *
+     * Reference number identifying the letter of credit document.
+     */
+    case LETT_OF_CRED_NUMB = 'LC';
+
+    /**
+     * Lloyd's claims office reference (ADW)
+     *
+     * A number that identifies a Lloyd's claims office.
+     */
+    case LLOY_CLAI_OFFI_REFE = 'ADW';
+
+    /**
+     * Load planning number (LO)
+     *
+     * The reference that identifies the load planning number.
+     */
+    case LOAD_PLAN_NUMB = 'LO';
+
+    /**
+     * Loading authorisation identifier (LAN)
+     *
+     * [4092] Identifier assigned to the loading authorisation granted by the
+     * forwarding location e.g. railway or airport, when the consignment is
+     * subject to traffic limitations.
+     */
+    case LOAD_AUTH_IDEN = 'LAN';
+
+    /**
+     * Loan (ADC)
+     *
+     * Reference number for loan allocated by lending financial institution.
+     */
+    case LOAN = 'ADC';
+
+    /**
+     * Local Reference Number (AVZ)
+     *
+     * Number assigned by a national customs authority to an Entry Summary
+     * Declaration.
+     */
+    case LOCA_REFE_NUMB = 'AVZ';
+
+    /**
+     * Lockbox (LB)
+     *
+     * Type of cash management system offered by financial institutions to provide
+     * for collection of customers 'receivables'.
+     */
+    case LOCKBOX = 'LB';
+
+    /**
+     * Loss/event number (ACU)
+     *
+     * To reference to the unique number that is assigned to each major loss
+     * hitting the reinsurance industry.
+     */
+    case LOSS_NUMB = 'ACU';
+
+    /**
+     * Lower number in range (LAR)
+     *
+     * Lower number in a range of numbers.
+     */
+    case LOWE_NUMB_IN_RANG = 'LAR';
+
+    /**
+     * Mailing reference number (MRN)
+     *
+     * Identifies the party designated by the importer to receive certain customs
+     * correspondence in lieu of its being mailed directly to the importer.
+     */
+    case MAIL_REFE_NUMB = 'MRN';
+
+    /**
+     * Major force program number (AHF)
+     *
+     * Reference number according to Major Force Program (US).
+     */
+    case MAJO_FORC_PROG_NUMB = 'AHF';
+
+    /**
+     * Mandate Reference (AVS)
+     *
+     * Reference to a specific mandate given by the relevant party for underlying
+     * business or action.
+     */
+    case MAND_REFE = 'AVS';
+
+    /**
+     * Manual processing authority number (AHV)
+     *
+     * Number allocated to allow the manual processing of an entity.
+     */
+    case MANU_PROC_AUTH_NUMB = 'AHV';
+
+    /**
+     * Manufacturer defined repair rates reference (APW)
+     *
+     * Reference assigned by a manufacturer to their repair rates.
+     */
+    case MANU_DEFI_REPA_RATE_REFE = 'APW';
+
+    /**
+     * Manufacturer's material safety data sheet number (MSS)
+     *
+     * A number that identifies a manufacturer's material safety data sheet.
+     */
+    case MANU_MATE_SAFE_DATA_SHEE_NUMB = 'MSS';
+
+    /**
+     * Manufacturer's part number (MF)
+     *
+     * Reference number assigned by the manufacturer to his product or part.
+     */
+    case MANU_PART_NUMB = 'MF';
+
+    /**
+     * Manufacturing order number (MH)
+     *
+     * Reference number assigned by manufacturer for a given production quantity
+     * of products.
+     */
+    case MANU_ORDE_NUMB = 'MH';
+
+    /**
+     * Manufacturing quality agreement number (AUL)
+     *
+     * Reference number of a manufacturing quality agreement.
+     */
+    case MANU_QUAL_AGRE_NUMB = 'AUL';
+
+    /**
+     * Marketing plan identification number (MPIN) (AUW)
+     *
+     * Number identifying a marketing plan.
+     */
+    case MARK_PLAN_IDEN_NUMB_MPIN = 'AUW';
+
+    /**
+     * Marking/label reference (AFF)
+     *
+     * Reference where marking/label information derives from.
+     */
+    case MARK_REFE = 'AFF';
+
+    /**
+     * Master account number (ASS)
+     *
+     * A reference number identifying a master account.
+     */
+    case MAST_ACCO_NUMB = 'ASS';
+
+    /**
+     * Master air waybill number (MWB)
+     *
+     * Reference number assigned to a master air waybill, see: 1001 = 741.
+     */
+    case MAST_AIR_WAYB_NUMB = 'MWB';
+
+    /**
+     * Master bill of lading number (MB)
+     *
+     * Reference number assigned to a master bill of lading, see: 1001 = 704.
+     */
+    case MAST_BILL_OF_LADI_NUMB = 'MB';
+
+    /**
+     * Master label number (AAT)
+     *
+     * Identifies the master label number of any package type.
+     */
+    case MAST_LABE_NUMB = 'AAT';
+
+    /**
+     * Master solicitation procedures, terms, and conditions number (AJM)
+     *
+     * A number indicating a master solicitation containing procedures, terms and
+     * conditions.
+     */
+    case MAST_SOLI_PROC_TERM_AND_COND_NUMB = 'AJM';
+
+    /**
+     * Matching of entries, balanced (CAT)
+     *
+     * Reference to a balanced matching of entries.
+     */
+    case MATC_OF_ENTR_BALA = 'CAT';
+
+    /**
+     * Matching of entries, unbalanced (CAV)
+     *
+     * Reference to an unbalanced matching of entries.
+     */
+    case MATC_OF_ENTR_UNBA = 'CAV';
+
+    /**
+     * Matured certificate of deposit (ADB)
+     *
+     * Reference number for certificate of deposit allocated by issuing financial
+     * institution.
+     */
+    case MATU_CERT_OF_DEPO = 'ADB';
+
+    /**
+     * Meat cutting plant approval number (AVH)
+     *
+     * Veterinary licence number allocated by a national authority to a meat
+     * cutting plant.
+     */
+    case MEAT_CUTT_PLAN_APPR_NUMB = 'AVH';
+
+    /**
+     * Meat processing establishment registration number (AHS)
+     *
+     * Registration number allocated to a registered meat packing establishment by
+     * the local quarantine and inspection authority.
+     */
+    case MEAT_PROC_ESTA_REGI_NUMB = 'AHS';
+
+    /**
+     * Member number (AGU)
+     *
+     * Reference number assigned to a person as a member of a group of persons or
+     * a service scheme.
+     */
+    case MEMB_NUMB = 'AGU';
+
+    /**
+     * Message batch number (ALL)
+     *
+     * A number identifying a batch of messages.
+     */
+    case MESS_BATC_NUMB = 'ALL';
+
+    /**
+     * Message design group number (AQL)
+     *
+     * Reference number for a message design group.
+     */
+    case MESS_DESI_GROU_NUMB = 'AQL';
+
+    /**
+     * Message recipient (MR)
+     *
+     * A number that identifies the message recipient.
+     */
+    case MESS_RECI = 'MR';
+
+    /**
+     * Message sender (MS)
+     *
+     * A number that identifies the message sender.
+     */
+    case MESS_SEND = 'MS';
+
+    /**
+     * Meter reading at the beginning of the delivery (AKK)
+     *
+     * Meter reading at the beginning of the delivery.
+     */
+    case METE_READ_AT_THE_BEGI_OF_THE_DELI = 'AKK';
+
+    /**
+     * Meter reading at the end of delivery (AKL)
+     *
+     * Meter reading at the end of the delivery.
+     */
+    case METE_READ_AT_THE_END_OF_DELI = 'AKL';
+
+    /**
+     * Meter unit number (MG)
+     *
+     * Number identifying a unique meter unit.
+     */
+    case METE_UNIT_NUMB = 'MG';
+
+    /**
+     * Metered services consumption report number (AXC)
+     *
+     * A reference number identifying a previously communicated metered services
+     * consumption report.
+     */
+    case METE_SERV_CONS_REPO_NUMB = 'AXC';
+
+    /**
+     * Metering point (AVE)
+     *
+     * Reference to a metering point.
+     */
+    case METE_POIN = 'AVE';
+
+    /**
+     * Military Interdepartmental Purchase Request (MIPR) number (AJO)
+     *
+     * A number indicating an interdepartmental purchase request used by the
+     * military.
+     */
+    case MILI_INTE_PURC_REQU_MIPR_NUMB = 'AJO';
+
+    /**
+     * Ministerial certificate of homologation (AIE)
+     *
+     * Certificate of approval for components which are subject to legal
+     * restrictions and must be approved by the government.
+     */
+    case MINI_CERT_OF_HOMO = 'AIE';
+
+    /**
+     * Model (ALX)
+     *
+     * (7242) A reference used to identify a model.
+     */
+    case MODEL = 'ALX';
+
+    /**
+     * Motor vehicle identification number (VT)
+     *
+     * (8213) Reference identifying a motor vehicle used for transport. Normally
+     * is the vehicle registration number.
+     */
+    case MOTO_VEHI_IDEN_NUMB = 'VT';
+
+    /**
+     * Movement reference number (AVX)
+     *
+     * Number assigned by customs referencing receipt of an Entry Summary
+     * Declaration.
+     */
+    case MOVE_REFE_NUMB = 'AVX';
+
+    /**
+     * Municipality assigned business registry number (AAR)
+     *
+     * A reference number assigned by a municipality to identify a business.
+     */
+    case MUNI_ASSI_BUSI_REGI_NUMB = 'AAR';
+
+    /**
+     * Mutually defined reference number (ZZZ)
+     *
+     * Number based on party agreement.
+     */
+    case MUTU_DEFI_REFE_NUMB = 'ZZZ';
+
+    /**
+     * Named bank's reference (ANM)
+     *
+     * Reference number of the named bank.
+     */
+    case NAME_BANK_REFE = 'ANM';
+
+    /**
+     * National government business identification number (ARA)
+     *
+     * A business identification number which is assigned by a national
+     * government.
+     */
+    case NATI_GOVE_BUSI_IDEN_NUMB = 'ARA';
+
+    /**
+     * Net area (AWJ)
+     *
+     * Reference to an area of a net.
+     */
+    case NET_AREA = 'AWJ';
+
+    /**
+     * Net area supplier reference (AUT)
+     *
+     * A reference identifying a supplier within a net area.
+     */
+    case NET_AREA_SUPP_REFE = 'AUT';
+
+    /**
+     * Next rental agreement number (AMB)
+     *
+     * Number to identify the next rental agreement.
+     */
+    case NEXT_RENT_AGRE_NUMB = 'AMB';
+
+    /**
+     * Next rental agreement reason number (ALJ)
+     *
+     * Number to identify the reason for the next rental agreement.
+     */
+    case NEXT_RENT_AGRE_REAS_NUMB = 'ALJ';
+
+    /**
+     * Nomenclature Activity Classification Economy (NACE) identifier (AQS)
+     *
+     * A European industry classification code used to identify the activity of a
+     * company.
+     */
+    case NOME_ACTI_CLAS_ECON_NACE_IDEN = 'AQS';
+
+    /**
+     * Nomination number (AHG)
+     *
+     * Reference number assigned by a shipper to a request/ commitment-to-ship on
+     * a pipeline system.
+     */
+    case NOMI_NUMB = 'AHG';
+
+    /**
+     * Non-negotiable maritime transport document number (AEX)
+     *
+     * Reference number assigned to a sea waybill, see: 1001 = 712.
+     */
+    case NONN_MARI_TRAN_DOCU_NUMB = 'AEX';
+
+    /**
+     * Norme Activite Francaise (NAF) identifier (AQT)
+     *
+     * A French industry classification code assigned by the French government to
+     * identify the activity of a company.
+     */
+    case NORM_ACTI_FRAN_NAF_IDEN = 'AQT';
+
+    /**
+     * North American hazardous goods classification number (NA)
+     *
+     * Reference to materials designated as hazardous for purposes of
+     * transportation in North American commerce.
+     */
+    case NORT_AMER_HAZA_GOOD_CLAS_NUMB = 'NA';
+
+    /**
+     * Nota Fiscal (NF)
+     *
+     * Nota Fiscal is a registration number for shipments / deliveries within
+     * Brazil, issued by the local tax authorities and mandated for each shipment.
+     */
+    case NOTA_FISC = 'NF';
+
+    /**
+     * NOTIfication for COLlection number (NOTICOL) (ALZ)
+     *
+     * A reference assigned by a consignor to a notification document which
+     * indicates the availability of goods for collection.
+     */
+    case NOTI_FOR_COLL_NUMB_NOTI = 'ALZ';
+
+    /**
+     * Number of temporary importation document (AGM)
+     *
+     * Number assigned by customs to identify consignment in transit.
+     */
+    case NUMB_OF_TEMP_IMPO_DOCU = 'AGM';
+
+    /**
+     * Numero de Identificacion Tributaria (NIT) (ARE)
+     *
+     * A number assigned by the government to a business in some Latin American
+     * countries.
+     */
+    case NUME_DE_IDEN_TRIB_NIT = 'ARE';
+
+    /**
+     * Offer number (AAG)
+     *
+     * (1332) Reference number assigned by issuing party to an offer.
+     */
+    case OFFE_NUMB = 'AAG';
+
+    /**
+     * Order acknowledgement document identifier (AAA)
+     *
+     * [1018] Reference number identifying the acknowledgement of an order.
+     */
+    case ORDE_ACKN_DOCU_IDEN = 'AAA';
+
+    /**
+     * Order document identifier, buyer assigned (ON)
+     *
+     * [1022] Identifier assigned by the buyer to an order.
+     */
+    case ORDE_DOCU_IDEN_BUYE_ASSI = 'ON';
+
+    /**
+     * Order number (vendor) (VN)
+     *
+     * Reference number assigned by supplier to a buyer's purchase order.
+     */
+    case ORDE_NUMB_VEND = 'VN';
+
+    /**
+     * Order shipment grouping reference (CBB)
+     *
+     * A reference number identifying the grouping of purchase orders into one
+     * shipment.
+     */
+    case ORDE_SHIP_GROU_REFE = 'CBB';
+
+    /**
+     * Order status enquiry number (AXD)
+     *
+     * A reference number to a previously sent order status enquiry.
+     */
+    case ORDE_STAT_ENQU_NUMB = 'AXD';
+
+    /**
+     * Ordering customer consignment reference number (ADL)
+     *
+     * Reference number assigned to the consignment by the ordering customer.
+     */
+    case ORDE_CUST_CONS_REFE_NUMB = 'ADL';
+
+    /**
+     * Ordering customer's second reference number (AKI)
+     *
+     * Ordering customer's second reference number.
+     */
+    case ORDE_CUST_SECO_REFE_NUMB = 'AKI';
+
+    /**
+     * Organisation breakdown structure (AOM)
+     *
+     * A structure reference that identifies the breakdown of an organisation.
+     */
+    case ORGA_BREA_STRU = 'AOM';
+
+    /**
+     * Original certificate number (AIR)
+     *
+     * Number giving reference to an original certificate number.
+     */
+    case ORIG_CERT_NUMB = 'AIR';
+
+    /**
+     * Original filing number (ARN)
+     *
+     * A number assigned to the original filing.
+     */
+    case ORIG_FILI_NUMB = 'ARN';
+
+    /**
+     * Original Mandate Reference (AVR)
+     *
+     * Reference to a specific related original mandate given by the relevant
+     * party for underlying business or action in case of reference or mandate
+     * change.
+     */
+    case ORIG_MAND_REFE = 'AVR';
+
+    /**
+     * Original purchase order (OP)
+     *
+     * Reference to the order previously sent.
+     */
+    case ORIG_PURC_ORDE = 'OP';
+
+    /**
+     * Original submitter log number (APX)
+     *
+     * A control number assigned by the original submitter.
+     */
+    case ORIG_SUBM_LOG_NUMB = 'APX';
+
+    /**
+     * Original submitter, child Data Maintenance Request (DMR) log number (APZ)
+     *
+     * A Data Maintenance Request (DMR) original submitter's reference log number
+     * for a child DMR.
+     */
+    case ORIG_SUBM_CHIL_DATA_MAIN_REQU_DMR_LOG_NUMB = 'APZ';
+
+    /**
+     * Original submitter, parent Data Maintenance Request (DMR) log number (APY)
+     *
+     * A Data Maintenance Request (DMR) original submitter's reference log number
+     * for the parent DMR.
+     */
+    case ORIG_SUBM_PARE_DATA_MAIN_REQU_DMR_LOG_NUMB = 'APY';
+
+    /**
+     * Originator's reference (ABO)
+     *
+     * A unique reference assigned by the originator.
+     */
+    case ORIG_REFE = 'ABO';
+
+    /**
+     * Outerpackaging unit identification (ACI)
+     *
+     * Identifying marks on packing units contained within an outermost shipping
+     * unit.
+     */
+    case OUTE_UNIT_IDEN = 'ACI';
+
+    /**
+     * Package number (CW)
+     *
+     * (7070) Reference number identifying a package or carton within a
+     * consignment.
+     */
+    case PACK_NUMB = 'CW';
+
+    /**
+     * Packaging specification number (AHA)
+     *
+     * Reference number of documentation specifying the technical detail of
+     * packaging requirements.
+     */
+    case PACK_SPEC_NUMB = 'AHA';
+
+    /**
+     * Packaging unit identification (ACH)
+     *
+     * Identifying marks on packing units.
+     */
+    case PACK_UNIT_IDEN = 'ACH';
+
+    /**
+     * Packing list number (PK)
+     *
+     * [1014] Reference number assigned to a packing list.
+     */
+    case PACK_LIST_NUMB = 'PK';
+
+    /**
+     * Packing plant number (AIQ)
+     *
+     * Number to identify packing establishment.
+     */
+    case PACK_PLAN_NUMB = 'AIQ';
+
+    /**
+     * Paragraph (AJJ)
+     *
+     * A reference indicating a paragraph cited as the source of information.
+     */
+    case PARAGRAPH = 'AJJ';
+
+    /**
+     * Parent file (AND)
+     *
+     * Identifies the parent file in a structure of related files.
+     */
+    case PARE_FILE = 'AND';
+
+    /**
+     * Part reference indicator in a drawing (AJA)
+     *
+     * To designate the number which provides a cross reference between parts
+     * contained in a drawing and a parts catalogue.
+     */
+    case PART_REFE_INDI_IN_A_DRAW = 'AJA';
+
+    /**
+     * Partial shipment identifier (AAP)
+     *
+     * [1310] Identifier of a shipment which is part of an order.
+     */
+    case PART_SHIP_IDEN = 'AAP';
+
+    /**
+     * Party information message reference (ASG)
+     *
+     * Reference identifying a party information message.
+     */
+    case PART_INFO_MESS_REFE = 'ASG';
+
+    /**
+     * Party reference (AUB)
+     *
+     * The reference to a party.
+     */
+    case PART_REFE = 'AUB';
+
+    /**
+     * Party sequence number (APM)
+     *
+     * Reference identifying a party sequence number.
+     */
+    case PART_SEQU_NUMB = 'APM';
+
+    /**
+     * Passenger reservation number (AVF)
+     *
+     * Number assigned by the travel supplier to identify the passenger
+     * reservation.
+     */
+    case PASS_RESE_NUMB = 'AVF';
+
+    /**
+     * Passport number (AIG)
+     *
+     * Number assigned to a passport.
+     */
+    case PASS_NUMB = 'AIG';
+
+    /**
+     * Password (ASO)
+     *
+     * Code used for authentication purposes.
+     */
+    case PASSWORD = 'ASO';
+
+    /**
+     * Patron number (ARF)
+     *
+     * A number assigned by the government to a business in some Latin American
+     * countries. Note that "Patron" is a Spanish word, it is not a person who
+     * gives financial or other support.
+     */
+    case PATR_NUMB = 'ARF';
+
+    /**
+     * Payer's financial institution account number (PB)
+     *
+     * Originated company account number (ACH transfer), check, draft or wire.
+     */
+    case PAYE_FINA_INST_ACCO_NUMB = 'PB';
+
+    /**
+     * Payee's financial institution transit routing No. (RT)
+     *
+     * RDFI Transit routing number (ACH transfer).
+     */
+    case PAYE_FINA_INST_TRAN_ROUT_NO = 'RT';
+
+    /**
+     * Payer's reference number (AHK)
+     *
+     * Reference number of the party who pays.
+     */
+    case PAYE_REFE_NUMB = 'AHK';
+
+    /**
+     * Payer's financial institution transit routing No.(ACH transfers) (RR)
+     *
+     * ODFI (ACH transfer).
+     */
+    case PAYE_FINA_INST_TRAN_ROUT_NOAC_TRAN = 'RR';
+
+    /**
+     * Payment in advance request reference (ANC)
+     *
+     * A reference to a request for payment in advance.
+     */
+    case PAYM_IN_ADVA_REQU_REFE = 'ANC';
+
+    /**
+     * Payment instalment reference number (APB)
+     *
+     * A reference number given to a payment instalment to identify a specific
+     * instance of payment of a debt which can be paid at specified intervals.
+     */
+    case PAYM_INST_REFE_NUMB = 'APB';
+
+    /**
+     * Payment order number (AEK)
+     *
+     * A number that identifies a payment order.
+     */
+    case PAYM_ORDE_NUMB = 'AEK';
+
+    /**
+     * Payment plan reference (AMJ)
+     *
+     * A number which uniquely identifies a payment plan.
+     */
+    case PAYM_PLAN_REFE = 'AMJ';
+
+    /**
+     * Payment reference (PQ)
+     *
+     * Reference number assigned to a payment.
+     */
+    case PAYM_REFE = 'PQ';
+
+    /**
+     * Payment valuation number (AFY)
+     *
+     * Reference number assigned to a payment valuation.
+     */
+    case PAYM_VALU_NUMB = 'AFY';
+
+    /**
+     * Payroll deduction advice reference (AXR)
+     *
+     * A reference number identifying a payroll deduction advice.
+     */
+    case PAYR_DEDU_ADVI_REFE = 'AXR';
+
+    /**
+     * Payroll number (AGZ)
+     *
+     * Reference number assigned to the payroll of an organisation.
+     */
+    case PAYR_NUMB = 'AGZ';
+
+    /**
+     * Performed prescription identification (AUH)
+     *
+     * The identification of the prescription that has been carried into effect.
+     */
+    case PERF_PRES_IDEN = 'AUH';
+
+    /**
+     * Person registration number (AVP)
+     *
+     * A number assigned to an individual.
+     */
+    case PERS_REGI_NUMB = 'AVP';
+
+    /**
+     * Personal identity card number (ARJ)
+     *
+     * An identity card number assigned to a person.
+     */
+    case PERS_IDEN_CARD_NUMB = 'ARJ';
+
+    /**
+     * Phone number (AWV)
+     *
+     * A sequence of digits used to call from one telephone line to another in a
+     * public telephone network.
+     */
+    case PHON_NUMB = 'AWV';
+
+    /**
+     * Physical inventory recount reference number (ALN)
+     *
+     * A reference to a re-count of physically held inventory.
+     */
+    case PHYS_INVE_RECO_REFE_NUMB = 'ALN';
+
+    /**
+     * Physical medium (ASZ)
+     *
+     * Identifies the physical medium.
+     */
+    case PHYS_MEDI = 'ASZ';
+
+    /**
+     * Pick-up sheet number (AWU)
+     *
+     * Reference number assigned to a pick-up sheet.
+     */
+    case PICK_SHEE_NUMB = 'AWU';
+
+    /**
+     * Picture of a generic product (ASL)
+     *
+     * Reference identifying a picture of a generic product.
+     */
+    case PICT_OF_A_GENE_PROD = 'ASL';
+
+    /**
+     * Picture of actual product (ASK)
+     *
+     * Reference identifying the picture of an actual product.
+     */
+    case PICT_OF_ACTU_PROD = 'ASK';
+
+    /**
+     * Pilotage services exemption number (AVO)
+     *
+     * Number identifying the permit to not use pilotage services.
+     */
+    case PILO_SERV_EXEM_NUMB = 'AVO';
+
+    /**
+     * Pipeline number (AMZ)
+     *
+     * Number to identify a pipeline.
+     */
+    case PIPE_NUMB = 'AMZ';
+
+    /**
+     * Place of packing approval number (AVQ)
+     *
+     * Approval Number of the place where goods are packaged.
+     */
+    case PLAC_OF_PACK_APPR_NUMB = 'AVQ';
+
+    /**
+     * Place of positioning reference (AUA)
+     *
+     * Identifies the reference pertaining to the place of positioning.
+     */
+    case PLAC_OF_POSI_REFE = 'AUA';
+
+    /**
+     * Planning package (AOT)
+     *
+     * A reference for a planning package of work.
+     */
+    case PLAN_PACK = 'AOT';
+
+    /**
+     * Plant number (PE)
+     *
+     * A number that identifies a plant.
+     */
+    case PLAN_NUMB = 'PE';
+
+    /**
+     * Plot file (ANH)
+     *
+     * Reference number indicating that the file is a plot file.
+     */
+    case PLOT_FILE = 'ANH';
+
+    /**
+     * Policy form number (AWI)
+     *
+     * Number assigned to a policy form.
+     */
+    case POLI_FORM_NUMB = 'AWI';
+
+    /**
+     * Policy number (AKZ)
+     *
+     * Number assigned to a policy.
+     */
+    case POLI_NUMB = 'AKZ';
+
+    /**
+     * Post-entry reference (AEJ)
+     *
+     * Reference to a message related to a post-entry.
+     */
+    case POST_REFE = 'AEJ';
+
+    /**
+     * Pre-agreement number (AXN)
+     *
+     * A reference number identifying a pre-agreement.
+     */
+    case PREA_NUMB = 'AXN';
+
+    /**
+     * Premium rate table (AMO)
+     *
+     * Identifies the premium rate table.
+     */
+    case PREM_RATE_TABL = 'AMO';
+
+    /**
+     * Presenting bank's reference (ANS)
+     *
+     * Reference number of the presenting bank.
+     */
+    case PRES_BANK_REFE = 'ANS';
+
+    /**
+     * Previous banking status message reference (ATE)
+     *
+     * Message reference number of the previous banking status message being
+     * responded to.
+     */
+    case PREV_BANK_STAT_MESS_REFE = 'ATE';
+
+    /**
+     * Previous cargo control number (XP)
+     *
+     * Where a consignment is deconsolidated and/or transferred to the control of
+     * another carrier or freight forwarder (e.g. housebill, abstract) this
+     * references the previous (e.g. master) cargo control number.
+     */
+    case PREV_CARG_CONT_NUMB = 'XP';
+
+    /**
+     * Previous credit advice reference number (ALD)
+     *
+     * Reference number of the previous "Credit advice" message.
+     */
+    case PREV_CRED_ADVI_REFE_NUMB = 'ALD';
+
+    /**
+     * Previous delivery instruction number (AIF)
+     *
+     * The identification of a previous delivery instruction.
+     */
+    case PREV_DELI_INST_NUMB = 'AIF';
+
+    /**
+     * Previous delivery schedule number (ALM)
+     *
+     * A reference number identifying a previous delivery schedule.
+     */
+    case PREV_DELI_SCHE_NUMB = 'ALM';
+
+    /**
+     * Previous highest schedule number (SH)
+     *
+     * Number of the latest schedule of a previous period (ODETTE DELINS).
+     */
+    case PREV_HIGH_SCHE_NUMB = 'SH';
+
+    /**
+     * Previous invoice number (OI)
+     *
+     * Reference number identifying a previously issued invoice.
+     */
+    case PREV_INVO_NUMB = 'OI';
+
+    /**
+     * Previous member number (AGV)
+     *
+     * Reference number previously assigned to a member.
+     */
+    case PREV_MEMB_NUMB = 'AGV';
+
+    /**
+     * Previous rental agreement number (ALI)
+     *
+     * Number to identify the previous rental agreement number.
+     */
+    case PREV_RENT_AGRE_NUMB = 'ALI';
+
+    /**
+     * Previous request for metered reading reference number (AMA)
+     *
+     * Number to identify a previous request for a recording or reading of a
+     * measuring device.
+     */
+    case PREV_REQU_FOR_METE_READ_REFE_NUMB = 'AMA';
+
+    /**
+     * Previous scheme/plan number (AGX)
+     *
+     * Reference number previously assigned to a service scheme or plan.
+     */
+    case PREV_SCHE_NUMB = 'AGX';
+
+    /**
+     * Previous tax control number (ALT)
+     *
+     * A reference number identifying a previous tax control number.
+     */
+    case PREV_TAX_CONT_NUMB = 'ALT';
+
+    /**
+     * Price list number (PL)
+     *
+     * Reference number assigned to a price list.
+     */
+    case PRIC_LIST_NUMB = 'PL';
+
+    /**
+     * Price list version number (PI)
+     *
+     * A number that identifies the version of a price list.
+     */
+    case PRIC_LIST_VERS_NUMB = 'PI';
+
+    /**
+     * Price quote number (PR)
+     *
+     * Reference number assigned by the seller to a quote.
+     */
+    case PRIC_QUOT_NUMB = 'PR';
+
+    /**
+     * Price variation formula reference number (APK)
+     *
+     * The reference number which identifies a price variation formula.
+     */
+    case PRIC_VARI_FORM_REFE_NUMB = 'APK';
+
+    /**
+     * Price/sales catalogue response reference number (APF)
+     *
+     * A reference number identifying a response to a price/sales catalogue.
+     */
+    case PRIC_CATA_RESP_REFE_NUMB = 'APF';
+
+    /**
+     * Primary reference (AES)
+     *
+     * A number that identifies the primary reference.
+     */
+    case PRIM_REFE = 'AES';
+
+    /**
+     * Prime contractor contract number (PF)
+     *
+     * Reference number assigned by the client to the contract of the prime
+     * contractor.
+     */
+    case PRIM_CONT_CONT_NUMB = 'PF';
+
+    /**
+     * Principal reference number (ACL)
+     *
+     * A number that identifies the principal reference.
+     */
+    case PRIN_REFE_NUMB = 'ACL';
+
+    /**
+     * Principal's bank reference (ANR)
+     *
+     * Reference number of the principal's bank.
+     */
+    case PRIN_BANK_REFE = 'ANR';
+
+    /**
+     * Principal's reference (AOH)
+     *
+     * Reference number of the principal.
+     */
+    case PRIN_REFE = 'AOH';
+
+    /**
+     * Prior contractor registration number (ARY)
+     *
+     * A previous reference number used to identify a contractor.
+     */
+    case PRIO_CONT_REGI_NUMB = 'ARY';
+
+    /**
+     * Prior Data Universal Number System (DUNS) number (ARB)
+     *
+     * A previously assigned Data Universal Number System (DUNS) number.
+     */
+    case PRIO_DATA_UNIV_NUMB_SYST_DUNS_NUMB = 'ARB';
+
+    /**
+     * Prior policy number (AKY)
+     *
+     * The number of the prior policy.
+     */
+    case PRIO_POLI_NUMB = 'AKY';
+
+    /**
+     * Prior purchase order number (PW)
+     *
+     * Reference number of a purchase order previously sent to the supplier.
+     */
+    case PRIO_PURC_ORDE_NUMB = 'PW';
+
+    /**
+     * Prior trading partner identification number (ASN)
+     *
+     * Code specifying an identification number previously assigned to a trading
+     * partner.
+     */
+    case PRIO_TRAD_PART_IDEN_NUMB = 'ASN';
+
+    /**
+     * Processing plant number (AIS)
+     *
+     * Number to identify processing plant.
+     */
+    case PROC_PLAN_NUMB = 'AIS';
+
+    /**
+     * Procurement budget number (ALA)
+     *
+     * A number which uniquely identifies a procurement budget against which
+     * commitments or invoices can be allocated.
+     */
+    case PROC_BUDG_NUMB = 'ALA';
+
+    /**
+     * Product certification number (AXO)
+     *
+     * Number assigned by a governing body (or their agents) to a product which
+     * certifies compliance with a standard.
+     */
+    case PROD_CERT_NUMB = 'AXO';
+
+    /**
+     * Product change authority number (AKQ)
+     *
+     * Number which authorises a change in form, fit or function of a product.
+     */
+    case PROD_CHAN_AUTH_NUMB = 'AKQ';
+
+    /**
+     * Product characteristics directory (AVB)
+     *
+     * A reference to a product characteristics directory.
+     */
+    case PROD_CHAR_DIRE = 'AVB';
+
+    /**
+     * Product data file number (ASV)
+     *
+     * The number of a product data file.
+     */
+    case PROD_DATA_FILE_NUMB = 'ASV';
+
+    /**
+     * Product inquiry number (AXF)
+     *
+     * A reference number identifying a previously communicated product inquiry.
+     */
+    case PROD_INQU_NUMB = 'AXF';
+
+    /**
+     * Product reservation number (AEO)
+     *
+     * Number assigned by seller to identify reservation of specified products.
+     */
+    case PROD_RESE_NUMB = 'AEO';
+
+    /**
+     * Product sourcing agreement number (AIN)
+     *
+     * Reference number assigned to a product sourcing agreement.
+     */
+    case PROD_SOUR_AGRE_NUMB = 'AIN';
+
+    /**
+     * Product specification reference number (AXQ)
+     *
+     * Number assigned by the issuer to his product specification.
+     */
+    case PROD_SPEC_REFE_NUMB = 'AXQ';
+
+    /**
+     * Production code (PC)
+     *
+     * Number assigned by the manufacturer to a specified article or batch to
+     * identify the manufacturing date etc. for subsequent reference.
+     */
+    case PROD_CODE = 'PC';
+
+    /**
+     * Profile number (AMG)
+     *
+     * Reference number allocated to a discrete set of criteria.
+     */
+    case PROF_NUMB = 'AMG';
+
+    /**
+     * Proforma invoice document identifier (AAB)
+     *
+     * [1088] Reference number to identify a proforma invoice.
+     */
+    case PROF_INVO_DOCU_IDEN = 'AAB';
+
+    /**
+     * Project number (AEP)
+     *
+     * Reference number assigned to a project.
+     */
+    case PROJ_NUMB = 'AEP';
+
+    /**
+     * Project specification number (AER)
+     *
+     * Reference number identifying a project specification.
+     */
+    case PROJ_SPEC_NUMB = 'AER';
+
+    /**
+     * Promotion deal number (PD)
+     *
+     * Number assigned by a vendor to a special promotion activity.
+     */
+    case PROM_DEAL_NUMB = 'PD';
+
+    /**
+     * Proof of delivery reference number (ASI)
+     *
+     * A reference number identifying a proof of delivery which is generated by
+     * the goods recipient.
+     */
+    case PROO_OF_DELI_REFE_NUMB = 'ASI';
+
+    /**
+     * Proposed purchase order reference number (AUJ)
+     *
+     * A reference number assigned to a proposed purchase order.
+     */
+    case PROP_PURC_ORDE_REFE_NUMB = 'AUJ';
+
+    /**
+     * Public filing registration number (ARP)
+     *
+     * A number assigned at the time of registration of a public filing.
+     */
+    case PUBL_FILI_REGI_NUMB = 'ARP';
+
+    /**
+     * Publication issue number (ARM)
+     *
+     * A number assigned to identify a publication issue.
+     */
+    case PUBL_ISSU_NUMB = 'ARM';
+
+    /**
+     * Purchase for export Customs agreement number (ATB)
+     *
+     * A number assigned by a Customs authority allowing the purchase of goods
+     * free of tax because they are to be exported immediately after the purchase.
+     */
+    case PURC_FOR_EXPO_CUST_AGRE_NUMB = 'ATB';
+
+    /**
+     * Purchase order change number (PP)
+     *
+     * Reference number assigned by a buyer for a revision of a purchase order.
+     */
+    case PURC_ORDE_CHAN_NUMB = 'PP';
+
+    /**
+     * Purchase order number suffix (PS)
+     *
+     * A number added at the end of a purchase order number.
+     */
+    case PURC_ORDE_NUMB_SUFF = 'PS';
+
+    /**
+     * Purchase order response number (POR)
+     *
+     * Reference number assigned by the seller to an order response.
+     */
+    case PURC_ORDE_RESP_NUMB = 'POR';
+
+    /**
+     * Purchaser's request reference (APN)
+     *
+     * Reference identifying a request made by the purchaser.
+     */
+    case PURC_REQU_REFE = 'APN';
+
+    /**
+     * Purchasing activity clause number (AJC)
+     *
+     * A number indicating a clause applicable to a purchasing activity.
+     */
+    case PURC_ACTI_CLAU_NUMB = 'AJC';
+
+    /**
+     * Quantity valuation number (AFV)
+     *
+     * Reference number assigned to a quantity valuation.
+     */
+    case QUAN_VALU_NUMB = 'AFV';
+
+    /**
+     * Quantity valuation request number (AFW)
+     *
+     * Reference number assigned to a quantity valuation request.
+     */
+    case QUAN_VALU_REQU_NUMB = 'AFW';
+
+    /**
+     * Quarantine/treatment status reference number (AHT)
+     *
+     * Coded quarantine/treatment status of a container and its cargo and packing
+     * materials, generated by a shipping company based upon declarations
+     * presented by a shipper.
+     */
+    case QUAR_STAT_REFE_NUMB = 'AHT';
+
+    /**
+     * Quota number (ABJ)
+     *
+     * Reference number allocated by a government authority to identify a quota.
+     */
+    case QUOT_NUMB = 'ABJ';
+
+    /**
+     * Rail waybill number (WY)
+     *
+     * The number on a rail waybill.
+     */
+    case RAIL_WAYB_NUMB = 'WY';
+
+    /**
+     * Rail/road routing code (RC)
+     *
+     * International Western and Eastern European route code used in all rail
+     * organizations and specified in the international tariffs (rail tariffs)
+     * known by the customers.
+     */
+    case RAIL_ROUT_CODE = 'RC';
+
+    /**
+     * Railway consignment note number (RCN)
+     *
+     * Reference number assigned to a rail consignment note, see: 1001 = 720.
+     */
+    case RAIL_CONS_NOTE_NUMB = 'RCN';
+
+    /**
+     * Railway wagon number (ACR)
+     *
+     * (8260) Registered identification initials and numbers of railway wagon.
+     * Synonym: Rail car number.
+     */
+    case RAIL_WAGO_NUMB = 'ACR';
+
+    /**
+     * Rate code number (AWA)
+     *
+     * Number assigned by a buyer to rate a product.
+     */
+    case RATE_CODE_NUMB = 'AWA';
+
+    /**
+     * Rate note number (AHX)
+     *
+     * Reference assigned to a specific rate.
+     */
+    case RATE_NOTE_NUMB = 'AHX';
+
+    /**
+     * Receiver's file reference number (AOF)
+     *
+     * File reference number assigned by the receiver.
+     */
+    case RECE_FILE_REFE_NUMB = 'AOF';
+
+    /**
+     * Receiving advice number (ALO)
+     *
+     * A reference number to a receiving advice.
+     */
+    case RECE_ADVI_NUMB = 'ALO';
+
+    /**
+     * Receiving bank's authorization number (ANW)
+     *
+     * Authorization number of the receiving bank.
+     */
+    case RECE_BANK_AUTH_NUMB = 'ANW';
+
+    /**
+     * Receiving Bankgiro number (ATJ)
+     *
+     * Number of the receiving Bankgiro.
+     */
+    case RECE_BANK_NUMB = 'ATJ';
+
+    /**
+     * Receiving party's member identification (AGY)
+     *
+     * Identification used by the receiving party for a member of a service scheme
+     * or group of persons.
+     */
+    case RECE_PART_MEMB_IDEN = 'AGY';
+
+    /**
+     * Reference number assigned by third party (ANK)
+     *
+     * Reference number assigned by a third party.
+     */
+    case REFE_NUMB_ASSI_BY_THIR_PART = 'ANK';
+
+    /**
+     * Reference number of a request for metered reading (AMC)
+     *
+     * Number to identify a request for a recording or reading of a measuring
+     * device to be taken.
+     */
+    case REFE_NUMB_OF_A_REQU_FOR_METE_READ = 'AMC';
+
+    /**
+     * Reference number quoted on statement (AGN)
+     *
+     * Reference number quoted on the statement sent to the beneficiary for
+     * information purposes.
+     */
+    case REFE_NUMB_QUOT_ON_STAT = 'AGN';
+
+    /**
+     * Reference number to previous message (ACW)
+     *
+     * Reference number assigned to the message which was previously issued (e.g.
+     * in the case of a cancellation, the primary reference of the message to be
+     * cancelled will be quoted in this element).
+     */
+    case REFE_NUMB_TO_PREV_MESS = 'ACW';
+
+    /**
+     * Reference to account servicing bank's message (APL)
+     *
+     * Reference to the account servicing bank's message.
+     */
+    case REFE_TO_ACCO_SERV_BANK_MESS = 'APL';
+
+    /**
+     * Referred product for chemical analysis (AIY)
+     *
+     * A product number identifying the product which is used for chemical
+     * analysis considered valid for a group of products.
+     */
+    case REFE_PROD_FOR_CHEM_ANAL = 'AIY';
+
+    /**
+     * Referred product for mechanical analysis (AIX)
+     *
+     * A product number identifying the product which is used for mechanical
+     * analysis considered valid for a group of products.
+     */
+    case REFE_PROD_FOR_MECH_ANAL = 'AIX';
+
+    /**
+     * Regiristo Federal de Contribuyentes (ARQ)
+     *
+     * A federal tax identification number assigned by the Mexican tax authority.
+     */
+    case REGI_FEDE_DE_CONT = 'ARQ';
+
+    /**
+     * Registered capital reference (ALV)
+     *
+     * Registered capital reference of a company.
+     */
+    case REGI_CAPI_REFE = 'ALV';
+
+    /**
+     * Registered contractor activity type (AQU)
+     *
+     * Reference number identifying the type of registered contractor activity.
+     */
+    case REGI_CONT_ACTI_TYPE = 'AQU';
+
+    /**
+     * Registration number of previous Customs declaration (AEI)
+     *
+     * Registration number of the Customs declaration lodged for the previous
+     * Customs procedure.
+     */
+    case REGI_NUMB_OF_PREV_CUST_DECL = 'AEI';
+
+    /**
+     * Registro Informacion Fiscal (RIF) number (ARG)
+     *
+     * A number assigned by the government to a business in some Latin American
+     * countries.
+     */
+    case REGI_INFO_FISC_RIF_NUMB = 'ARG';
+
+    /**
+     * Registro Unico de Contribuyente (RUC) number (ARH)
+     *
+     * A number assigned by the government to a business in some Latin American
+     * countries.
+     */
+    case REGI_UNIC_DE_CONT_RUC_NUMB = 'ARH';
+
+    /**
+     * Registro Unico Tributario (RUT) (ATV)
+     *
+     * Tax identification number in Chile.
+     */
+    case REGI_UNIC_TRIB_RUT = 'ATV';
+
+    /**
+     * Reinsurer's claim number (APE)
+     *
+     * To identify the number assigned to the claim by the reinsurer.
+     */
+    case REIN_CLAI_NUMB = 'APE';
+
+    /**
+     * Related document number (ACE)
+     *
+     * Reference number identifying a related document.
+     */
+    case RELA_DOCU_NUMB = 'ACE';
+
+    /**
+     * Related party (AWO)
+     *
+     * Reference of a related party.
+     */
+    case RELA_PART = 'AWO';
+
+    /**
+     * Release number (RE)
+     *
+     * Reference number assigned to identify a release of a set of rules,
+     * conventions, conditions, etc.
+     */
+    case RELE_NUMB = 'RE';
+
+    /**
+     * Remittance advice number (RA)
+     *
+     * A number that identifies a remittance advice.
+     */
+    case REMI_ADVI_NUMB = 'RA';
+
+    /**
+     * Remitting bank's reference (ANQ)
+     *
+     * Reference number of the remitting bank.
+     */
+    case REMI_BANK_REFE = 'ANQ';
+
+    /**
+     * Repair data request number (AME)
+     *
+     * A number which uniquely identifies a request for data about repairs.
+     */
+    case REPA_DATA_REQU_NUMB = 'AME';
+
+    /**
+     * Repair estimate number (ABF)
+     *
+     * A number identifying a repair estimate.
+     */
+    case REPA_ESTI_NUMB = 'ABF';
+
+    /**
+     * Replaced meter unit number (AMK)
+     *
+     * Number identifying the replaced meter unit.
+     */
+    case REPL_METE_UNIT_NUMB = 'AMK';
+
+    /**
+     * Replacing part number (ABM)
+     *
+     * New part number which replaces the existing part number.
+     */
+    case REPL_PART_NUMB = 'ABM';
+
+    /**
+     * Replenishment purchase order number (AFH)
+     *
+     * Purchase order number specified by the buyer for the assignment to vendor's
+     * replenishment orders in a vendor managed inventory program.
+     */
+    case REPL_PURC_ORDE_NUMB = 'AFH';
+
+    /**
+     * Replenishment purchase order range end number (AML)
+     *
+     * Ending number of a range of purchase order numbers assigned by the buyer to
+     * vendor's replenishment orders.
+     */
+    case REPL_PURC_ORDE_RANG_END_NUMB = 'AML';
+
+    /**
+     * Replenishment purchase order range start number (AKM)
+     *
+     * Starting number of a range of purchase order numbers assigned by the buyer
+     * to vendor's replenishment orders.
+     */
+    case REPL_PURC_ORDE_RANG_STAR_NUMB = 'AKM';
+
+    /**
+     * Report number (ADY)
+     *
+     * Reference to a report to Customs by a carrier at the point of entry,
+     * encompassing both conveyance and consignment information.
+     */
+    case REPO_NUMB = 'ADY';
+
+    /**
+     * Reporting form number (ALE)
+     *
+     * Reference number assigned to the reporting form.
+     */
+    case REPO_FORM_NUMB = 'ALE';
+
+    /**
+     * Request for cancellation number (AET)
+     *
+     * A number that identifies a request for cancellation.
+     */
+    case REQU_FOR_CANC_NUMB = 'AET';
+
+    /**
+     * Request for quote number (AHU)
+     *
+     * Reference number assigned by the requestor to a request for quote.
+     */
+    case REQU_FOR_QUOT_NUMB = 'AHU';
+
+    /**
+     * Request number (AGI)
+     *
+     * The reference number of a request.
+     */
+    case REQU_NUMB = 'AGI';
+
+    /**
+     * Reservation office identifier (LRC)
+     *
+     * Reference to the office where a reservation was made.
+     */
+    case RESE_OFFI_IDEN = 'LRC';
+
+    /**
+     * Reservation station indentifier (AVT)
+     *
+     * Reference to the station where a reservation was made.
+     */
+    case RESE_STAT_INDE = 'AVT';
+
+    /**
+     * Reserved goods identifier (AWY)
+     *
+     * A reference number identifying goods in stock which have been reserved for
+     * a party.
+     */
+    case RESE_GOOD_IDEN = 'AWY';
+
+    /**
+     * Returnable container reference number (ALP)
+     *
+     * A reference number identifying a returnable container.
+     */
+    case RETU_CONT_REFE_NUMB = 'ALP';
+
+    /**
+     * Returns notice number (ALQ)
+     *
+     * A reference number to a returns notice.
+     */
+    case RETU_NOTI_NUMB = 'ALQ';
+
+    /**
+     * Road consignment note number (CMR)
+     *
+     * Reference number assigned to a road consignment note, see: 1001 = 730.
+     */
+    case ROAD_CONS_NOTE_NUMB = 'CMR';
+
+    /**
+     * Safe custody number (ASR)
+     *
+     * The number of a file or portfolio kept for safe custody on behalf of
+     * clients.
+     */
+    case SAFE_CUST_NUMB = 'ASR';
+
+    /**
+     * Safe deposit box number (ATI)
+     *
+     * Number of the safe deposit box.
+     */
+    case SAFE_DEPO_BOX_NUMB = 'ATI';
+
+    /**
+     * Sales department number (SD)
+     *
+     * A number that identifies a sales department.
+     */
+    case SALE_DEPA_NUMB = 'SD';
+
+    /**
+     * Sales forecast number (ALR)
+     *
+     * A reference number identifying a sales forecast.
+     */
+    case SALE_FORE_NUMB = 'ALR';
+
+    /**
+     * Sales office number (SM)
+     *
+     * A number that identifies a sales office.
+     */
+    case SALE_OFFI_NUMB = 'SM';
+
+    /**
+     * Sales person number (SA)
+     *
+     * Identification number of a sales person.
+     */
+    case SALE_PERS_NUMB = 'SA';
+
+    /**
+     * Sales region number (SB)
+     *
+     * A number that identifies a sales region.
+     */
+    case SALE_REGI_NUMB = 'SB';
+
+    /**
+     * Sales report number (ALS)
+     *
+     * A reference number identifying a sales report.
+     */
+    case SALE_REPO_NUMB = 'ALS';
+
+    /**
+     * Scan line (SP)
+     *
+     * A number that identifies a scan line.
+     */
+    case SCAN_LINE = 'SP';
+
+    /**
+     * Scheme/plan number (AGW)
+     *
+     * Reference number assigned to a service scheme or plan.
+     */
+    case SCHE_NUMB = 'AGW';
+
+    /**
+     * Second beneficiary's reference (AFP)
+     *
+     * Reference of the second beneficiary.
+     */
+    case SECO_BENE_REFE = 'AFP';
+
+    /**
+     * Secondary Customs reference (AFM)
+     *
+     * A number that identifies the secondary customs reference.
+     */
+    case SECO_CUST_REFE = 'AFM';
+
+    /**
+     * Secretariat number (ATD)
+     *
+     * A reference number identifying a secretariat.
+     */
+    case SECR_NUMB = 'ATD';
+
+    /**
+     * Secure delivery terms and conditions agreement reference (ADX)
+     *
+     * A reference to a secure delivery terms and conditions agreement. A secured
+     * delivery agreement is an agreement containing terms and conditions to
+     * secure deliveries in case of failure in the production or logistics process
+     * of the supplier.
+     */
+    case SECU_DELI_TERM_AND_COND_AGRE_REFE = 'ADX';
+
+    /**
+     * Seller's catalogue number (ABN)
+     *
+     * Identification number assigned to a seller's catalogue.
+     */
+    case SELL_CATA_NUMB = 'ABN';
+
+    /**
+     * Sellers reference number (SS)
+     *
+     * Reference number assigned to a transaction by the seller.
+     */
+    case SELL_REFE_NUMB = 'SS';
+
+    /**
+     * Sender's clause number (AQO)
+     *
+     * The number that identifies the sender's clause.
+     */
+    case SEND_CLAU_NUMB = 'AQO';
+
+    /**
+     * Sender's file reference number (AOE)
+     *
+     * File reference number assigned by the sender.
+     */
+    case SEND_FILE_REFE_NUMB = 'AOE';
+
+    /**
+     * Sender's reference to the original message (AGO)
+     *
+     * The reference provided by the sender of the original message.
+     */
+    case SEND_REFE_TO_THE_ORIG_MESS = 'AGO';
+
+    /**
+     * Sending bank's reference number (ANY)
+     *
+     * Reference number of the sending bank.
+     */
+    case SEND_BANK_REFE_NUMB = 'ANY';
+
+    /**
+     * Sending Bankgiro number (ATK)
+     *
+     * Number of the sending Bankgiro.
+     */
+    case SEND_BANK_NUMB = 'ATK';
+
+    /**
+     * Serial number (SE)
+     *
+     * Identification number of an item which distinguishes this specific item out
+     * of an number of identical items.
+     */
+    case SERI_NUMB = 'SE';
+
+    /**
+     * Serial shipping container code (AXI)
+     *
+     * Reference number identifying a logistic unit.
+     */
+    case SERI_SHIP_CONT_CODE = 'AXI';
+
+    /**
+     * Service category reference (AWM)
+     *
+     * Reference identifying the service category.
+     */
+    case SERV_CATE_REFE = 'AWM';
+
+    /**
+     * Service group identification number (AGT)
+     *
+     * Identification used for a group of services.
+     */
+    case SERV_GROU_IDEN_NUMB = 'AGT';
+
+    /**
+     * Service provider (AWK)
+     *
+     * Reference of the service provider.
+     */
+    case SERV_PROV = 'AWK';
+
+    /**
+     * Service relation number (AXH)
+     *
+     * A reference number identifying the relationship between a service provider
+     * and a service client, e.g., treatment of a patient in a hospital, usage by
+     * a member of a library facility, etc.
+     */
+    case SERV_RELA_NUMB = 'AXH';
+
+    /**
+     * Ship from (SF)
+     *
+     * A number that identifies a ship from location.
+     */
+    case SHIP_FROM = 'SF';
+
+    /**
+     * Ship notice/manifest number (MA)
+     *
+     * The number assigned to a ship notice or manifest.
+     */
+    case SHIP_NOTI_NUMB = 'MA';
+
+    /**
+     * Ship's stay reference number (ATZ)
+     *
+     * (1099) Reference number assigned by a port authority to the stay of a
+     * vessel in the port.
+     */
+    case SHIP_STAY_REFE_NUMB = 'ATZ';
+
+    /**
+     * Shipment reference number (SRN)
+     *
+     * [1065] Reference number assigned to a shipment.
+     */
+    case SHIP_REFE_NUMB = 'SRN';
+
+    /**
+     * Shipowner's authorization number (ADM)
+     *
+     * Reference number assigned by the shipowner as an authorization number to
+     * transport certain goods (such as hazardous goods, cool or reefer goods).
+     */
+    case SHIP_AUTH_NUMB = 'ADM';
+
+    /**
+     * Shipping label serial number (LA)
+     *
+     * The serial number on a shipping label.
+     */
+    case SHIP_LABE_SERI_NUMB = 'LA';
+
+    /**
+     * Shipping note number (AEV)
+     *
+     * [1123] Reference number assigned to a shipping note.
+     */
+    case SHIP_NOTE_NUMB = 'AEV';
+
+    /**
+     * Shipping unit identification (ACC)
+     *
+     * Identifying marks on the outermost unit that is used to transport
+     * merchandise.
+     */
+    case SHIP_UNIT_IDEN = 'ACC';
+
+    /**
+     * SID (Shipper's identifying number for shipment) (SI)
+     *
+     * A number that identifies the SID (shipper's identification) number for a
+     * shipment.
+     */
+    case SID_SHIP_IDEN_NUMB_FOR_SHIP = 'SI';
+
+    /**
+     * Signal code number (AHE)
+     *
+     * Reference number to identify a signal.
+     */
+    case SIGN_CODE_NUMB = 'AHE';
+
+    /**
+     * Single transaction sequence number (AGJ)
+     *
+     * A number that identifies a single transaction sequence.
+     */
+    case SING_TRAN_SEQU_NUMB = 'AGJ';
+
+    /**
+     * Site specific procedures, terms, and conditions number (AJL)
+     *
+     * A number indicating a set of site specific procedures, terms and
+     * conditions.
+     */
+    case SITE_SPEC_PROC_TERM_AND_COND_NUMB = 'AJL';
+
+    /**
+     * Situation number (AFZ)
+     *
+     * Common reference number given to documents concerning a determined period
+     * of works.
+     */
+    case SITU_NUMB = 'AFZ';
+
+    /**
+     * Slaughter plant number (AIT)
+     *
+     * Number to identify slaughter plant.
+     */
+    case SLAU_PLAN_NUMB = 'AIT';
+
+    /**
+     * Slaughterhouse approval number (AVG)
+     *
+     * Veterinary licence number allocated by a national authority to a
+     * slaughterhouse.
+     */
+    case SLAU_APPR_NUMB = 'AVG';
+
+    /**
+     * Social security number (ARR)
+     *
+     * An identification number assigned to an individual by the social security
+     * administration.
+     */
+    case SOCI_SECU_NUMB = 'ARR';
+
+    /**
+     * Software editor reference (AUM)
+     *
+     * Reference identifying the software editor.
+     */
+    case SOFT_EDIT_REFE = 'AUM';
+
+    /**
+     * Software quality reference (AUO)
+     *
+     * Reference allocated to the software by a quality assurance agency.
+     */
+    case SOFT_QUAL_REFE = 'AUO';
+
+    /**
+     * Software reference (AUN)
+     *
+     * Reference identifying the software.
+     */
+    case SOFT_REFE = 'AUN';
+
+    /**
+     * Source document internal reference (AOG)
+     *
+     * Reference number assigned to a source document for internal usage.
+     */
+    case SOUR_DOCU_INTE_REFE = 'AOG';
+
+    /**
+     * Special budget account number (APU)
+     *
+     * The number of a special budget account.
+     */
+    case SPEC_BUDG_ACCO_NUMB = 'APU';
+
+    /**
+     * Special instructions number (AJK)
+     *
+     * A number indicating a citation used for special instructions.
+     */
+    case SPEC_INST_NUMB = 'AJK';
+
+    /**
+     * Specification number (SZ)
+     *
+     * Number assigned by the issuer to his specification.
+     */
+    case SPEC_NUMB = 'SZ';
+
+    /**
+     * Split delivery number (AXG)
+     *
+     * A reference number identifying a split delivery.
+     */
+    case SPLI_DELI_NUMB = 'AXG';
+
+    /**
+     * Standard Carrier Alpha Code (SCAC) number (AAZ)
+     *
+     * For maritime shipments, this code qualifies a Standard Alpha Carrier Code
+     * (SCAC) as issued by the United Stated National Motor Traffic Association
+     * Inc.
+     */
+    case STAN_CARR_ALPH_CODE_SCAC_NUMB = 'AAZ';
+
+    /**
+     * Standard Industry Classification (SIC) number (AJT)
+     *
+     * A number specifying a standard industry classification.
+     */
+    case STAN_INDU_CLAS_SIC_NUMB = 'AJT';
+
+    /**
+     * Standard number of inspection document (ALW)
+     *
+     * Code identifying the standard number of the inspection document supplied.
+     */
+    case STAN_NUMB_OF_INSP_DOCU = 'ALW';
+
+    /**
+     * Standard's code number (GD)
+     *
+     * Number to identify a specific parameter within a standardization
+     * description (e.g. M5 for screws or DIN A4 for paper).
+     */
+    case STAN_CODE_NUMB = 'GD';
+
+    /**
+     * Standard's number (GA)
+     *
+     * Number to identify a standardization description (e.g. ISO 9375).
+     */
+    case STAN_NUMB = 'GA';
+
+    /**
+     * Standard's version number (AMY)
+     *
+     * The version number assigned to a standard.
+     */
+    case STAN_VERS_NUMB = 'AMY';
+
+    /**
+     * State or province assigned entity identification (AQW)
+     *
+     * Reference number of an entity assigned by a state or province.
+     */
+    case STAT_OR_PROV_ASSI_ENTI_IDEN = 'AQW';
+
+    /**
+     * Statement number (ADP)
+     *
+     * A reference number identifying a statement.
+     */
+    case STAT_NUMB = 'ADP';
+
+    /**
+     * Statement of work (AOR)
+     *
+     * A reference number for a statement of work.
+     */
+    case STAT_OF_WORK = 'AOR';
+
+    /**
+     * Station reference number (STA)
+     *
+     * International UIC code assigned to every European rail station (CIM
+     * convention).
+     */
+    case STAT_REFE_NUMB = 'STA';
+
+    /**
+     * Statistic Bundes Amt (SBA) identifier (AQV)
+     *
+     * A German industry classification code issued by Statistic Bundes Amt (SBA)
+     * to identify the activity of a company.
+     */
+    case STAT_BUND_AMT_SBA_IDEN = 'AQV';
+
+    /**
+     * Status report number (AQK)
+     *
+     * (1125) The reference number for a status report.
+     */
+    case STAT_REPO_NUMB = 'AQK';
+
+    /**
+     * Stock adjustment number (ARZ)
+     *
+     * A number identifying a stock adjustment.
+     */
+    case STOC_ADJU_NUMB = 'ARZ';
+
+    /**
+     * Stock exchange company identifier (ARU)
+     *
+     * A reference assigned by the stock exchange to a company.
+     */
+    case STOC_EXCH_COMP_IDEN = 'ARU';
+
+    /**
+     * Stock keeping unit number (ABW)
+     *
+     * A number that identifies the stock keeping unit.
+     */
+    case STOC_KEEP_UNIT_NUMB = 'ABW';
+
+    /**
+     * Sub file (ANE)
+     *
+     * Identifies the sub file in a structure of related files.
+     */
+    case SUB_FILE = 'ANE';
+
+    /**
+     * Sub-house bill of lading number (ABH)
+     *
+     * Reference assigned to a sub-house bill of lading.
+     */
+    case SUBH_BILL_OF_LADI_NUMB = 'ABH';
+
+    /**
+     * Substitute air waybill number (AEY)
+     *
+     * Reference number assigned to a substitute air waybill, see: 1001 = 743.
+     */
+    case SUBS_AIR_WAYB_NUMB = 'AEY';
+
+    /**
+     * Suffix (AJY)
+     *
+     * A reference to specify a suffix added to the end of a basic identifier.
+     */
+    case SUFFIX = 'AJY';
+
+    /**
+     * Supplier's control number (AEU)
+     *
+     * Reference to a file regarding a control of the supplier carried out on
+     * departure of the goods.
+     */
+    case SUPP_CONT_NUMB = 'AEU';
+
+    /**
+     * Supplier's credit claim reference number (ASJ)
+     *
+     * A reference number identifying a supplier's credit claim.
+     */
+    case SUPP_CRED_CLAI_REFE_NUMB = 'ASJ';
+
+    /**
+     * Supplier's customer reference number (AVC)
+     *
+     * A number, assigned by a supplier, to reference a customer.
+     */
+    case SUPP_CUST_REFE_NUMB = 'AVC';
+
+    /**
+     * Swap order number (SW)
+     *
+     * Number assigned by the seller to a swap order (see definition of DE 1001,
+     * code 229).
+     */
+    case SWAP_ORDE_NUMB = 'SW';
+
+    /**
+     * Symbol number (AEC)
+     *
+     * A number that identifies a symbol.
+     */
+    case SYMB_NUMB = 'AEC';
+
+    /**
+     * Systeme Informatique pour le Repertoire des ENtreprises (SIREN) number (ARK)
+     *
+     * An identification number known as a SIREN assigned to a business in France.
+     */
+    case SYST_INFO_POUR_LE_REPE_DES_ENTR_SIRE_NUMB = 'ARK';
+
+    /**
+     * Systeme Informatique pour le Repertoire des ETablissements (SIRET) number (ARL)
+     *
+     * An identification number known as a SIRET assigned to a business location
+     * in France.
+     */
+    case SYST_INFO_POUR_LE_REPE_DES_ETAB_SIRE_NUMB = 'ARL';
+
+    /**
+     * Tariff number (AFG)
+     *
+     * A number that identifies a tariff.
+     */
+    case TARI_NUMB = 'AFG';
+
+    /**
+     * Tax exemption licence number (TL)
+     *
+     * Number assigned by the tax authorities to a party indicating its tax
+     * exemption authorization. This number could relate to a specified business
+     * type, a specified local area or a class of products.
+     */
+    case TAX_EXEM_LICE_NUMB = 'TL';
+
+    /**
+     * Tax payment identifier (ABI)
+     *
+     * [1168] Reference number identifying a payment of a duty or tax e.g. under a
+     * transit procedure.
+     */
+    case TAX_PAYM_IDEN = 'ABI';
+
+    /**
+     * Tax registration number (AHP)
+     *
+     * The registration number by which a company/organization is identified with
+     * the tax administration.
+     */
+    case TAX_REGI_NUMB = 'AHP';
+
+    /**
+     * Team assignment number (CST)
+     *
+     * Team number assigned to a group that is responsible for working a
+     * particular transaction.
+     */
+    case TEAM_ASSI_NUMB = 'CST';
+
+    /**
+     * Technical document number (AJW)
+     *
+     * A number specifying a technical document.
+     */
+    case TECH_DOCU_NUMB = 'AJW';
+
+    /**
+     * Technical order number (AJX)
+     *
+     * A reference to an order that specifies a technical change.
+     */
+    case TECH_ORDE_NUMB = 'AJX';
+
+    /**
+     * Technical phase reference (ARX)
+     *
+     * A reference which identifies a specific technical phase.
+     */
+    case TECH_PHAS_REFE = 'ARX';
+
+    /**
+     * Technical regulation (ANG)
+     *
+     * Reference number identifying a technical regulation.
+     */
+    case TECH_REGU = 'ANG';
+
+    /**
+     * Telex message number (TE)
+     *
+     * Reference number identifying a telex message.
+     */
+    case TELE_MESS_NUMB = 'TE';
+
+    /**
+     * Terminal operator's consignment reference (TCR)
+     *
+     * Reference assigned to a consignment by the terminal operator.
+     */
+    case TERM_OPER_CONS_REFE = 'TCR';
+
+    /**
+     * Test report number (TP)
+     *
+     * Reference number identifying a test report document relevant to the
+     * product.
+     */
+    case TEST_REPO_NUMB = 'TP';
+
+    /**
+     * Test specification number (AXJ)
+     *
+     * A reference number identifying a test specification.
+     */
+    case TEST_SPEC_NUMB = 'AXJ';
+
+    /**
+     * Text Element Identifier deletion reference (ABX)
+     *
+     * The reference used within a given TEI (Text Element Identifier) which is to
+     * be deleted.
+     */
+    case TEXT_ELEM_IDEN_DELE_REFE = 'ABX';
+
+    /**
+     * Third bank's reference (AKN)
+     *
+     * Reference number of the third bank.
+     */
+    case THIR_BANK_REFE = 'AKN';
+
+    /**
+     * Through bill of lading number (AFA)
+     *
+     * Reference number assigned to a through bill of lading, see: 1001 = 761.
+     */
+    case THRO_BILL_OF_LADI_NUMB = 'AFA';
+
+    /**
+     * Ticket control number (CBA)
+     *
+     * Reference giving access to all the details associated with the ticket.
+     */
+    case TICK_CONT_NUMB = 'CBA';
+
+    /**
+     * Time series reference (AUU)
+     *
+     * Reference to a time series.
+     */
+    case TIME_SERI_REFE = 'AUU';
+
+    /**
+     * TIR carnet number (TI)
+     *
+     * Reference number assigned to a TIR carnet.
+     */
+    case TIR_CARN_NUMB = 'TI';
+
+    /**
+     * Tokyo SHOKO Research (TSR) business identifier (ARI)
+     *
+     * A number assigned to a business by TSR.
+     */
+    case TOKY_SHOK_RESE_TSR_BUSI_IDEN = 'ARI';
+
+    /**
+     * Tooling contract number (AXL)
+     *
+     * A reference number of the tooling contract.
+     */
+    case TOOL_CONT_NUMB = 'AXL';
+
+    /**
+     * TRACES party identification (AXS)
+     *
+     * The party identification number used in the European Union's Trade Control
+     * and Expert System (TRACES).
+     */
+    case TRAC_PART_IDEN = 'AXS';
+
+    /**
+     * Trader account number (ADZ)
+     *
+     * Number assigned by a Customs authority which uniquely identifies a trader
+     * (i.e. importer, exporter or declarant) for Customs purposes.
+     */
+    case TRAD_ACCO_NUMB = 'ADZ';
+
+    /**
+     * Trading partner identification number (ASM)
+     *
+     * Code specifying an identification assigned to an entity with whom one
+     * conducts trade.
+     */
+    case TRAD_PART_IDEN_NUMB = 'ASM';
+
+    /**
+     * Training flight number (AHC)
+     *
+     * Non-revenue producing airline flight for training purposes.
+     */
+    case TRAI_FLIG_NUMB = 'AHC';
+
+    /**
+     * Transaction reference number (TN)
+     *
+     * Reference applied to a transaction between two or more parties over a
+     * defined life cycle; e.g. number applied by importer or broker to obtain
+     * release from Customs, may then used to control declaration through final
+     * accounting (synonyms: declaration, entry number).
+     */
+    case TRAN_REFE_NUMB = 'TN';
+
+    /**
+     * Transfer number (TF)
+     *
+     * An extra number assigned to goods or a container which functions as a
+     * reference number or as an authorization number to get the goods or
+     * container released from a certain party.
+     */
+    case TRAN_NUMB = 'TF';
+
+    /**
+     * Transit (onward carriage) guarantee (bond) number (ABK)
+     *
+     * Reference number to identify the guarantee or security provided for Customs
+     * transit operation (CCC).
+     */
+    case TRAN_ONWA_CARR_GUAR_BOND_NUMB = 'ABK';
+
+    /**
+     * Transport contract document identifier (AAS)
+     *
+     * [1188] Reference number to identify a document evidencing a transport
+     * contract.
+     */
+    case TRAN_CONT_DOCU_IDEN = 'AAS';
+
+    /**
+     * Transport contract reference number (AHI)
+     *
+     * Reference number of a transport contract.
+     */
+    case TRAN_CONT_REFE_NUMB = 'AHI';
+
+    /**
+     * Transport costs reference number (AKW)
+     *
+     * Reference number of the transport costs.
+     */
+    case TRAN_COST_REFE_NUMB = 'AKW';
+
+    /**
+     * Transport equipment acceptance order reference (ATX)
+     *
+     * Reference number assigned to an order to accept transport equipment that is
+     * to be delivered by an inland carrier to a specified facility.
+     */
+    case TRAN_EQUI_ACCE_ORDE_REFE = 'ATX';
+
+    /**
+     * Transport equipment gross mass verification order reference (VOR)
+     *
+     * Reference number identifying the order for obtaining a Verified Gross Mass
+     * (weight) of a packed transport equipment as per SOLAS Chapter VI,
+     * Regulation 2, paragraphs 4-6.
+     */
+    case TRAN_EQUI_GROS_MASS_VERI_ORDE_REFE = 'VOR';
+
+    /**
+     * Transport equipment gross mass verification reference number (VGR)
+     *
+     * Reference number identifying the documentation of a transport equipment
+     * gross mass (weight) verification.
+     */
+    case TRAN_EQUI_GROS_MASS_VERI_REFE_NUMB = 'VGR';
+
+    /**
+     * Transport equipment identifier (AAQ)
+     *
+     * [8260] To identify a piece if transport equipment e.g. container or unit
+     * load device.
+     */
+    case TRAN_EQUI_IDEN = 'AAQ';
+
+    /**
+     * Transport equipment release order reference (ATY)
+     *
+     * Reference number assigned to an order to release transport equipment which
+     * is to be picked up by an inland carrier from a specified facility.
+     */
+    case TRAN_EQUI_RELE_ORDE_REFE = 'ATY';
+
+    /**
+     * Transport equipment return reference (AKC)
+     *
+     * Reference known at the address to return equipment to.
+     */
+    case TRAN_EQUI_RETU_REFE = 'AKC';
+
+    /**
+     * Transport equipment seal identifier (SN)
+     *
+     * [9308] The identification number of a seal affixed to a piece of transport
+     * equipment.
+     */
+    case TRAN_EQUI_SEAL_IDEN = 'SN';
+
+    /**
+     * Transport equipment stripping order (AKX)
+     *
+     * Reference number assigned to the order to strip goods from transport
+     * equipment.
+     */
+    case TRAN_EQUI_STRI_ORDE = 'AKX';
+
+    /**
+     * Transport equipment stuffing order (AKF)
+     *
+     * Reference number assigned to the order to stuff goods in transport
+     * equipment.
+     */
+    case TRAN_EQUI_STUF_ORDE = 'AKF';
+
+    /**
+     * Transport equipment survey reference (AKD)
+     *
+     * Reference number assigned by the ordering party to the transport equipment
+     * survey order.
+     */
+    case TRAN_EQUI_SURV_REFE = 'AKD';
+
+    /**
+     * Transport equipment survey reference number (AKU)
+     *
+     * Reference number known at the address where the transport equipment will be
+     * or has been surveyed.
+     */
+    case TRAN_EQUI_SURV_REFE_NUMB = 'AKU';
+
+    /**
+     * Transport equipment survey report number (AKE)
+     *
+     * Reference number used by a party to identify its transport equipment survey
+     * report.
+     */
+    case TRAN_EQUI_SURV_REPO_NUMB = 'AKE';
+
+    /**
+     * Transport instruction number (TIN)
+     *
+     * Reference number identifying a transport instruction.
+     */
+    case TRAN_INST_NUMB = 'TIN';
+
+    /**
+     * Transport means journey identifier (CRN)
+     *
+     * [8028] To identify a journey of a means of transport, for example voyage
+     * number, flight number, trip number.
+     */
+    case TRAN_MEAN_JOUR_IDEN = 'CRN';
+
+    /**
+     * Transport route (AEM)
+     *
+     * A predefined and identified sequence of points where goods are collected,
+     * agreed between partners, e.g. the party in charge of organizing the
+     * transport and the parties where goods will be collected. The same
+     * collecting points may be included in different transport routes, but in a
+     * different sequence.
+     */
+    case TRAN_ROUT = 'AEM';
+
+    /**
+     * Transport section reference number (AIW)
+     *
+     * A number identifying a transport section.
+     */
+    case TRAN_SECT_REFE_NUMB = 'AIW';
+
+    /**
+     * Transport status report number (AXK)
+     *
+     * [1125] A reference number identifying a transport status report.
+     */
+    case TRAN_STAT_REPO_NUMB = 'AXK';
+
+    /**
+     * Transportation account number (AJZ)
+     *
+     * An account number to be charged or credited for transportation.
+     */
+    case TRAN_ACCO_NUMB = 'AJZ';
+
+    /**
+     * Transportation Control Number (TCN) (AOW)
+     *
+     * A number assigned for transportation purposes.
+     */
+    case TRAN_CONT_NUMB_TCN = 'AOW';
+
+    /**
+     * Transportation exportation no. for in bond movement (AFJ)
+     *
+     * A number that identifies the transportation exportation number for an in
+     * bond movement.
+     */
+    case TRAN_EXPO_NO_FOR_IN_BOND_MOVE = 'AFJ';
+
+    /**
+     * Travel service (AUE)
+     *
+     * Reference identifying a travel service.
+     */
+    case TRAV_SERV = 'AUE';
+
+    /**
+     * Treaty number (ADF)
+     *
+     * A number that identifies a treaty.
+     */
+    case TREA_NUMB = 'ADF';
+
+    /**
+     * Trucker's bill of lading (TB)
+     *
+     * A cargo list/description issued by a motor carrier of freight.
+     */
+    case TRUC_BILL_OF_LADI = 'TB';
+
+    /**
+     * U.S. Code of Federal Regulations (CFR) (AJB)
+     *
+     * A reference indicating a citation from the U.S. Code of Federal Regulations
+     * (CFR).
+     */
+    case US_CODE_OF_FEDE_REGU_CFR = 'AJB';
+
+    /**
+     * U.S. Defense Federal Acquisition Regulation Supplement (AJD)
+     *
+     * A reference indicating a citation from the U.S. Defense Federal Acquisition
+     * Regulation Supplement.
+     */
+    case US_DEFE_FEDE_ACQU_REGU_SUPP = 'AJD';
+
+    /**
+     * U.S. Department of Veterans Affairs Acquisition Regulation (AJN)
+     *
+     * A reference indicating a citation from the U.S. Department of Veterans
+     * Affairs Acquisition Regulation.
+     */
+    case US_DEPA_OF_VETE_AFFA_ACQU_REGU = 'AJN';
+
+    /**
+     * U.S. Federal Acquisition Regulation (AJG)
+     *
+     * A reference indicating a citation from the U.S. Federal Acquisition
+     * Regulation.
+     */
+    case US_FEDE_ACQU_REGU = 'AJG';
+
+    /**
+     * U.S. Federal Information Resources Management Regulation (AJI)
+     *
+     * A reference indicating a citation from U.S. Federal Information Resources
+     * Management Regulation.
+     */
+    case US_FEDE_INFO_RESO_MANA_REGU = 'AJI';
+
+    /**
+     * U.S. General Services Administration Regulation (AJH)
+     *
+     * A reference indicating a citation from U.S. General Services Administration
+     * Regulation.
+     */
+    case US_GENE_SERV_ADMI_REGU = 'AJH';
+
+    /**
+     * Ultimate customer's order number (UO)
+     *
+     * The originator's order number as forwarded in a sequence of parties
+     * involved.
+     */
+    case ULTI_CUST_ORDE_NUMB = 'UO';
+
+    /**
+     * Ultimate customer's reference number (UC)
+     *
+     * The originator's reference number as forwarded in a sequence of parties
+     * involved.
+     */
+    case ULTI_CUST_REFE_NUMB = 'UC';
+
+    /**
+     * Uniform Resource Identifier (URI)
+     *
+     * A string of characters used to identify a name of a resource on the
+     * worldwide web.
+     */
+    case UNIF_RESO_IDEN = 'URI';
+
+    /**
+     * Unique claims reference number of the sender (ACT)
+     *
+     * A number that identifies the unique claims reference of the sender.
+     */
+    case UNIQ_CLAI_REFE_NUMB_OF_THE_SEND = 'ACT';
+
+    /**
+     * Unique consignment reference number (UCN)
+     *
+     * [1202] Unique reference identifying a particular consignment of goods.
+     * Synonym: UCR, UCRN.
+     */
+    case UNIQ_CONS_REFE_NUMB = 'UCN';
+
+    /**
+     * Unique goods shipment identifier (AVU)
+     *
+     * Unique identifier assigned to a shipment of goods linking trade, tracking
+     * and transport information.
+     */
+    case UNIQ_GOOD_SHIP_IDEN = 'AVU';
+
+    /**
+     * Unique market reference (ADQ)
+     *
+     * A number that identifies a unique market.
+     */
+    case UNIQ_MARK_REFE = 'ADQ';
+
+    /**
+     * United Nations Dangerous Goods identifier (UN)
+     *
+     * [7124] United Nations Dangerous Goods Identifier (UNDG) is the unique
+     * serial number assigned within the United Nations to substances and articles
+     * contained in a list of the dangerous goods most commonly carried.
+     */
+    case UNIT_NATI_DANG_GOOD_IDEN = 'UN';
+
+    /**
+     * Upper number of range (UAR)
+     *
+     * Upper number in a range of numbers.
+     */
+    case UPPE_NUMB_OF_RANG = 'UAR';
+
+    /**
+     * US Customs Service (USCS) entry code (AQM)
+     *
+     * An entry number assigned by the United States (US) customs service.
+     */
+    case US_CUST_SERV_USCS_ENTR_CODE = 'AQM';
+
+    /**
+     * US government agency number (ACB)
+     *
+     * A number that identifies a United States Government agency.
+     */
+    case US_GOVE_AGEN_NUMB = 'ACB';
+
+    /**
+     * US, Department of Transportation bond surety code (AMQ)
+     *
+     * A bond surety code assigned by the United States Department of
+     * Transportation (DOT).
+     */
+    case US_DEPA_OF_TRAN_BOND_SURE_CODE = 'AMQ';
+
+    /**
+     * US, Federal Communications Commission (FCC) import condition number (AMS)
+     *
+     * A number known as the United States Federal Communications Commission (FCC)
+     * import condition number applying to certain types of regulated
+     * communications equipment.
+     */
+    case US_FEDE_COMM_COMM_FCC_IMPO_COND_NUMB = 'AMS';
+
+    /**
+     * US, Food and Drug Administration establishment indicator (AMR)
+     *
+     * An establishment indicator assigned by the United States Food and Drug
+     * Administration.
+     */
+    case US_FOOD_AND_DRUG_ADMI_ESTA_INDI = 'AMR';
+
+    /**
+     * VAT registration number (VA)
+     *
+     * Unique number assigned by the relevant tax authority to identify a party
+     * for use in relation to Value Added Tax (VAT).
+     */
+    case VAT_REGI_NUMB = 'VA';
+
+    /**
+     * Vehicle Identification Number (VIN) (AKG)
+     *
+     * The identification number which uniquely distinguishes one vehicle from
+     * another through the lifespan of the vehicle.
+     */
+    case VEHI_IDEN_NUMB_VIN = 'AKG';
+
+    /**
+     * Vehicle licence number (ABZ)
+     *
+     * Number of the licence issued for a vehicle by an agency of government.
+     */
+    case VEHI_LICE_NUMB = 'ABZ';
+
+    /**
+     * Vendor contract number (VC)
+     *
+     * Number assigned by the vendor to a contract.
+     */
+    case VEND_CONT_NUMB = 'VC';
+
+    /**
+     * Vendor ID number (VR)
+     *
+     * A number that identifies a vendor's identification.
+     */
+    case VEND_ID_NUMB = 'VR';
+
+    /**
+     * Vendor order number suffix (VS)
+     *
+     * The suffix for a vendor order number.
+     */
+    case VEND_ORDE_NUMB_SUFF = 'VS';
+
+    /**
+     * Vendor product number (VP)
+     *
+     * Number assigned by vendor to another manufacturer's product.
+     */
+    case VEND_PROD_NUMB = 'VP';
+
+    /**
+     * Vessel identifier (VM)
+     *
+     * (8123) Reference identifying a vessel.
+     */
+    case VESS_IDEN = 'VM';
+
+    /**
+     * Voucher number (VV)
+     *
+     * Reference number identifying a voucher.
+     */
+    case VOUC_NUMB = 'VV';
+
+    /**
+     * Voyage number (VON)
+     *
+     * (8028) Reference number assigned to the voyage of the vessel.
+     */
+    case VOYA_NUMB = 'VON';
+
+    /**
+     * Wage determination number (AJR)
+     *
+     * A number specifying a wage determination.
+     */
+    case WAGE_DETE_NUMB = 'AJR';
+
+    /**
+     * Warehouse entry number (WE)
+     *
+     * Entry number under which imported merchandise was placed in a Customs
+     * bonded warehouse.
+     */
+    case WARE_ENTR_NUMB = 'WE';
+
+    /**
+     * Warehouse receipt number (WR)
+     *
+     * A number identifying a warehouse receipt.
+     */
+    case WARE_RECE_NUMB = 'WR';
+
+    /**
+     * Warehouse storage location number (WS)
+     *
+     * A number identifying a warehouse storage location.
+     */
+    case WARE_STOR_LOCA_NUMB = 'WS';
+
+    /**
+     * Waybill number (AAM)
+     *
+     * Reference number assigned to a waybill, see: 1001 = 700.
+     */
+    case WAYB_NUMB = 'AAM';
+
+    /**
+     * Weight agreement number (WM)
+     *
+     * A number identifying a weight agreement.
+     */
+    case WEIG_AGRE_NUMB = 'WM';
+
+    /**
+     * Well number (WN)
+     *
+     * A number assigned to a shaft sunk into the ground.
+     */
+    case WELL_NUMB = 'WN';
+
+    /**
+     * Wool identification number (AHQ)
+     *
+     * Shipping Identification Mark (SIM) allocated to a wool consignment by a
+     * shipping company.
+     */
+    case WOOL_IDEN_NUMB = 'AHQ';
+
+    /**
+     * Wool tax reference number (AHR)
+     *
+     * Reference or indication of the payment of wool tax.
+     */
+    case WOOL_TAX_REFE_NUMB = 'AHR';
+
+    /**
+     * Work breakdown structure (AOL)
+     *
+     * A structure reference that identifies the breakdown of work for a project.
+     */
+    case WORK_BREA_STRU = 'AOL';
+
+    /**
+     * Work item quantity determination (AWF)
+     *
+     * A reference assigned to a work item quantity determination.
+     */
+    case WORK_ITEM_QUAN_DETE = 'AWF';
+
+    /**
+     * Work order (AOV)
+     *
+     * Reference number for an order to do work.
+     */
+    case WORK_ORDE = 'AOV';
+
+    /**
+     * Work package (AOS)
+     *
+     * A reference for a detailed package of work.
+     */
+    case WORK_PACK = 'AOS';
+
+    /**
+     * Work shift (AOK)
+     *
+     * A work shift reference number.
+     */
+    case WORK_SHIF = 'AOK';
+
+    /**
+     * Work task charge number (AON)
+     *
+     * A reference assigned to a specific work task charge.
+     */
+    case WORK_TASK_CHAR_NUMB = 'AON';
+
+    /**
+     * Work team (AOP)
+     *
+     * A reference to identify a team performing work.
+     */
+    case WORK_TEAM = 'AOP';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdSchemeIdentifiers.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdSchemeIdentifiers.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdSchemeIdentifiers.php	(revision 8542)
@@ -0,0 +1,1080 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Electronic address scheme identifiers
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdSchemeIdentifiers: string
+{
+
+    /**
+     * System Information et Repertoire des Entreprise et des Etablissements:
+     * SIRENE
+     */
+    case ISO_6523_0002 = '0002';
+
+    /**
+     * Codification Numerique des Etablissments Financiers En Belgique
+     */
+    case ISO_6523_0003 = '0003';
+
+    /**
+     * NBS/OSI NETWORK
+     */
+    case ISO_6523_0004 = '0004';
+
+    /**
+     * USA FED GOV OSI NETWORK
+     */
+    case ISO_6523_0005 = '0005';
+
+    /**
+     * USA DOD OSI NETWORK
+     */
+    case ISO_6523_0006 = '0006';
+
+    /**
+     * Organisationsnummer
+     */
+    case ISO_6523_0007 = '0007';
+
+    /**
+     * LE NUMERO NATIONAL
+     */
+    case ISO_6523_0008 = '0008';
+
+    /**
+     * SIRET-CODE
+     */
+    case ISO_6523_0009 = '0009';
+
+    /**
+     * Organizational Identifiers for Structured Names under ISO 9541 Part 2
+     */
+    case ISO_6523_0010 = '0010';
+
+    /**
+     * International Code Designator for the Identification of OSI-based,
+     * Amateur Radio Organizations, Network Objects and Application Services.
+     */
+    case ISO_6523_0011 = '0011';
+
+    /**
+     * European Computer Manufacturers Association: ECMA
+     */
+    case ISO_6523_0012 = '0012';
+
+    /**
+     * VSA FTP CODE (FTP = File Transfer Protocol)
+     */
+    case ISO_6523_0013 = '0013';
+
+    /**
+     * NIST/OSI Implememts' Workshop
+     */
+    case ISO_6523_0014 = '0014';
+
+    /**
+     * Electronic Data Interchange: EDI
+     */
+    case ISO_6523_0015 = '0015';
+
+    /**
+     * EWOS Object Identifiers
+     */
+    case ISO_6523_0016 = '0016';
+
+    /**
+     * COMMON LANGUAGE
+     */
+    case ISO_6523_0017 = '0017';
+
+    /**
+     * SNA/OSI Network
+     */
+    case ISO_6523_0018 = '0018';
+
+    /**
+     * Air Transport Industry Services Communications Network
+     */
+    case ISO_6523_0019 = '0019';
+
+    /**
+     * European Laboratory for Particle Physics: CERN
+     */
+    case ISO_6523_0020 = '0020';
+
+    /**
+     * SOCIETY FOR WORLDWIDE INTERBANK FINANCIAL, TELECOMMUNICATION
+     * S.W.I.F.T.
+     */
+    case ISO_6523_0021 = '0021';
+
+    /**
+     * OSF Distributed Computing Object Identification
+     */
+    case ISO_6523_0022 = '0022';
+
+    /**
+     * Nordic University and Research Network: NORDUnet
+     */
+    case ISO_6523_0023 = '0023';
+
+    /**
+     * Digital Equipment Corporation: DEC
+     */
+    case ISO_6523_0024 = '0024';
+
+    /**
+     * OSI ASIA-OCEANIA WORKSHOP
+     */
+    case ISO_6523_0025 = '0025';
+
+    /**
+     * NATO ISO 6523 ICDE coding scheme
+     */
+    case ISO_6523_0026 = '0026';
+
+    /**
+     * Aeronautical Telecommunications Network (ATN)
+     */
+    case ISO_6523_0027 = '0027';
+
+    /**
+     * International Standard ISO 6523
+     */
+    case ISO_6523_0028 = '0028';
+
+    /**
+     * The All-Union Classifier of Enterprises and Organisations
+     */
+    case ISO_6523_0029 = '0029';
+
+    /**
+     * AT&T/OSI Network
+     */
+    case ISO_6523_0030 = '0030';
+
+    /**
+     * EDI Partner Identification Code
+     */
+    case ISO_6523_0031 = '0031';
+
+    /**
+     * Telecom Australia
+     */
+    case ISO_6523_0032 = '0032';
+
+    /**
+     * S G W OSI Internetwork
+     */
+    case ISO_6523_0033 = '0033';
+
+    /**
+     * Reuter Open Address Standard
+     */
+    case ISO_6523_0034 = '0034';
+
+    /**
+     * ISO 6523 - ICD
+     */
+    case ISO_6523_0035 = '0035';
+
+    /**
+     * TeleTrust Object Identifiers
+     */
+    case ISO_6523_0036 = '0036';
+
+    /**
+     * LY-tunnus
+     */
+    case ISO_6523_0037 = '0037';
+
+    /**
+     * The Australian GOSIP Network
+     */
+    case ISO_6523_0038 = '0038';
+
+    /**
+     * The OZ DOD OSI Network
+     */
+    case ISO_6523_0039 = '0039';
+
+    /**
+     * Unilever Group Companies
+     */
+    case ISO_6523_0040 = '0040';
+
+    /**
+     * Citicorp Global Information Network
+     */
+    case ISO_6523_0041 = '0041';
+
+    /**
+     * DBP Telekom Object Identifiers
+     */
+    case ISO_6523_0042 = '0042';
+
+    /**
+     * HydroNETT
+     */
+    case ISO_6523_0043 = '0043';
+
+    /**
+     * Thai Industrial Standards Institute (TISI)
+     */
+    case ISO_6523_0044 = '0044';
+
+    /**
+     * ICI Company Identification System
+     */
+    case ISO_6523_0045 = '0045';
+
+    /**
+     * FUNLOC
+     */
+    case ISO_6523_0046 = '0046';
+
+    /**
+     * BULL ODI/DSA/UNIX Network
+     */
+    case ISO_6523_0047 = '0047';
+
+    /**
+     * OSINZ
+     */
+    case ISO_6523_0048 = '0048';
+
+    /**
+     * Auckland Area Health
+     */
+    case ISO_6523_0049 = '0049';
+
+    /**
+     * Firmenich
+     */
+    case ISO_6523_0050 = '0050';
+
+    /**
+     * AGFA-DIS
+     */
+    case ISO_6523_0051 = '0051';
+
+    /**
+     * Society of Motion Picture and Television Engineers (SMPTE)
+     */
+    case ISO_6523_0052 = '0052';
+
+    /**
+     * Migros_Network M_NETOPZ
+     */
+    case ISO_6523_0053 = '0053';
+
+    /**
+     * ISO6523 - ICDPCR
+     */
+    case ISO_6523_0054 = '0054';
+
+    /**
+     * Energy Net
+     */
+    case ISO_6523_0055 = '0055';
+
+    /**
+     * Nokia Object Identifiers (NOI)
+     */
+    case ISO_6523_0056 = '0056';
+
+    /**
+     * Saint Gobain
+     */
+    case ISO_6523_0057 = '0057';
+
+    /**
+     * Siemens Corporate Network
+     */
+    case ISO_6523_0058 = '0058';
+
+    /**
+     * DANZNET
+     */
+    case ISO_6523_0059 = '0059';
+
+    /**
+     * Data Universal Numbering System (D-U-N-S Number)
+     */
+    case ISO_6523_0060 = '0060';
+
+    /**
+     * SOFFEX OSI
+     */
+    case ISO_6523_0061 = '0061';
+
+    /**
+     * KPN OVN
+     */
+    case ISO_6523_0062 = '0062';
+
+    /**
+     * ascomOSINet
+     */
+    case ISO_6523_0063 = '0063';
+
+    /**
+     * UTC: Uniforme Transport Code
+     */
+    case ISO_6523_0064 = '0064';
+
+    /**
+     * SOLVAY OSI CODING
+     */
+    case ISO_6523_0065 = '0065';
+
+    /**
+     * Roche Corporate Network
+     */
+    case ISO_6523_0066 = '0066';
+
+    /**
+     * ZellwegerOSINet
+     */
+    case ISO_6523_0067 = '0067';
+
+    /**
+     * Intel Corporation OSI
+     */
+    case ISO_6523_0068 = '0068';
+
+    /**
+     * SITA Object Identifier Tree
+     */
+    case ISO_6523_0069 = '0069';
+
+    /**
+     * DaimlerChrysler Corporate Network
+     */
+    case ISO_6523_0070 = '0070';
+
+    /**
+     * LEGO /OSI NETWORK
+     */
+    case ISO_6523_0071 = '0071';
+
+    /**
+     * NAVISTAR/OSI Network
+     */
+    case ISO_6523_0072 = '0072';
+
+    /**
+     * ICD Formatted ATM address
+     */
+    case ISO_6523_0073 = '0073';
+
+    /**
+     * ARINC
+     */
+    case ISO_6523_0074 = '0074';
+
+    /**
+     * Alcanet/Alcatel-Alsthom Corporate Network
+     */
+    case ISO_6523_0075 = '0075';
+
+    /**
+     * Sistema Italiano di Identificazione di ogetti gestito da UNINFO
+     */
+    case ISO_6523_0076 = '0076';
+
+    /**
+     * Sistema Italiano di Indirizzamento di Reti OSI Gestito da UNINFO
+     */
+    case ISO_6523_0077 = '0077';
+
+    /**
+     * Mitel terminal or switching equipment
+     */
+    case ISO_6523_0078 = '0078';
+
+    /**
+     * ATM Forum
+     */
+    case ISO_6523_0079 = '0079';
+
+    /**
+     * UK National Health Service Scheme, (EDIRA compliant)
+     */
+    case ISO_6523_0080 = '0080';
+
+    /**
+     * International NSAP
+     */
+    case ISO_6523_0081 = '0081';
+
+    /**
+     * Norwegian Telecommunications Authority's, NTA'S, EDI, identifier
+     * scheme (EDIRA compliant)
+     */
+    case ISO_6523_0082 = '0082';
+
+    /**
+     * Advanced Telecommunications Modules Limited, Corporate Network
+     */
+    case ISO_6523_0083 = '0083';
+
+    /**
+     * Athens Chamber of Commerce & Industry Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0084 = '0084';
+
+    /**
+     * Swiss Chambers of Commerce Scheme (EDIRA) compliant
+     */
+    case ISO_6523_0085 = '0085';
+
+    /**
+     * United States Council for International Business (USCIB) Scheme,
+     * (EDIRA compliant)
+     */
+    case ISO_6523_0086 = '0086';
+
+    /**
+     * National Federation of Chambers of Commerce & Industry of Belgium,
+     * Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0087 = '0087';
+
+    /**
+     * EAN Location Code
+     */
+    case ISO_6523_0088 = '0088';
+
+    /**
+     * The Association of British Chambers of Commerce Ltd. Scheme, (EDIRA
+     * compliant)
+     */
+    case ISO_6523_0089 = '0089';
+
+    /**
+     * Internet IP addressing - ISO 6523 ICD encoding
+     */
+    case ISO_6523_0090 = '0090';
+
+    /**
+     * Cisco Sysytems / OSI Network
+     */
+    case ISO_6523_0091 = '0091';
+
+    /**
+     * Revenue Canada Business Number Registration (EDIRA compliant)
+     */
+    case ISO_6523_0093 = '0093';
+
+    /**
+     * DEUTSCHER INDUSTRIE- UND HANDELSTAG (DIHT) Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0094 = '0094';
+
+    /**
+     * Hewlett - Packard Company Internal AM Network
+     */
+    case ISO_6523_0095 = '0095';
+
+    /**
+     * DANISH CHAMBER OF COMMERCE Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0096 = '0096';
+
+    /**
+     * FTI - Ediforum Italia, (EDIRA compliant)
+     */
+    case ISO_6523_0097 = '0097';
+
+    /**
+     * CHAMBER OF COMMERCE TEL AVIV-JAFFA Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0098 = '0098';
+
+    /**
+     * Siemens Supervisory Systems Network
+     */
+    case ISO_6523_0099 = '0099';
+
+    /**
+     * PNG_ICD Scheme
+     */
+    case ISO_6523_0100 = '0100';
+
+    /**
+     * South African Code Allocation
+     */
+    case ISO_6523_0101 = '0101';
+
+    /**
+     * HEAG
+     */
+    case ISO_6523_0102 = '0102';
+
+    /**
+     * BT - ICD Coding System
+     */
+    case ISO_6523_0104 = '0104';
+
+    /**
+     * Portuguese Chamber of Commerce and Industry Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0105 = '0105';
+
+    /**
+     * Vereniging van Kamers van Koophandel en Fabrieken in Nederland
+     * (Association of Chambers of Commerce and Industry in the Netherlands),
+     * Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0106 = '0106';
+
+    /**
+     * Association of Swedish Chambers of Commerce and Industry Scheme (EDIRA
+     * compliant)
+     */
+    case ISO_6523_0107 = '0107';
+
+    /**
+     * Australian Chambers of Commerce and Industry Scheme (EDIRA compliant)
+     */
+    case ISO_6523_0108 = '0108';
+
+    /**
+     * BellSouth ICD AESA (ATM End System Address)
+     */
+    case ISO_6523_0109 = '0109';
+
+    /**
+     * Bell Atlantic
+     */
+    case ISO_6523_0110 = '0110';
+
+    /**
+     * Object Identifiers
+     */
+    case ISO_6523_0111 = '0111';
+
+    /**
+     * ISO register for Standards producing Organizations
+     */
+    case ISO_6523_0112 = '0112';
+
+    /**
+     * OriginNet
+     */
+    case ISO_6523_0113 = '0113';
+
+    /**
+     * Check Point Software Technologies
+     */
+    case ISO_6523_0114 = '0114';
+
+    /**
+     * Pacific Bell Data Communications Network
+     */
+    case ISO_6523_0115 = '0115';
+
+    /**
+     * PSS Object Identifiers
+     */
+    case ISO_6523_0116 = '0116';
+
+    /**
+     * STENTOR-ICD CODING SYSTEM
+     */
+    case ISO_6523_0117 = '0117';
+
+    /**
+     * ATM-Network ZN'96
+     */
+    case ISO_6523_0118 = '0118';
+
+    /**
+     * MCI / OSI Network
+     */
+    case ISO_6523_0119 = '0119';
+
+    /**
+     * Advantis
+     */
+    case ISO_6523_0120 = '0120';
+
+    /**
+     * Affable Software Data Interchange Codes
+     */
+    case ISO_6523_0121 = '0121';
+
+    /**
+     * BB-DATA GmbH
+     */
+    case ISO_6523_0122 = '0122';
+
+    /**
+     * BASF Company ATM-Network
+     */
+    case ISO_6523_0123 = '0123';
+
+    /**
+     * IOTA Identifiers for Organizations for Telecommunications Addressing
+     * using the ICD system format defined in ISO/IEC 8348
+     */
+    case ISO_6523_0124 = '0124';
+
+    /**
+     * Henkel Corporate Network (H-Net)
+     */
+    case ISO_6523_0125 = '0125';
+
+    /**
+     * GTE/OSI Network
+     */
+    case ISO_6523_0126 = '0126';
+
+    /**
+     * Dresdner Bank Corporate Network
+     */
+    case ISO_6523_0127 = '0127';
+
+    /**
+     * BCNR (Swiss Clearing Bank Number)
+     */
+    case ISO_6523_0128 = '0128';
+
+    /**
+     * BPI (Swiss Business Partner Identification) code
+     */
+    case ISO_6523_0129 = '0129';
+
+    /**
+     * Directorates of the European Commission
+     */
+    case ISO_6523_0130 = '0130';
+
+    /**
+     * Code for the Identification of National Organizations
+     */
+    case ISO_6523_0131 = '0131';
+
+    /**
+     * Certicom Object Identifiers
+     */
+    case ISO_6523_0132 = '0132';
+
+    /**
+     * TC68 OID
+     */
+    case ISO_6523_0133 = '0133';
+
+    /**
+     * Infonet Services Corporation
+     */
+    case ISO_6523_0134 = '0134';
+
+    /**
+     * SIA Object Identifiers
+     */
+    case ISO_6523_0135 = '0135';
+
+    /**
+     * Cable & Wireless Global ATM End-System Address Plan
+     */
+    case ISO_6523_0136 = '0136';
+
+    /**
+     * Global AESA scheme
+     */
+    case ISO_6523_0137 = '0137';
+
+    /**
+     * France Telecom ATM End System Address Plan
+     */
+    case ISO_6523_0138 = '0138';
+
+    /**
+     * Savvis Communications AESA:.
+     */
+    case ISO_6523_0139 = '0139';
+
+    /**
+     * Toshiba Organizations, Partners, And Suppliers' (TOPAS) Code
+     */
+    case ISO_6523_0140 = '0140';
+
+    /**
+     * NATO Commercial and Government Entity system
+     */
+    case ISO_6523_0141 = '0141';
+
+    /**
+     * SECETI Object Identifiers
+     */
+    case ISO_6523_0142 = '0142';
+
+    /**
+     * EINESTEINet AG
+     */
+    case ISO_6523_0143 = '0143';
+
+    /**
+     * DoDAAC (Department of Defense Activity Address Code)
+     */
+    case ISO_6523_0144 = '0144';
+
+    /**
+     * DGCP (Direction GÃ©nÃ©rale de la ComptabilitÃ© Publique)administrative
+     * accounting identification scheme
+     */
+    case ISO_6523_0145 = '0145';
+
+    /**
+     * DGI (Direction GÃ©nÃ©rale des Impots) code
+     */
+    case ISO_6523_0146 = '0146';
+
+    /**
+     * Standard Company Code
+     */
+    case ISO_6523_0147 = '0147';
+
+    /**
+     * ITU (International Telecommunications Union)Data Network
+     * Identification Codes (DNIC)
+     */
+    case ISO_6523_0148 = '0148';
+
+    /**
+     * Global Business Identifier
+     */
+    case ISO_6523_0149 = '0149';
+
+    /**
+     * Madge Networks Ltd- ICD ATM Addressing Scheme
+     */
+    case ISO_6523_0150 = '0150';
+
+    /**
+     * Australian Business Number (ABN) Scheme
+     */
+    case ISO_6523_0151 = '0151';
+
+    /**
+     * Edira Scheme Identifier Code
+     */
+    case ISO_6523_0152 = '0152';
+
+    /**
+     * Concert Global Network Services ICD AESA
+     */
+    case ISO_6523_0153 = '0153';
+
+    /**
+     * Identification number of economic subjects: (ICO)
+     */
+    case ISO_6523_0154 = '0154';
+
+    /**
+     * Global Crossing AESA (ATM End System Address)
+     */
+    case ISO_6523_0155 = '0155';
+
+    /**
+     * AUNA
+     */
+    case ISO_6523_0156 = '0156';
+
+    /**
+     * ATM interconnection with the Dutch KPN Telecom
+     */
+    case ISO_6523_0157 = '0157';
+
+    /**
+     * Identification number of economic subject (ICO) Act on State
+     * Statistics of 29 November 2'001, Â§ 27
+     */
+    case ISO_6523_0158 = '0158';
+
+    /**
+     * ACTALIS Object Identifiers
+     */
+    case ISO_6523_0159 = '0159';
+
+    /**
+     * GTIN - Global Trade Item Number
+     */
+    case ISO_6523_0160 = '0160';
+
+    /**
+     * ECCMA Open Technical Directory
+     */
+    case ISO_6523_0161 = '0161';
+
+    /**
+     * CEN/ISSS Object Identifier Scheme
+     */
+    case ISO_6523_0162 = '0162';
+
+    /**
+     * US-EPA Facility Identifier
+     */
+    case ISO_6523_0163 = '0163';
+
+    /**
+     * TELUS Corporation
+     */
+    case ISO_6523_0164 = '0164';
+
+    /**
+     * FIEIE Object identifiers
+     */
+    case ISO_6523_0165 = '0165';
+
+    /**
+     * Swissguide Identifier Scheme
+     */
+    case ISO_6523_0166 = '0166';
+
+    /**
+     * Priority Telecom ATM End System Address Plan
+     */
+    case ISO_6523_0167 = '0167';
+
+    /**
+     * Vodafone Ireland OSI Addressing
+     */
+    case ISO_6523_0168 = '0168';
+
+    /**
+     * Swiss Federal Business Identification Number. Central Business names
+     * Index (zefix) Identification Number
+     */
+    case ISO_6523_0169 = '0169';
+
+    /**
+     * Teikoku Company Code
+     */
+    case ISO_6523_0170 = '0170';
+
+    /**
+     * Luxembourg CP & CPS (Certification Policy and Certification Practice
+     * Statement) Index
+     */
+    case ISO_6523_0171 = '0171';
+
+    /**
+     * Project Group âLists of Propertiesâ (PROLISTÂ®)
+     */
+    case ISO_6523_0172 = '0172';
+
+    /**
+     * eCI@ss
+     */
+    case ISO_6523_0173 = '0173';
+
+    /**
+     * StepNexus
+     */
+    case ISO_6523_0174 = '0174';
+
+    /**
+     * Siemens AG
+     */
+    case ISO_6523_0175 = '0175';
+
+    /**
+     * Paradine GmbH
+     */
+    case ISO_6523_0176 = '0176';
+
+    /**
+     * Odette International Limited
+     */
+    case ISO_6523_0177 = '0177';
+
+    /**
+     * Route1 MobiNET
+     */
+    case ISO_6523_0178 = '0178';
+
+    /**
+     * Penango Object Identifiers
+     */
+    case ISO_6523_0179 = '0179';
+
+    /**
+     * Lithuanian military PKI
+     */
+    case ISO_6523_0180 = '0180';
+
+    /**
+     * NumÃ©ro d'identification suisse des enterprises (IDE), Swiss Unique
+     * Business Identification Number (UIDB)
+     */
+    case ISO_6523_0183 = '0183';
+
+    /**
+     * DIGSTORG
+     */
+    case ISO_6523_0184 = '0184';
+
+    /**
+     * Perceval Object Code
+     */
+    case ISO_6523_0185 = '0185';
+
+    /**
+     * TrustPoint Object Identifiers
+     */
+    case ISO_6523_0186 = '0186';
+
+    /**
+     * Amazon Unique Identification Scheme
+     */
+    case ISO_6523_0187 = '0187';
+
+    /**
+     * Corporate Number of The Social Security and Tax Number System
+     */
+    case ISO_6523_0188 = '0188';
+
+    /**
+     * European Business Identifier (EBID)
+     */
+    case ISO_6523_0189 = '0189';
+
+    /**
+     * Organisatie Indentificatie Nummer (OIN)
+     */
+    case ISO_6523_0190 = '0190';
+
+    /**
+     * Company Code (Estonia)
+     */
+    case ISO_6523_0191 = '0191';
+
+    /**
+     * Organisasjonsnummer
+     */
+    case ISO_6523_0192 = '0192';
+
+    /**
+     * UBL.BE Party Identifier
+     */
+    case ISO_6523_0193 = '0193';
+
+    /**
+     * KOIOS Open Technical Dictionary
+     */
+    case ISO_6523_0194 = '0194';
+
+    /**
+     * Singapore Nationwide E-lnvoice Framework
+     */
+    case ISO_6523_0195 = '0195';
+
+    /**
+     * Icelandic identifier - Ãslensk kennitala
+     */
+    case ISO_6523_0196 = '0196';
+
+    /**
+     * Name not known
+     */
+    case ISO_6523_0197 = '0197';
+
+    /**
+     * ERSTORG
+     */
+    case ISO_6523_0198 = '0198';
+
+    /**
+     * Legal Entity Identifier (LEI)
+     */
+    case ISO_6523_0199 = '0199';
+
+    /**
+     * Legal entity code (Lithuania)
+     */
+    case ISO_6523_0200 = '0200';
+
+    /**
+     * Codice Univoco UnitÃ  Organizzativa iPA
+     */
+    case ISO_6523_0201 = '0201';
+
+    /**
+     * Indirizzo di Posta Elettronica Certificata
+     */
+    case ISO_6523_0202 = '0202';
+
+    /**
+     * eDelivery Network Participant identifier
+     */
+    case ISO_6523_0203 = '0203';
+
+    /**
+     * Leitweg-ID
+     */
+    case ISO_6523_0204 = '0204';
+
+    /**
+     * CODDEST
+     */
+    case ISO_6523_0205 = '0205';
+
+    /**
+     * Registre du Commerce et de lâIndustrie : RCI
+     */
+    case ISO_6523_0206 = '0206';
+
+    /**
+     * PiLog Ontology Codification Identifier (POCI)
+     */
+    case ISO_6523_0207 = '0207';
+
+    /**
+     * Numero d'entreprise / ondernemingsnummer / Unternehmensnummer
+     */
+    case ISO_6523_0208 = '0208';
+
+    /**
+     * GS1 identification keys
+     */
+    case ISO_6523_0209 = '0209';
+
+    /**
+     * CODICE FISCALE
+     */
+    case ISO_6523_0210 = '0210';
+
+    /**
+     * PARTITA IVA
+     */
+    case ISO_6523_0211 = '0211';
+
+    /**
+     * Finnish Organization Identifier
+     */
+    case ISO_6523_0212 = '0212';
+
+    /**
+     * Finnish Organization Value Add Tax Identifier
+     */
+    case ISO_6523_0213 = '0213';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdTextSubjectCodeQualifiers.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdTextSubjectCodeQualifiers.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdTextSubjectCodeQualifiers.php	(revision 8542)
@@ -0,0 +1,1938 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Text subject code qualifiers
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdTextSubjectCodeQualifiers: string
+{
+
+    /**
+     * Goods item description
+     */
+    case UNTDID_4451_AAA = 'AAA';
+
+    /**
+     * Payment term
+     */
+    case UNTDID_4451_AAB = 'AAB';
+
+    /**
+     * Dangerous goods additional information
+     */
+    case UNTDID_4451_AAC = 'AAC';
+
+    /**
+     * Dangerous goods technical name
+     */
+    case UNTDID_4451_AAD = 'AAD';
+
+    /**
+     * Acknowledgement description
+     */
+    case UNTDID_4451_AAE = 'AAE';
+
+    /**
+     * Rate additional information
+     */
+    case UNTDID_4451_AAF = 'AAF';
+
+    /**
+     * Party instructions
+     */
+    case UNTDID_4451_AAG = 'AAG';
+
+    /**
+     * General information
+     */
+    case UNTDID_4451_AAI = 'AAI';
+
+    /**
+     * Additional conditions of sale/purchase
+     */
+    case UNTDID_4451_AAJ = 'AAJ';
+
+    /**
+     * Price conditions
+     */
+    case UNTDID_4451_AAK = 'AAK';
+
+    /**
+     * Goods dimensions in characters
+     */
+    case UNTDID_4451_AAL = 'AAL';
+
+    /**
+     * Equipment re-usage restrictions
+     */
+    case UNTDID_4451_AAM = 'AAM';
+
+    /**
+     * Handling restriction
+     */
+    case UNTDID_4451_AAN = 'AAN';
+
+    /**
+     * Error description (free text)
+     */
+    case UNTDID_4451_AAO = 'AAO';
+
+    /**
+     * Response (free text)
+     */
+    case UNTDID_4451_AAP = 'AAP';
+
+    /**
+     * Package content's description
+     */
+    case UNTDID_4451_AAQ = 'AAQ';
+
+    /**
+     * Terms of delivery
+     */
+    case UNTDID_4451_AAR = 'AAR';
+
+    /**
+     * Bill of lading remarks
+     */
+    case UNTDID_4451_AAS = 'AAS';
+
+    /**
+     * Mode of settlement information
+     */
+    case UNTDID_4451_AAT = 'AAT';
+
+    /**
+     * Consignment invoice information
+     */
+    case UNTDID_4451_AAU = 'AAU';
+
+    /**
+     * Clearance invoice information
+     */
+    case UNTDID_4451_AAV = 'AAV';
+
+    /**
+     * Letter of credit information
+     */
+    case UNTDID_4451_AAW = 'AAW';
+
+    /**
+     * License information
+     */
+    case UNTDID_4451_AAX = 'AAX';
+
+    /**
+     * Certification statements
+     */
+    case UNTDID_4451_AAY = 'AAY';
+
+    /**
+     * Additional export information
+     */
+    case UNTDID_4451_AAZ = 'AAZ';
+
+    /**
+     * Tariff statements
+     */
+    case UNTDID_4451_ABA = 'ABA';
+
+    /**
+     * Medical history
+     */
+    case UNTDID_4451_ABB = 'ABB';
+
+    /**
+     * Conditions of sale or purchase
+     */
+    case UNTDID_4451_ABC = 'ABC';
+
+    /**
+     * Contract document type
+     */
+    case UNTDID_4451_ABD = 'ABD';
+
+    /**
+     * Additional terms and/or conditions (documentary credit)
+     */
+    case UNTDID_4451_ABE = 'ABE';
+
+    /**
+     * Instructions or information about standby documentary
+     */
+    case UNTDID_4451_ABF = 'ABF';
+
+    /**
+     * Instructions or information about partial shipment(s)
+     */
+    case UNTDID_4451_ABG = 'ABG';
+
+    /**
+     * Instructions or information about transhipment(s)
+     */
+    case UNTDID_4451_ABH = 'ABH';
+
+    /**
+     * Additional handling instructions documentary credit
+     */
+    case UNTDID_4451_ABI = 'ABI';
+
+    /**
+     * Domestic routing information
+     */
+    case UNTDID_4451_ABJ = 'ABJ';
+
+    /**
+     * Chargeable category of equipment
+     */
+    case UNTDID_4451_ABK = 'ABK';
+
+    /**
+     * Government information
+     */
+    case UNTDID_4451_ABL = 'ABL';
+
+    /**
+     * Onward routing information
+     */
+    case UNTDID_4451_ABM = 'ABM';
+
+    /**
+     * Accounting information
+     */
+    case UNTDID_4451_ABN = 'ABN';
+
+    /**
+     * Discrepancy information
+     */
+    case UNTDID_4451_ABO = 'ABO';
+
+    /**
+     * Confirmation instructions
+     */
+    case UNTDID_4451_ABP = 'ABP';
+
+    /**
+     * Method of issuance
+     */
+    case UNTDID_4451_ABQ = 'ABQ';
+
+    /**
+     * Documents delivery instructions
+     */
+    case UNTDID_4451_ABR = 'ABR';
+
+    /**
+     * Additional conditions
+     */
+    case UNTDID_4451_ABS = 'ABS';
+
+    /**
+     * Information/instructions about additional amounts covered
+     */
+    case UNTDID_4451_ABT = 'ABT';
+
+    /**
+     * Deferred payment termed additional
+     */
+    case UNTDID_4451_ABU = 'ABU';
+
+    /**
+     * Acceptance terms additional
+     */
+    case UNTDID_4451_ABV = 'ABV';
+
+    /**
+     * Negotiation terms additional
+     */
+    case UNTDID_4451_ABW = 'ABW';
+
+    /**
+     * Document name and documentary requirements
+     */
+    case UNTDID_4451_ABX = 'ABX';
+
+    /**
+     * Instructions/information about revolving documentary credit
+     */
+    case UNTDID_4451_ABZ = 'ABZ';
+
+    /**
+     * Documentary requirements
+     */
+    case UNTDID_4451_ACA = 'ACA';
+
+    /**
+     * Additional information
+     */
+    case UNTDID_4451_ACB = 'ACB';
+
+    /**
+     * Factor assignment clause
+     */
+    case UNTDID_4451_ACC = 'ACC';
+
+    /**
+     * Reason
+     */
+    case UNTDID_4451_ACD = 'ACD';
+
+    /**
+     * Dispute
+     */
+    case UNTDID_4451_ACE = 'ACE';
+
+    /**
+     * Additional attribute information
+     */
+    case UNTDID_4451_ACF = 'ACF';
+
+    /**
+     * Absence declaration
+     */
+    case UNTDID_4451_ACG = 'ACG';
+
+    /**
+     * Aggregation statement
+     */
+    case UNTDID_4451_ACH = 'ACH';
+
+    /**
+     * Compilation statement
+     */
+    case UNTDID_4451_ACI = 'ACI';
+
+    /**
+     * Definitional exception
+     */
+    case UNTDID_4451_ACJ = 'ACJ';
+
+    /**
+     * Privacy statement
+     */
+    case UNTDID_4451_ACK = 'ACK';
+
+    /**
+     * Quality statement
+     */
+    case UNTDID_4451_ACL = 'ACL';
+
+    /**
+     * Statistical description
+     */
+    case UNTDID_4451_ACM = 'ACM';
+
+    /**
+     * Statistical definition
+     */
+    case UNTDID_4451_ACN = 'ACN';
+
+    /**
+     * Statistical name
+     */
+    case UNTDID_4451_ACO = 'ACO';
+
+    /**
+     * Statistical title
+     */
+    case UNTDID_4451_ACP = 'ACP';
+
+    /**
+     * Off-dimension information
+     */
+    case UNTDID_4451_ACQ = 'ACQ';
+
+    /**
+     * Unexpected stops information
+     */
+    case UNTDID_4451_ACR = 'ACR';
+
+    /**
+     * Principles
+     */
+    case UNTDID_4451_ACS = 'ACS';
+
+    /**
+     * Terms and definition
+     */
+    case UNTDID_4451_ACT = 'ACT';
+
+    /**
+     * Segment name
+     */
+    case UNTDID_4451_ACU = 'ACU';
+
+    /**
+     * Simple data element name
+     */
+    case UNTDID_4451_ACV = 'ACV';
+
+    /**
+     * Scope
+     */
+    case UNTDID_4451_ACW = 'ACW';
+
+    /**
+     * Message type name
+     */
+    case UNTDID_4451_ACX = 'ACX';
+
+    /**
+     * Introduction
+     */
+    case UNTDID_4451_ACY = 'ACY';
+
+    /**
+     * Glossary
+     */
+    case UNTDID_4451_ACZ = 'ACZ';
+
+    /**
+     * Functional definition
+     */
+    case UNTDID_4451_ADA = 'ADA';
+
+    /**
+     * Examples
+     */
+    case UNTDID_4451_ADB = 'ADB';
+
+    /**
+     * Cover page
+     */
+    case UNTDID_4451_ADC = 'ADC';
+
+    /**
+     * Dependency (syntax) notes
+     */
+    case UNTDID_4451_ADD = 'ADD';
+
+    /**
+     * Code value name
+     */
+    case UNTDID_4451_ADE = 'ADE';
+
+    /**
+     * Code list name
+     */
+    case UNTDID_4451_ADF = 'ADF';
+
+    /**
+     * Clarification of usage
+     */
+    case UNTDID_4451_ADG = 'ADG';
+
+    /**
+     * Composite data element name
+     */
+    case UNTDID_4451_ADH = 'ADH';
+
+    /**
+     * Field of application
+     */
+    case UNTDID_4451_ADI = 'ADI';
+
+    /**
+     * Type of assets and liabilities
+     */
+    case UNTDID_4451_ADJ = 'ADJ';
+
+    /**
+     * Promotion information
+     */
+    case UNTDID_4451_ADK = 'ADK';
+
+    /**
+     * Meter condition
+     */
+    case UNTDID_4451_ADL = 'ADL';
+
+    /**
+     * Meter reading information
+     */
+    case UNTDID_4451_ADM = 'ADM';
+
+    /**
+     * Type of transaction reason
+     */
+    case UNTDID_4451_ADN = 'ADN';
+
+    /**
+     * Type of survey question
+     */
+    case UNTDID_4451_ADO = 'ADO';
+
+    /**
+     * Carrier's agent counter information
+     */
+    case UNTDID_4451_ADP = 'ADP';
+
+    /**
+     * Description of work item on equipment
+     */
+    case UNTDID_4451_ADQ = 'ADQ';
+
+    /**
+     * Message definition
+     */
+    case UNTDID_4451_ADR = 'ADR';
+
+    /**
+     * Booked item information
+     */
+    case UNTDID_4451_ADS = 'ADS';
+
+    /**
+     * Source of document
+     */
+    case UNTDID_4451_ADT = 'ADT';
+
+    /**
+     * Note
+     */
+    case UNTDID_4451_ADU = 'ADU';
+
+    /**
+     * Fixed part of segment clarification text
+     */
+    case UNTDID_4451_ADV = 'ADV';
+
+    /**
+     * Characteristics of goods
+     */
+    case UNTDID_4451_ADW = 'ADW';
+
+    /**
+     * Additional discharge instructions
+     */
+    case UNTDID_4451_ADX = 'ADX';
+
+    /**
+     * Container stripping instructions
+     */
+    case UNTDID_4451_ADY = 'ADY';
+
+    /**
+     * CSC (Container Safety Convention) plate information
+     */
+    case UNTDID_4451_ADZ = 'ADZ';
+
+    /**
+     * Cargo remarks
+     */
+    case UNTDID_4451_AEA = 'AEA';
+
+    /**
+     * Temperature control instructions
+     */
+    case UNTDID_4451_AEB = 'AEB';
+
+    /**
+     * Text refers to expected data
+     */
+    case UNTDID_4451_AEC = 'AEC';
+
+    /**
+     * Text refers to received data
+     */
+    case UNTDID_4451_AED = 'AED';
+
+    /**
+     * Section clarification text
+     */
+    case UNTDID_4451_AEE = 'AEE';
+
+    /**
+     * Information to the beneficiary
+     */
+    case UNTDID_4451_AEF = 'AEF';
+
+    /**
+     * Information to the applicant
+     */
+    case UNTDID_4451_AEG = 'AEG';
+
+    /**
+     * Instructions to the beneficiary
+     */
+    case UNTDID_4451_AEH = 'AEH';
+
+    /**
+     * Instructions to the applicant
+     */
+    case UNTDID_4451_AEI = 'AEI';
+
+    /**
+     * Controlled atmosphere
+     */
+    case UNTDID_4451_AEJ = 'AEJ';
+
+    /**
+     * Take off annotation
+     */
+    case UNTDID_4451_AEK = 'AEK';
+
+    /**
+     * Price variation narrative
+     */
+    case UNTDID_4451_AEL = 'AEL';
+
+    /**
+     * Documentary credit amendment instructions
+     */
+    case UNTDID_4451_AEM = 'AEM';
+
+    /**
+     * Standard method narrative
+     */
+    case UNTDID_4451_AEN = 'AEN';
+
+    /**
+     * Project narrative
+     */
+    case UNTDID_4451_AEO = 'AEO';
+
+    /**
+     * Radioactive goods, additional information
+     */
+    case UNTDID_4451_AEP = 'AEP';
+
+    /**
+     * Bank-to-bank information
+     */
+    case UNTDID_4451_AEQ = 'AEQ';
+
+    /**
+     * Reimbursement instructions
+     */
+    case UNTDID_4451_AER = 'AER';
+
+    /**
+     * Reason for amending a message
+     */
+    case UNTDID_4451_AES = 'AES';
+
+    /**
+     * Instructions to the paying and/or accepting and/or
+     */
+    case UNTDID_4451_AET = 'AET';
+
+    /**
+     * Interest instructions
+     */
+    case UNTDID_4451_AEU = 'AEU';
+
+    /**
+     * Agent commission
+     */
+    case UNTDID_4451_AEV = 'AEV';
+
+    /**
+     * Remitting bank instructions
+     */
+    case UNTDID_4451_AEW = 'AEW';
+
+    /**
+     * Instructions to the collecting bank
+     */
+    case UNTDID_4451_AEX = 'AEX';
+
+    /**
+     * Collection amount instructions
+     */
+    case UNTDID_4451_AEY = 'AEY';
+
+    /**
+     * Internal auditing information
+     */
+    case UNTDID_4451_AEZ = 'AEZ';
+
+    /**
+     * Constraint
+     */
+    case UNTDID_4451_AFA = 'AFA';
+
+    /**
+     * Comment
+     */
+    case UNTDID_4451_AFB = 'AFB';
+
+    /**
+     * Semantic note
+     */
+    case UNTDID_4451_AFC = 'AFC';
+
+    /**
+     * Help text
+     */
+    case UNTDID_4451_AFD = 'AFD';
+
+    /**
+     * Legend
+     */
+    case UNTDID_4451_AFE = 'AFE';
+
+    /**
+     * Batch code structure
+     */
+    case UNTDID_4451_AFF = 'AFF';
+
+    /**
+     * Product application
+     */
+    case UNTDID_4451_AFG = 'AFG';
+
+    /**
+     * Customer complaint
+     */
+    case UNTDID_4451_AFH = 'AFH';
+
+    /**
+     * Probable cause of fault
+     */
+    case UNTDID_4451_AFI = 'AFI';
+
+    /**
+     * Defect description
+     */
+    case UNTDID_4451_AFJ = 'AFJ';
+
+    /**
+     * Repair description
+     */
+    case UNTDID_4451_AFK = 'AFK';
+
+    /**
+     * Review comments
+     */
+    case UNTDID_4451_AFL = 'AFL';
+
+    /**
+     * Title
+     */
+    case UNTDID_4451_AFM = 'AFM';
+
+    /**
+     * Description of amount
+     */
+    case UNTDID_4451_AFN = 'AFN';
+
+    /**
+     * Responsibilities
+     */
+    case UNTDID_4451_AFO = 'AFO';
+
+    /**
+     * Supplier
+     */
+    case UNTDID_4451_AFP = 'AFP';
+
+    /**
+     * Purchase region
+     */
+    case UNTDID_4451_AFQ = 'AFQ';
+
+    /**
+     * Affiliation
+     */
+    case UNTDID_4451_AFR = 'AFR';
+
+    /**
+     * Borrower
+     */
+    case UNTDID_4451_AFS = 'AFS';
+
+    /**
+     * Line of business
+     */
+    case UNTDID_4451_AFT = 'AFT';
+
+    /**
+     * Financial institution
+     */
+    case UNTDID_4451_AFU = 'AFU';
+
+    /**
+     * Business founder
+     */
+    case UNTDID_4451_AFV = 'AFV';
+
+    /**
+     * Business history
+     */
+    case UNTDID_4451_AFW = 'AFW';
+
+    /**
+     * Banking arrangements
+     */
+    case UNTDID_4451_AFX = 'AFX';
+
+    /**
+     * Business origin
+     */
+    case UNTDID_4451_AFY = 'AFY';
+
+    /**
+     * Brand names' description
+     */
+    case UNTDID_4451_AFZ = 'AFZ';
+
+    /**
+     * Business financing details
+     */
+    case UNTDID_4451_AGA = 'AGA';
+
+    /**
+     * Competition
+     */
+    case UNTDID_4451_AGB = 'AGB';
+
+    /**
+     * Construction process details
+     */
+    case UNTDID_4451_AGC = 'AGC';
+
+    /**
+     * Construction specialty
+     */
+    case UNTDID_4451_AGD = 'AGD';
+
+    /**
+     * Contract information
+     */
+    case UNTDID_4451_AGE = 'AGE';
+
+    /**
+     * Corporate filing
+     */
+    case UNTDID_4451_AGF = 'AGF';
+
+    /**
+     * Customer information
+     */
+    case UNTDID_4451_AGG = 'AGG';
+
+    /**
+     * Copyright notice
+     */
+    case UNTDID_4451_AGH = 'AGH';
+
+    /**
+     * Contingent debt
+     */
+    case UNTDID_4451_AGI = 'AGI';
+
+    /**
+     * Conviction details
+     */
+    case UNTDID_4451_AGJ = 'AGJ';
+
+    /**
+     * Equipment
+     */
+    case UNTDID_4451_AGK = 'AGK';
+
+    /**
+     * Workforce description
+     */
+    case UNTDID_4451_AGL = 'AGL';
+
+    /**
+     * Exemption
+     */
+    case UNTDID_4451_AGM = 'AGM';
+
+    /**
+     * Future plans
+     */
+    case UNTDID_4451_AGN = 'AGN';
+
+    /**
+     * Interviewee conversation information
+     */
+    case UNTDID_4451_AGO = 'AGO';
+
+    /**
+     * Intangible asset
+     */
+    case UNTDID_4451_AGP = 'AGP';
+
+    /**
+     * Inventory
+     */
+    case UNTDID_4451_AGQ = 'AGQ';
+
+    /**
+     * Investment
+     */
+    case UNTDID_4451_AGR = 'AGR';
+
+    /**
+     * Intercompany relations information
+     */
+    case UNTDID_4451_AGS = 'AGS';
+
+    /**
+     * Joint venture
+     */
+    case UNTDID_4451_AGT = 'AGT';
+
+    /**
+     * Loan
+     */
+    case UNTDID_4451_AGU = 'AGU';
+
+    /**
+     * Long term debt
+     */
+    case UNTDID_4451_AGV = 'AGV';
+
+    /**
+     * Location
+     */
+    case UNTDID_4451_AGW = 'AGW';
+
+    /**
+     * Current legal structure
+     */
+    case UNTDID_4451_AGX = 'AGX';
+
+    /**
+     * Marital contract
+     */
+    case UNTDID_4451_AGY = 'AGY';
+
+    /**
+     * Marketing activities
+     */
+    case UNTDID_4451_AGZ = 'AGZ';
+
+    /**
+     * Merger
+     */
+    case UNTDID_4451_AHA = 'AHA';
+
+    /**
+     * Marketable securities
+     */
+    case UNTDID_4451_AHB = 'AHB';
+
+    /**
+     * Business debt
+     */
+    case UNTDID_4451_AHC = 'AHC';
+
+    /**
+     * Original legal structure
+     */
+    case UNTDID_4451_AHD = 'AHD';
+
+    /**
+     * Employee sharing arrangements
+     */
+    case UNTDID_4451_AHE = 'AHE';
+
+    /**
+     * Organization details
+     */
+    case UNTDID_4451_AHF = 'AHF';
+
+    /**
+     * Public record details
+     */
+    case UNTDID_4451_AHG = 'AHG';
+
+    /**
+     * Price range
+     */
+    case UNTDID_4451_AHH = 'AHH';
+
+    /**
+     * Qualifications
+     */
+    case UNTDID_4451_AHI = 'AHI';
+
+    /**
+     * Registered activity
+     */
+    case UNTDID_4451_AHJ = 'AHJ';
+
+    /**
+     * Criminal sentence
+     */
+    case UNTDID_4451_AHK = 'AHK';
+
+    /**
+     * Sales method
+     */
+    case UNTDID_4451_AHL = 'AHL';
+
+    /**
+     * Educational institution information
+     */
+    case UNTDID_4451_AHM = 'AHM';
+
+    /**
+     * Status details
+     */
+    case UNTDID_4451_AHN = 'AHN';
+
+    /**
+     * Sales
+     */
+    case UNTDID_4451_AHO = 'AHO';
+
+    /**
+     * Spouse information
+     */
+    case UNTDID_4451_AHP = 'AHP';
+
+    /**
+     * Educational degree information
+     */
+    case UNTDID_4451_AHQ = 'AHQ';
+
+    /**
+     * Shareholding information
+     */
+    case UNTDID_4451_AHR = 'AHR';
+
+    /**
+     * Sales territory
+     */
+    case UNTDID_4451_AHS = 'AHS';
+
+    /**
+     * Accountant's comments
+     */
+    case UNTDID_4451_AHT = 'AHT';
+
+    /**
+     * Exemption law location
+     */
+    case UNTDID_4451_AHU = 'AHU';
+
+    /**
+     * Share classifications
+     */
+    case UNTDID_4451_AHV = 'AHV';
+
+    /**
+     * Forecast
+     */
+    case UNTDID_4451_AHW = 'AHW';
+
+    /**
+     * Event location
+     */
+    case UNTDID_4451_AHX = 'AHX';
+
+    /**
+     * Facility occupancy
+     */
+    case UNTDID_4451_AHY = 'AHY';
+
+    /**
+     * Import and export details
+     */
+    case UNTDID_4451_AHZ = 'AHZ';
+
+    /**
+     * Additional facility information
+     */
+    case UNTDID_4451_AIA = 'AIA';
+
+    /**
+     * Inventory value
+     */
+    case UNTDID_4451_AIB = 'AIB';
+
+    /**
+     * Education
+     */
+    case UNTDID_4451_AIC = 'AIC';
+
+    /**
+     * Event
+     */
+    case UNTDID_4451_AID = 'AID';
+
+    /**
+     * Agent
+     */
+    case UNTDID_4451_AIE = 'AIE';
+
+    /**
+     * Domestically agreed financial statement details
+     */
+    case UNTDID_4451_AIF = 'AIF';
+
+    /**
+     * Other current asset description
+     */
+    case UNTDID_4451_AIG = 'AIG';
+
+    /**
+     * Other current liability description
+     */
+    case UNTDID_4451_AIH = 'AIH';
+
+    /**
+     * Former business activity
+     */
+    case UNTDID_4451_AII = 'AII';
+
+    /**
+     * Trade name use
+     */
+    case UNTDID_4451_AIJ = 'AIJ';
+
+    /**
+     * Signing authority
+     */
+    case UNTDID_4451_AIK = 'AIK';
+
+    /**
+     * Guarantee
+     */
+    case UNTDID_4451_AIL = 'AIL';
+
+    /**
+     * Holding company operation
+     */
+    case UNTDID_4451_AIM = 'AIM';
+
+    /**
+     * Consignment routing
+     */
+    case UNTDID_4451_AIN = 'AIN';
+
+    /**
+     * Letter of protest
+     */
+    case UNTDID_4451_AIO = 'AIO';
+
+    /**
+     * Question
+     */
+    case UNTDID_4451_AIP = 'AIP';
+
+    /**
+     * Party information
+     */
+    case UNTDID_4451_AIQ = 'AIQ';
+
+    /**
+     * Area boundaries description
+     */
+    case UNTDID_4451_AIR = 'AIR';
+
+    /**
+     * Advertisement information
+     */
+    case UNTDID_4451_AIS = 'AIS';
+
+    /**
+     * Financial statement details
+     */
+    case UNTDID_4451_AIT = 'AIT';
+
+    /**
+     * Access instructions
+     */
+    case UNTDID_4451_AIU = 'AIU';
+
+    /**
+     * Liquidity
+     */
+    case UNTDID_4451_AIV = 'AIV';
+
+    /**
+     * Credit line
+     */
+    case UNTDID_4451_AIW = 'AIW';
+
+    /**
+     * Warranty terms
+     */
+    case UNTDID_4451_AIX = 'AIX';
+
+    /**
+     * Division description
+     */
+    case UNTDID_4451_AIY = 'AIY';
+
+    /**
+     * Reporting instruction
+     */
+    case UNTDID_4451_AIZ = 'AIZ';
+
+    /**
+     * Examination result
+     */
+    case UNTDID_4451_AJA = 'AJA';
+
+    /**
+     * Laboratory result
+     */
+    case UNTDID_4451_AJB = 'AJB';
+
+    /**
+     * Allowance/charge information
+     */
+    case UNTDID_4451_ALC = 'ALC';
+
+    /**
+     * X-ray result
+     */
+    case UNTDID_4451_ALD = 'ALD';
+
+    /**
+     * Pathology result
+     */
+    case UNTDID_4451_ALE = 'ALE';
+
+    /**
+     * Intervention description
+     */
+    case UNTDID_4451_ALF = 'ALF';
+
+    /**
+     * Summary of admittance
+     */
+    case UNTDID_4451_ALG = 'ALG';
+
+    /**
+     * Medical treatment course detail
+     */
+    case UNTDID_4451_ALH = 'ALH';
+
+    /**
+     * Prognosis
+     */
+    case UNTDID_4451_ALI = 'ALI';
+
+    /**
+     * Instruction to patient
+     */
+    case UNTDID_4451_ALJ = 'ALJ';
+
+    /**
+     * Instruction to physician
+     */
+    case UNTDID_4451_ALK = 'ALK';
+
+    /**
+     * All documents
+     */
+    case UNTDID_4451_ALL = 'ALL';
+
+    /**
+     * Medicine treatment
+     */
+    case UNTDID_4451_ALM = 'ALM';
+
+    /**
+     * Medicine dosage and administration
+     */
+    case UNTDID_4451_ALN = 'ALN';
+
+    /**
+     * Availability of patient
+     */
+    case UNTDID_4451_ALO = 'ALO';
+
+    /**
+     * Reason for service request
+     */
+    case UNTDID_4451_ALP = 'ALP';
+
+    /**
+     * Purpose of service
+     */
+    case UNTDID_4451_ALQ = 'ALQ';
+
+    /**
+     * Arrival conditions
+     */
+    case UNTDID_4451_ARR = 'ARR';
+
+    /**
+     * Service requester's comment
+     */
+    case UNTDID_4451_ARS = 'ARS';
+
+    /**
+     * Authentication
+     */
+    case UNTDID_4451_AUT = 'AUT';
+
+    /**
+     * Requested location description
+     */
+    case UNTDID_4451_AUU = 'AUU';
+
+    /**
+     * Medicine administration condition
+     */
+    case UNTDID_4451_AUV = 'AUV';
+
+    /**
+     * Patient information
+     */
+    case UNTDID_4451_AUW = 'AUW';
+
+    /**
+     * Precautionary measure
+     */
+    case UNTDID_4451_AUX = 'AUX';
+
+    /**
+     * Service characteristic
+     */
+    case UNTDID_4451_AUY = 'AUY';
+
+    /**
+     * Planned event comment
+     */
+    case UNTDID_4451_AUZ = 'AUZ';
+
+    /**
+     * Expected delay comment
+     */
+    case UNTDID_4451_AVA = 'AVA';
+
+    /**
+     * Transport requirements comment
+     */
+    case UNTDID_4451_AVB = 'AVB';
+
+    /**
+     * Temporary approval condition
+     */
+    case UNTDID_4451_AVC = 'AVC';
+
+    /**
+     * Customs Valuation Information
+     */
+    case UNTDID_4451_AVD = 'AVD';
+
+    /**
+     * Value Added Tax (VAT) margin scheme
+     */
+    case UNTDID_4451_AVE = 'AVE';
+
+    /**
+     * Maritime Declaration of Health
+     */
+    case UNTDID_4451_AVF = 'AVF';
+
+    /**
+     * Passenger baggage information
+     */
+    case UNTDID_4451_BAG = 'BAG';
+
+    /**
+     * Maritime Declaration of Health
+     */
+    case UNTDID_4451_BAH = 'BAH';
+
+    /**
+     * Additional product information address
+     */
+    case UNTDID_4451_BAI = 'BAI';
+
+    /**
+     * Information to be printed on despatch advice
+     */
+    case UNTDID_4451_BAJ = 'BAJ';
+
+    /**
+     * Missing goods remarks
+     */
+    case UNTDID_4451_BAK = 'BAK';
+
+    /**
+     * Non-acceptance information
+     */
+    case UNTDID_4451_BAL = 'BAL';
+
+    /**
+     * Returns information
+     */
+    case UNTDID_4451_BAM = 'BAM';
+
+    /**
+     * Sub-line item information
+     */
+    case UNTDID_4451_BAN = 'BAN';
+
+    /**
+     * Test information
+     */
+    case UNTDID_4451_BAO = 'BAO';
+
+    /**
+     * External link
+     */
+    case UNTDID_4451_BAP = 'BAP';
+
+    /**
+     * VAT exemption reason
+     */
+    case UNTDID_4451_BAQ = 'BAQ';
+
+    /**
+     * Processing Instructions
+     */
+    case UNTDID_4451_BAR = 'BAR';
+
+    /**
+     * Relay Instructions
+     */
+    case UNTDID_4451_BAS = 'BAS';
+
+    /**
+     * Transport contract document clause
+     */
+    case UNTDID_4451_BLC = 'BLC';
+
+    /**
+     * Instruction to prepare the patient
+     */
+    case UNTDID_4451_BLD = 'BLD';
+
+    /**
+     * Medicine treatment comment
+     */
+    case UNTDID_4451_BLE = 'BLE';
+
+    /**
+     * Examination result comment
+     */
+    case UNTDID_4451_BLF = 'BLF';
+
+    /**
+     * Service request comment
+     */
+    case UNTDID_4451_BLG = 'BLG';
+
+    /**
+     * Prescription reason
+     */
+    case UNTDID_4451_BLH = 'BLH';
+
+    /**
+     * Prescription comment
+     */
+    case UNTDID_4451_BLI = 'BLI';
+
+    /**
+     * Clinical investigation comment
+     */
+    case UNTDID_4451_BLJ = 'BLJ';
+
+    /**
+     * Medicinal specification comment
+     */
+    case UNTDID_4451_BLK = 'BLK';
+
+    /**
+     * Economic contribution comment
+     */
+    case UNTDID_4451_BLL = 'BLL';
+
+    /**
+     * Status of a plan
+     */
+    case UNTDID_4451_BLM = 'BLM';
+
+    /**
+     * Random sample test information
+     */
+    case UNTDID_4451_BLN = 'BLN';
+
+    /**
+     * Period of time
+     */
+    case UNTDID_4451_BLO = 'BLO';
+
+    /**
+     * Legislation
+     */
+    case UNTDID_4451_BLP = 'BLP';
+
+    /**
+     * Security measures requested
+     */
+    case UNTDID_4451_BLQ = 'BLQ';
+
+    /**
+     * Transport contract document remark
+     */
+    case UNTDID_4451_BLR = 'BLR';
+
+    /**
+     * Previous port of call security information
+     */
+    case UNTDID_4451_BLS = 'BLS';
+
+    /**
+     * Security information
+     */
+    case UNTDID_4451_BLT = 'BLT';
+
+    /**
+     * Waste information
+     */
+    case UNTDID_4451_BLU = 'BLU';
+
+    /**
+     * B2C marketing information, short description
+     */
+    case UNTDID_4451_BLV = 'BLV';
+
+    /**
+     * B2B marketing information, long description
+     */
+    case UNTDID_4451_BLW = 'BLW';
+
+    /**
+     * B2C marketing information, long description
+     */
+    case UNTDID_4451_BLX = 'BLX';
+
+    /**
+     * Product ingredients
+     */
+    case UNTDID_4451_BLY = 'BLY';
+
+    /**
+     * Location short name
+     */
+    case UNTDID_4451_BLZ = 'BLZ';
+
+    /**
+     * Packaging material information
+     */
+    case UNTDID_4451_BMA = 'BMA';
+
+    /**
+     * Filler material information
+     */
+    case UNTDID_4451_BMB = 'BMB';
+
+    /**
+     * Ship-to-ship activity information
+     */
+    case UNTDID_4451_BMC = 'BMC';
+
+    /**
+     * Package material description
+     */
+    case UNTDID_4451_BMD = 'BMD';
+
+    /**
+     * Consumer level package marking
+     */
+    case UNTDID_4451_BME = 'BME';
+
+    /**
+     * Customs clearance instructions
+     */
+    case UNTDID_4451_CCI = 'CCI';
+
+    /**
+     * Customs clearance instructions export
+     */
+    case UNTDID_4451_CEX = 'CEX';
+
+    /**
+     * Change information
+     */
+    case UNTDID_4451_CHG = 'CHG';
+
+    /**
+     * Customs clearance instruction import
+     */
+    case UNTDID_4451_CIP = 'CIP';
+
+    /**
+     * Clearance place requested
+     */
+    case UNTDID_4451_CLP = 'CLP';
+
+    /**
+     * Loading remarks
+     */
+    case UNTDID_4451_CLR = 'CLR';
+
+    /**
+     * Order information
+     */
+    case UNTDID_4451_COI = 'COI';
+
+    /**
+     * Customer remarks
+     */
+    case UNTDID_4451_CUR = 'CUR';
+
+    /**
+     * Customs declaration information
+     */
+    case UNTDID_4451_CUS = 'CUS';
+
+    /**
+     * Damage remarks
+     */
+    case UNTDID_4451_DAR = 'DAR';
+
+    /**
+     * Document issuer declaration
+     */
+    case UNTDID_4451_DCL = 'DCL';
+
+    /**
+     * Delivery information
+     */
+    case UNTDID_4451_DEL = 'DEL';
+
+    /**
+     * Delivery instructions
+     */
+    case UNTDID_4451_DIN = 'DIN';
+
+    /**
+     * Documentation instructions
+     */
+    case UNTDID_4451_DOC = 'DOC';
+
+    /**
+     * Duty declaration
+     */
+    case UNTDID_4451_DUT = 'DUT';
+
+    /**
+     * Effective used routing
+     */
+    case UNTDID_4451_EUR = 'EUR';
+
+    /**
+     * First block to be printed on the transport contract
+     */
+    case UNTDID_4451_FBC = 'FBC';
+
+    /**
+     * Government bill of lading information
+     */
+    case UNTDID_4451_GBL = 'GBL';
+
+    /**
+     * Entire transaction set
+     */
+    case UNTDID_4451_GEN = 'GEN';
+
+    /**
+     * Further information concerning GGVS par. 7
+     */
+    case UNTDID_4451_GS7 = 'GS7';
+
+    /**
+     * Consignment handling instruction
+     */
+    case UNTDID_4451_HAN = 'HAN';
+
+    /**
+     * Hazard information
+     */
+    case UNTDID_4451_HAZ = 'HAZ';
+
+    /**
+     * Consignment information for consignee
+     */
+    case UNTDID_4451_ICN = 'ICN';
+
+    /**
+     * Insurance instructions
+     */
+    case UNTDID_4451_IIN = 'IIN';
+
+    /**
+     * Invoice mailing instructions
+     */
+    case UNTDID_4451_IMI = 'IMI';
+
+    /**
+     * Commercial invoice item description
+     */
+    case UNTDID_4451_IND = 'IND';
+
+    /**
+     * Insurance information
+     */
+    case UNTDID_4451_INS = 'INS';
+
+    /**
+     * Invoice instruction
+     */
+    case UNTDID_4451_INV = 'INV';
+
+    /**
+     * Information for railway purpose
+     */
+    case UNTDID_4451_IRP = 'IRP';
+
+    /**
+     * Inland transport details
+     */
+    case UNTDID_4451_ITR = 'ITR';
+
+    /**
+     * Testing instructions
+     */
+    case UNTDID_4451_ITS = 'ITS';
+
+    /**
+     * Location Alias
+     */
+    case UNTDID_4451_LAN = 'LAN';
+
+    /**
+     * Line item
+     */
+    case UNTDID_4451_LIN = 'LIN';
+
+    /**
+     * Loading instruction
+     */
+    case UNTDID_4451_LOI = 'LOI';
+
+    /**
+     * Miscellaneous charge order
+     */
+    case UNTDID_4451_MCO = 'MCO';
+
+    /**
+     * Maritime Declaration of Health
+     */
+    case UNTDID_4451_MDH = 'MDH';
+
+    /**
+     * Additional marks/numbers information
+     */
+    case UNTDID_4451_MKS = 'MKS';
+
+    /**
+     * Order instruction
+     */
+    case UNTDID_4451_ORI = 'ORI';
+
+    /**
+     * Other service information
+     */
+    case UNTDID_4451_OSI = 'OSI';
+
+    /**
+     * Packing/marking information
+     */
+    case UNTDID_4451_PAC = 'PAC';
+
+    /**
+     * Payment instructions information
+     */
+    case UNTDID_4451_PAI = 'PAI';
+
+    /**
+     * Payables information
+     */
+    case UNTDID_4451_PAY = 'PAY';
+
+    /**
+     * Packaging information
+     */
+    case UNTDID_4451_PKG = 'PKG';
+
+    /**
+     * Packaging terms information
+     */
+    case UNTDID_4451_PKT = 'PKT';
+
+    /**
+     * Payment detail/remittance information
+     */
+    case UNTDID_4451_PMD = 'PMD';
+
+    /**
+     * Payment information
+     */
+    case UNTDID_4451_PMT = 'PMT';
+
+    /**
+     * Product information
+     */
+    case UNTDID_4451_PRD = 'PRD';
+
+    /**
+     * Price calculation formula
+     */
+    case UNTDID_4451_PRF = 'PRF';
+
+    /**
+     * Priority information
+     */
+    case UNTDID_4451_PRI = 'PRI';
+
+    /**
+     * Purchasing information
+     */
+    case UNTDID_4451_PUR = 'PUR';
+
+    /**
+     * Quarantine instructions
+     */
+    case UNTDID_4451_QIN = 'QIN';
+
+    /**
+     * Quality demands/requirements
+     */
+    case UNTDID_4451_QQD = 'QQD';
+
+    /**
+     * Quotation instruction/information
+     */
+    case UNTDID_4451_QUT = 'QUT';
+
+    /**
+     * Risk and handling information
+     */
+    case UNTDID_4451_RAH = 'RAH';
+
+    /**
+     * Regulatory information
+     */
+    case UNTDID_4451_REG = 'REG';
+
+    /**
+     * Return to origin information
+     */
+    case UNTDID_4451_RET = 'RET';
+
+    /**
+     * Receivables
+     */
+    case UNTDID_4451_REV = 'REV';
+
+    /**
+     * Consignment route
+     */
+    case UNTDID_4451_RQR = 'RQR';
+
+    /**
+     * Safety information
+     */
+    case UNTDID_4451_SAF = 'SAF';
+
+    /**
+     * Consignment documentary instruction
+     */
+    case UNTDID_4451_SIC = 'SIC';
+
+    /**
+     * Special instructions
+     */
+    case UNTDID_4451_SIN = 'SIN';
+
+    /**
+     * Ship line requested
+     */
+    case UNTDID_4451_SLR = 'SLR';
+
+    /**
+     * Special permission for transport, generally
+     */
+    case UNTDID_4451_SPA = 'SPA';
+
+    /**
+     * Special permission concerning the goods to be transported
+     */
+    case UNTDID_4451_SPG = 'SPG';
+
+    /**
+     * Special handling
+     */
+    case UNTDID_4451_SPH = 'SPH';
+
+    /**
+     * Special permission concerning package
+     */
+    case UNTDID_4451_SPP = 'SPP';
+
+    /**
+     * Special permission concerning transport means
+     */
+    case UNTDID_4451_SPT = 'SPT';
+
+    /**
+     * Subsidiary risk number (IATA/DGR)
+     */
+    case UNTDID_4451_SRN = 'SRN';
+
+    /**
+     * Special service request
+     */
+    case UNTDID_4451_SSR = 'SSR';
+
+    /**
+     * Supplier remarks
+     */
+    case UNTDID_4451_SUR = 'SUR';
+
+    /**
+     * Consignment tariff
+     */
+    case UNTDID_4451_TCA = 'TCA';
+
+    /**
+     * Consignment transport
+     */
+    case UNTDID_4451_TDT = 'TDT';
+
+    /**
+     * Transportation information
+     */
+    case UNTDID_4451_TRA = 'TRA';
+
+    /**
+     * Requested tariff
+     */
+    case UNTDID_4451_TRR = 'TRR';
+
+    /**
+     * Tax declaration
+     */
+    case UNTDID_4451_TXD = 'TXD';
+
+    /**
+     * Warehouse instruction/information
+     */
+    case UNTDID_4451_WHI = 'WHI';
+
+    /**
+     * Mutually defined
+     */
+    case UNTDID_4451_ZZZ = 'ZZZ';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdUnitCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdUnitCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdUnitCodes.php	(revision 8542)
@@ -0,0 +1,10604 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing the Unit codes
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdUnitCodes: string
+{
+
+    /**
+     * group
+     */
+    case REC20_GROUP = '10';
+
+    /**
+     * outfit
+     */
+    case REC20_OUTFIT = '11';
+
+    /**
+     * ration
+     */
+    case REC20_RATION = '13';
+
+    /**
+     * shot
+     */
+    case REC20_SHOT = '14';
+
+    /**
+     * stick, military
+     */
+    case REC20_STICK_MILITARY = '15';
+
+    /**
+     * twenty foot container
+     */
+    case REC20_TWENTY_FOOT_CONTAINER = '20';
+
+    /**
+     * forty foot container
+     */
+    case REC20_FORTY_FOOT_CONTAINER = '21';
+
+    /**
+     * decilitre per gram
+     */
+    case REC20_DECILITRE_PER_GRAM = '22';
+
+    /**
+     * gram per cubic centimetre
+     */
+    case REC20_GRAM_PER_CUBIC_CENTIMETRE = '23';
+
+    /**
+     * theoretical pound
+     */
+    case REC20_THEORETICAL_POUND = '24';
+
+    /**
+     * gram per square centimetre
+     */
+    case REC20_GRAM_PER_SQUARE_CENTIMETRE = '25';
+
+    /**
+     * theoretical ton
+     */
+    case REC20_THEORETICAL_TON = '27';
+
+    /**
+     * kilogram per square metre
+     */
+    case REC20_KILOGRAM_PER_SQUARE_METRE = '28';
+
+    /**
+     * kilopascal square metre per gram
+     */
+    case REC20_KILOPASCAL_SQUARE_METRE_PER_GRAM = '33';
+
+    /**
+     * kilopascal per millimetre
+     */
+    case REC20_KILOPASCAL_PER_MILLIMETRE = '34';
+
+    /**
+     * millilitre per square centimetre second
+     */
+    case REC20_MILLILITRE_PER_SQUARE_CENTIMETRE_SECOND = '35';
+
+    /**
+     * ounce per square foot
+     */
+    case REC20_OUNCE_PER_SQUARE_FOOT = '37';
+
+    /**
+     * ounce per square foot per 0,01inch
+     */
+    case REC20_OUNCE_PER_SQUARE_FOOT_PER_001INCH = '38';
+
+    /**
+     * millilitre per second
+     */
+    case REC20_MILLILITRE_PER_SECOND = '40';
+
+    /**
+     * millilitre per minute
+     */
+    case REC20_MILLILITRE_PER_MINUTE = '41';
+
+    /**
+     * sitas
+     */
+    case REC20_SITAS = '56';
+
+    /**
+     * mesh
+     */
+    case REC20_MESH = '57';
+
+    /**
+     * net kilogram
+     */
+    case REC20_NET_KILOGRAM = '58';
+
+    /**
+     * part per million
+     */
+    case REC20_PART_PER_MILLION = '59';
+
+    /**
+     * percent weight
+     */
+    case REC20_PERCENT_WEIGHT = '60';
+
+    /**
+     * part per billion (US)
+     */
+    case REC20_PART_PER_BILLION_US = '61';
+
+    /**
+     * millipascal
+     */
+    case REC20_MILLIPASCAL = '74';
+
+    /**
+     * milli-inch
+     */
+    case REC20_MILLIINCH = '77';
+
+    /**
+     * pound per square inch absolute
+     */
+    case REC20_POUND_PER_SQUARE_INCH_ABSOLUTE = '80';
+
+    /**
+     * henry
+     */
+    case REC20_HENRY = '81';
+
+    /**
+     * foot pound-force
+     */
+    case REC20_FOOT_POUNDFORCE = '85';
+
+    /**
+     * pound per cubic foot
+     */
+    case REC20_POUND_PER_CUBIC_FOOT = '87';
+
+    /**
+     * poise
+     */
+    case REC20_POISE = '89';
+
+    /**
+     * stokes
+     */
+    case REC20_STOKES = '91';
+
+    /**
+     * fixed rate
+     */
+    case REC20_FIXED_RATE = '1I';
+
+    /**
+     * radian per second
+     */
+    case REC20_RADIAN_PER_SECOND = '2A';
+
+    /**
+     * radian per second squared
+     */
+    case REC20_RADIAN_PER_SECOND_SQUARED = '2B';
+
+    /**
+     * roentgen
+     */
+    case REC20_ROENTGEN = '2C';
+
+    /**
+     * volt AC
+     */
+    case REC20_VOLT_AC = '2G';
+
+    /**
+     * volt DC
+     */
+    case REC20_VOLT_DC = '2H';
+
+    /**
+     * British thermal unit (international table) per hour
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_HOUR = '2I';
+
+    /**
+     * cubic centimetre per second
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_SECOND = '2J';
+
+    /**
+     * cubic foot per hour
+     */
+    case REC20_CUBIC_FOOT_PER_HOUR = '2K';
+
+    /**
+     * cubic foot per minute
+     */
+    case REC20_CUBIC_FOOT_PER_MINUTE = '2L';
+
+    /**
+     * centimetre per second
+     */
+    case REC20_CENTIMETRE_PER_SECOND = '2M';
+
+    /**
+     * decibel
+     */
+    case REC20_DECIBEL = '2N';
+
+    /**
+     * kilobyte
+     */
+    case REC20_KILOBYTE = '2P';
+
+    /**
+     * kilobecquerel
+     */
+    case REC20_KILOBECQUEREL = '2Q';
+
+    /**
+     * kilocurie
+     */
+    case REC20_KILOCURIE = '2R';
+
+    /**
+     * megagram
+     */
+    case REC20_MEGAGRAM = '2U';
+
+    /**
+     * metre per minute
+     */
+    case REC20_METRE_PER_MINUTE = '2X';
+
+    /**
+     * milliroentgen
+     */
+    case REC20_MILLIROENTGEN = '2Y';
+
+    /**
+     * millivolt
+     */
+    case REC20_MILLIVOLT = '2Z';
+
+    /**
+     * megajoule
+     */
+    case REC20_MEGAJOULE = '3B';
+
+    /**
+     * manmonth
+     */
+    case REC20_MANMONTH = '3C';
+
+    /**
+     * centistokes
+     */
+    case REC20_CENTISTOKES = '4C';
+
+    /**
+     * microlitre
+     */
+    case REC20_MICROLITRE = '4G';
+
+    /**
+     * micrometre (micron)
+     */
+    case REC20_MICROMETRE_MICRON = '4H';
+
+    /**
+     * milliampere
+     */
+    case REC20_MILLIAMPERE = '4K';
+
+    /**
+     * megabyte
+     */
+    case REC20_MEGABYTE = '4L';
+
+    /**
+     * milligram per hour
+     */
+    case REC20_MILLIGRAM_PER_HOUR = '4M';
+
+    /**
+     * megabecquerel
+     */
+    case REC20_MEGABECQUEREL = '4N';
+
+    /**
+     * microfarad
+     */
+    case REC20_MICROFARAD = '4O';
+
+    /**
+     * newton per metre
+     */
+    case REC20_NEWTON_PER_METRE = '4P';
+
+    /**
+     * ounce inch
+     */
+    case REC20_OUNCE_INCH = '4Q';
+
+    /**
+     * ounce foot
+     */
+    case REC20_OUNCE_FOOT = '4R';
+
+    /**
+     * picofarad
+     */
+    case REC20_PICOFARAD = '4T';
+
+    /**
+     * pound per hour
+     */
+    case REC20_POUND_PER_HOUR = '4U';
+
+    /**
+     * ton (US) per hour
+     */
+    case REC20_TON_US_PER_HOUR = '4W';
+
+    /**
+     * kilolitre per hour
+     */
+    case REC20_KILOLITRE_PER_HOUR = '4X';
+
+    /**
+     * barrel (US) per minute
+     */
+    case REC20_BARREL_US_PER_MINUTE = '5A';
+
+    /**
+     * batch
+     */
+    case REC20_BATCH = '5B';
+
+    /**
+     * MMSCF/day
+     */
+    case REC20_MMSCF_DAY = '5E';
+
+    /**
+     * hydraulic horse power
+     */
+    case REC20_HYDRAULIC_HORSE_POWER = '5J';
+
+    /**
+     * ampere square metre per joule second
+     */
+    case REC20_AMPERE_SQUARE_METRE_PER_JOULE_SECOND = 'A10';
+
+    /**
+     * angstrom
+     */
+    case REC20_ANGSTROM = 'A11';
+
+    /**
+     * astronomical unit
+     */
+    case REC20_ASTRONOMICAL_UNIT = 'A12';
+
+    /**
+     * attojoule
+     */
+    case REC20_ATTOJOULE = 'A13';
+
+    /**
+     * barn
+     */
+    case REC20_BARN = 'A14';
+
+    /**
+     * barn per electronvolt
+     */
+    case REC20_BARN_PER_ELECTRONVOLT = 'A15';
+
+    /**
+     * barn per steradian electronvolt
+     */
+    case REC20_BARN_PER_STERADIAN_ELECTRONVOLT = 'A16';
+
+    /**
+     * barn per steradian
+     */
+    case REC20_BARN_PER_STERADIAN = 'A17';
+
+    /**
+     * becquerel per kilogram
+     */
+    case REC20_BECQUEREL_PER_KILOGRAM = 'A18';
+
+    /**
+     * becquerel per cubic metre
+     */
+    case REC20_BECQUEREL_PER_CUBIC_METRE = 'A19';
+
+    /**
+     * ampere per centimetre
+     */
+    case REC20_AMPERE_PER_CENTIMETRE = 'A2';
+
+    /**
+     * British thermal unit (international table) per second square foot
+     * degree Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SECOND_SQUARE_FOOT_DEGREE_RANKINE = 'A20';
+
+    /**
+     * British thermal unit (international table) per pound degree Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_POUND_DEGREE_RANKINE = 'A21';
+
+    /**
+     * British thermal unit (international table) per second foot degree
+     * Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SECOND_FOOT_DEGREE_RANKINE = 'A22';
+
+    /**
+     * British thermal unit (international table) per hour square foot degree
+     * Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_HOUR_SQUARE_FOOT_DEGREE_RANKINE = 'A23';
+
+    /**
+     * candela per square metre
+     */
+    case REC20_CANDELA_PER_SQUARE_METRE = 'A24';
+
+    /**
+     * coulomb metre
+     */
+    case REC20_COULOMB_METRE = 'A26';
+
+    /**
+     * coulomb metre squared per volt
+     */
+    case REC20_COULOMB_METRE_SQUARED_PER_VOLT = 'A27';
+
+    /**
+     * coulomb per cubic centimetre
+     */
+    case REC20_COULOMB_PER_CUBIC_CENTIMETRE = 'A28';
+
+    /**
+     * coulomb per cubic metre
+     */
+    case REC20_COULOMB_PER_CUBIC_METRE = 'A29';
+
+    /**
+     * ampere per millimetre
+     */
+    case REC20_AMPERE_PER_MILLIMETRE = 'A3';
+
+    /**
+     * coulomb per cubic millimetre
+     */
+    case REC20_COULOMB_PER_CUBIC_MILLIMETRE = 'A30';
+
+    /**
+     * coulomb per kilogram second
+     */
+    case REC20_COULOMB_PER_KILOGRAM_SECOND = 'A31';
+
+    /**
+     * coulomb per mole
+     */
+    case REC20_COULOMB_PER_MOLE = 'A32';
+
+    /**
+     * coulomb per square centimetre
+     */
+    case REC20_COULOMB_PER_SQUARE_CENTIMETRE = 'A33';
+
+    /**
+     * coulomb per square metre
+     */
+    case REC20_COULOMB_PER_SQUARE_METRE = 'A34';
+
+    /**
+     * coulomb per square millimetre
+     */
+    case REC20_COULOMB_PER_SQUARE_MILLIMETRE = 'A35';
+
+    /**
+     * cubic centimetre per mole
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_MOLE = 'A36';
+
+    /**
+     * cubic decimetre per mole
+     */
+    case REC20_CUBIC_DECIMETRE_PER_MOLE = 'A37';
+
+    /**
+     * cubic metre per coulomb
+     */
+    case REC20_CUBIC_METRE_PER_COULOMB = 'A38';
+
+    /**
+     * cubic metre per kilogram
+     */
+    case REC20_CUBIC_METRE_PER_KILOGRAM = 'A39';
+
+    /**
+     * ampere per square centimetre
+     */
+    case REC20_AMPERE_PER_SQUARE_CENTIMETRE = 'A4';
+
+    /**
+     * cubic metre per mole
+     */
+    case REC20_CUBIC_METRE_PER_MOLE = 'A40';
+
+    /**
+     * ampere per square metre
+     */
+    case REC20_AMPERE_PER_SQUARE_METRE = 'A41';
+
+    /**
+     * curie per kilogram
+     */
+    case REC20_CURIE_PER_KILOGRAM = 'A42';
+
+    /**
+     * deadweight tonnage
+     */
+    case REC20_DEADWEIGHT_TONNAGE = 'A43';
+
+    /**
+     * decalitre
+     */
+    case REC20_DECALITRE = 'A44';
+
+    /**
+     * decametre
+     */
+    case REC20_DECAMETRE = 'A45';
+
+    /**
+     * decitex
+     */
+    case REC20_DECITEX = 'A47';
+
+    /**
+     * degree Rankine
+     */
+    case REC20_DEGREE_RANKINE = 'A48';
+
+    /**
+     * ampere square metre
+     */
+    case REC20_AMPERE_SQUARE_METRE = 'A5';
+
+    /**
+     * electronvolt
+     */
+    case REC20_ELECTRONVOLT = 'A53';
+
+    /**
+     * electronvolt per metre
+     */
+    case REC20_ELECTRONVOLT_PER_METRE = 'A54';
+
+    /**
+     * electronvolt square metre
+     */
+    case REC20_ELECTRONVOLT_SQUARE_METRE = 'A55';
+
+    /**
+     * electronvolt square metre per kilogram
+     */
+    case REC20_ELECTRONVOLT_SQUARE_METRE_PER_KILOGRAM = 'A56';
+
+    /**
+     * 8-part cloud cover
+     */
+    case REC20_8PART_CLOUD_COVER = 'A59';
+
+    /**
+     * ampere per square metre kelvin squared
+     */
+    case REC20_AMPERE_PER_SQUARE_METRE_KELVIN_SQUARED = 'A6';
+
+    /**
+     * exajoule
+     */
+    case REC20_EXAJOULE = 'A68';
+
+    /**
+     * farad per metre
+     */
+    case REC20_FARAD_PER_METRE = 'A69';
+
+    /**
+     * ampere per square millimetre
+     */
+    case REC20_AMPERE_PER_SQUARE_MILLIMETRE = 'A7';
+
+    /**
+     * femtojoule
+     */
+    case REC20_FEMTOJOULE = 'A70';
+
+    /**
+     * femtometre
+     */
+    case REC20_FEMTOMETRE = 'A71';
+
+    /**
+     * foot per second squared
+     */
+    case REC20_FOOT_PER_SECOND_SQUARED = 'A73';
+
+    /**
+     * foot pound-force per second
+     */
+    case REC20_FOOT_POUNDFORCE_PER_SECOND = 'A74';
+
+    /**
+     * freight ton
+     */
+    case REC20_FREIGHT_TON = 'A75';
+
+    /**
+     * gal
+     */
+    case REC20_GAL = 'A76';
+
+    /**
+     * ampere second
+     */
+    case REC20_AMPERE_SECOND = 'A8';
+
+    /**
+     * gigacoulomb per cubic metre
+     */
+    case REC20_GIGACOULOMB_PER_CUBIC_METRE = 'A84';
+
+    /**
+     * gigaelectronvolt
+     */
+    case REC20_GIGAELECTRONVOLT = 'A85';
+
+    /**
+     * gigahertz
+     */
+    case REC20_GIGAHERTZ = 'A86';
+
+    /**
+     * gigaohm
+     */
+    case REC20_GIGAOHM = 'A87';
+
+    /**
+     * gigaohm metre
+     */
+    case REC20_GIGAOHM_METRE = 'A88';
+
+    /**
+     * gigapascal
+     */
+    case REC20_GIGAPASCAL = 'A89';
+
+    /**
+     * rate
+     */
+    case REC20_RATE = 'A9';
+
+    /**
+     * gigawatt
+     */
+    case REC20_GIGAWATT = 'A90';
+
+    /**
+     * gon
+     */
+    case REC20_GON = 'A91';
+
+    /**
+     * gram per cubic metre
+     */
+    case REC20_GRAM_PER_CUBIC_METRE = 'A93';
+
+    /**
+     * gram per mole
+     */
+    case REC20_GRAM_PER_MOLE = 'A94';
+
+    /**
+     * gray
+     */
+    case REC20_GRAY = 'A95';
+
+    /**
+     * gray per second
+     */
+    case REC20_GRAY_PER_SECOND = 'A96';
+
+    /**
+     * hectopascal
+     */
+    case REC20_HECTOPASCAL = 'A97';
+
+    /**
+     * henry per metre
+     */
+    case REC20_HENRY_PER_METRE = 'A98';
+
+    /**
+     * bit
+     */
+    case REC20_BIT = 'A99';
+
+    /**
+     * ball
+     */
+    case REC20_BALL = 'AA';
+
+    /**
+     * bulk pack
+     */
+    case REC20_BULK_PACK = 'AB';
+
+    /**
+     * acre
+     */
+    case REC20_ACRE = 'ACR';
+
+    /**
+     * activity
+     */
+    case REC20_ACTIVITY = 'ACT';
+
+    /**
+     * byte
+     */
+    case REC20_BYTE = 'AD';
+
+    /**
+     * ampere per metre
+     */
+    case REC20_AMPERE_PER_METRE = 'AE';
+
+    /**
+     * additional minute
+     */
+    case REC20_ADDITIONAL_MINUTE = 'AH';
+
+    /**
+     * average minute per call
+     */
+    case REC20_AVERAGE_MINUTE_PER_CALL = 'AI';
+
+    /**
+     * fathom
+     */
+    case REC20_FATHOM = 'AK';
+
+    /**
+     * access line
+     */
+    case REC20_ACCESS_LINE = 'AL';
+
+    /**
+     * ampere hour
+     */
+    case REC20_AMPERE_HOUR = 'AMH';
+
+    /**
+     * ampere
+     */
+    case REC20_AMPERE = 'AMP';
+
+    /**
+     * year
+     */
+    case REC20_YEAR = 'ANN';
+
+    /**
+     * troy ounce or apothecary ounce
+     */
+    case REC20_TROY_OUNCE_OR_APOTHECARY_OUNCE = 'APZ';
+
+    /**
+     * anti-hemophilic factor (AHF) unit
+     */
+    case REC20_ANTIHEMOPHILIC_FACTOR_AHF_UNIT = 'AQ';
+
+    /**
+     * assortment
+     */
+    case REC20_ASSORTMENT = 'AS';
+
+    /**
+     * alcoholic strength by mass
+     */
+    case REC20_ALCOHOLIC_STRENGTH_BY_MASS = 'ASM';
+
+    /**
+     * alcoholic strength by volume
+     */
+    case REC20_ALCOHOLIC_STRENGTH_BY_VOLUME = 'ASU';
+
+    /**
+     * standard atmosphere
+     */
+    case REC20_STANDARD_ATMOSPHERE = 'ATM';
+
+    /**
+     * american wire gauge
+     */
+    case REC20_AMERICAN_WIRE_GAUGE = 'AWG';
+
+    /**
+     * assembly
+     */
+    case REC20_ASSEMBLY = 'AY';
+
+    /**
+     * British thermal unit (international table) per pound
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_POUND = 'AZ';
+
+    /**
+     * barrel (US) per day
+     */
+    case REC20_BARREL_US_PER_DAY = 'B1';
+
+    /**
+     * bit per second
+     */
+    case REC20_BIT_PER_SECOND = 'B10';
+
+    /**
+     * joule per kilogram kelvin
+     */
+    case REC20_JOULE_PER_KILOGRAM_KELVIN = 'B11';
+
+    /**
+     * joule per metre
+     */
+    case REC20_JOULE_PER_METRE = 'B12';
+
+    /**
+     * joule per square metre
+     */
+    case REC20_JOULE_PER_SQUARE_METRE = 'B13';
+
+    /**
+     * joule per metre to the fourth power
+     */
+    case REC20_JOULE_PER_METRE_TO_THE_FOURTH_POWER = 'B14';
+
+    /**
+     * joule per mole
+     */
+    case REC20_JOULE_PER_MOLE = 'B15';
+
+    /**
+     * joule per mole kelvin
+     */
+    case REC20_JOULE_PER_MOLE_KELVIN = 'B16';
+
+    /**
+     * credit
+     */
+    case REC20_CREDIT = 'B17';
+
+    /**
+     * joule second
+     */
+    case REC20_JOULE_SECOND = 'B18';
+
+    /**
+     * digit
+     */
+    case REC20_DIGIT = 'B19';
+
+    /**
+     * joule square metre per kilogram
+     */
+    case REC20_JOULE_SQUARE_METRE_PER_KILOGRAM = 'B20';
+
+    /**
+     * kelvin per watt
+     */
+    case REC20_KELVIN_PER_WATT = 'B21';
+
+    /**
+     * kiloampere
+     */
+    case REC20_KILOAMPERE = 'B22';
+
+    /**
+     * kiloampere per square metre
+     */
+    case REC20_KILOAMPERE_PER_SQUARE_METRE = 'B23';
+
+    /**
+     * kiloampere per metre
+     */
+    case REC20_KILOAMPERE_PER_METRE = 'B24';
+
+    /**
+     * kilobecquerel per kilogram
+     */
+    case REC20_KILOBECQUEREL_PER_KILOGRAM = 'B25';
+
+    /**
+     * kilocoulomb
+     */
+    case REC20_KILOCOULOMB = 'B26';
+
+    /**
+     * kilocoulomb per cubic metre
+     */
+    case REC20_KILOCOULOMB_PER_CUBIC_METRE = 'B27';
+
+    /**
+     * kilocoulomb per square metre
+     */
+    case REC20_KILOCOULOMB_PER_SQUARE_METRE = 'B28';
+
+    /**
+     * kiloelectronvolt
+     */
+    case REC20_KILOELECTRONVOLT = 'B29';
+
+    /**
+     * batting pound
+     */
+    case REC20_BATTING_POUND = 'B3';
+
+    /**
+     * gibibit
+     */
+    case REC20_GIBIBIT = 'B30';
+
+    /**
+     * kilogram metre per second
+     */
+    case REC20_KILOGRAM_METRE_PER_SECOND = 'B31';
+
+    /**
+     * kilogram metre squared
+     */
+    case REC20_KILOGRAM_METRE_SQUARED = 'B32';
+
+    /**
+     * kilogram metre squared per second
+     */
+    case REC20_KILOGRAM_METRE_SQUARED_PER_SECOND = 'B33';
+
+    /**
+     * kilogram per cubic decimetre
+     */
+    case REC20_KILOGRAM_PER_CUBIC_DECIMETRE = 'B34';
+
+    /**
+     * kilogram per litre
+     */
+    case REC20_KILOGRAM_PER_LITRE = 'B35';
+
+    /**
+     * barrel, imperial
+     */
+    case REC20_BARREL_IMPERIAL = 'B4';
+
+    /**
+     * kilojoule per kelvin
+     */
+    case REC20_KILOJOULE_PER_KELVIN = 'B41';
+
+    /**
+     * kilojoule per kilogram
+     */
+    case REC20_KILOJOULE_PER_KILOGRAM = 'B42';
+
+    /**
+     * kilojoule per kilogram kelvin
+     */
+    case REC20_KILOJOULE_PER_KILOGRAM_KELVIN = 'B43';
+
+    /**
+     * kilojoule per mole
+     */
+    case REC20_KILOJOULE_PER_MOLE = 'B44';
+
+    /**
+     * kilomole
+     */
+    case REC20_KILOMOLE = 'B45';
+
+    /**
+     * kilomole per cubic metre
+     */
+    case REC20_KILOMOLE_PER_CUBIC_METRE = 'B46';
+
+    /**
+     * kilonewton
+     */
+    case REC20_KILONEWTON = 'B47';
+
+    /**
+     * kilonewton metre
+     */
+    case REC20_KILONEWTON_METRE = 'B48';
+
+    /**
+     * kiloohm
+     */
+    case REC20_KILOOHM = 'B49';
+
+    /**
+     * kiloohm metre
+     */
+    case REC20_KILOOHM_METRE = 'B50';
+
+    /**
+     * kilosecond
+     */
+    case REC20_KILOSECOND = 'B52';
+
+    /**
+     * kilosiemens
+     */
+    case REC20_KILOSIEMENS = 'B53';
+
+    /**
+     * kilosiemens per metre
+     */
+    case REC20_KILOSIEMENS_PER_METRE = 'B54';
+
+    /**
+     * kilovolt per metre
+     */
+    case REC20_KILOVOLT_PER_METRE = 'B55';
+
+    /**
+     * kiloweber per metre
+     */
+    case REC20_KILOWEBER_PER_METRE = 'B56';
+
+    /**
+     * light year
+     */
+    case REC20_LIGHT_YEAR = 'B57';
+
+    /**
+     * litre per mole
+     */
+    case REC20_LITRE_PER_MOLE = 'B58';
+
+    /**
+     * lumen hour
+     */
+    case REC20_LUMEN_HOUR = 'B59';
+
+    /**
+     * lumen per square metre
+     */
+    case REC20_LUMEN_PER_SQUARE_METRE = 'B60';
+
+    /**
+     * lumen per watt
+     */
+    case REC20_LUMEN_PER_WATT = 'B61';
+
+    /**
+     * lumen second
+     */
+    case REC20_LUMEN_SECOND = 'B62';
+
+    /**
+     * lux hour
+     */
+    case REC20_LUX_HOUR = 'B63';
+
+    /**
+     * lux second
+     */
+    case REC20_LUX_SECOND = 'B64';
+
+    /**
+     * megaampere per square metre
+     */
+    case REC20_MEGAAMPERE_PER_SQUARE_METRE = 'B66';
+
+    /**
+     * megabecquerel per kilogram
+     */
+    case REC20_MEGABECQUEREL_PER_KILOGRAM = 'B67';
+
+    /**
+     * gigabit
+     */
+    case REC20_GIGABIT = 'B68';
+
+    /**
+     * megacoulomb per cubic metre
+     */
+    case REC20_MEGACOULOMB_PER_CUBIC_METRE = 'B69';
+
+    /**
+     * cycle
+     */
+    case REC20_CYCLE = 'B7';
+
+    /**
+     * megacoulomb per square metre
+     */
+    case REC20_MEGACOULOMB_PER_SQUARE_METRE = 'B70';
+
+    /**
+     * megaelectronvolt
+     */
+    case REC20_MEGAELECTRONVOLT = 'B71';
+
+    /**
+     * megagram per cubic metre
+     */
+    case REC20_MEGAGRAM_PER_CUBIC_METRE = 'B72';
+
+    /**
+     * meganewton
+     */
+    case REC20_MEGANEWTON = 'B73';
+
+    /**
+     * meganewton metre
+     */
+    case REC20_MEGANEWTON_METRE = 'B74';
+
+    /**
+     * megaohm
+     */
+    case REC20_MEGAOHM = 'B75';
+
+    /**
+     * megaohm metre
+     */
+    case REC20_MEGAOHM_METRE = 'B76';
+
+    /**
+     * megasiemens per metre
+     */
+    case REC20_MEGASIEMENS_PER_METRE = 'B77';
+
+    /**
+     * megavolt
+     */
+    case REC20_MEGAVOLT = 'B78';
+
+    /**
+     * megavolt per metre
+     */
+    case REC20_MEGAVOLT_PER_METRE = 'B79';
+
+    /**
+     * joule per cubic metre
+     */
+    case REC20_JOULE_PER_CUBIC_METRE = 'B8';
+
+    /**
+     * gigabit per second
+     */
+    case REC20_GIGABIT_PER_SECOND = 'B80';
+
+    /**
+     * reciprocal metre squared reciprocal second
+     */
+    case REC20_RECIPROCAL_METRE_SQUARED_RECIPROCAL_SECOND = 'B81';
+
+    /**
+     * inch per linear foot
+     */
+    case REC20_INCH_PER_LINEAR_FOOT = 'B82';
+
+    /**
+     * metre to the fourth power
+     */
+    case REC20_METRE_TO_THE_FOURTH_POWER = 'B83';
+
+    /**
+     * microampere
+     */
+    case REC20_MICROAMPERE = 'B84';
+
+    /**
+     * microbar
+     */
+    case REC20_MICROBAR = 'B85';
+
+    /**
+     * microcoulomb
+     */
+    case REC20_MICROCOULOMB = 'B86';
+
+    /**
+     * microcoulomb per cubic metre
+     */
+    case REC20_MICROCOULOMB_PER_CUBIC_METRE = 'B87';
+
+    /**
+     * microcoulomb per square metre
+     */
+    case REC20_MICROCOULOMB_PER_SQUARE_METRE = 'B88';
+
+    /**
+     * microfarad per metre
+     */
+    case REC20_MICROFARAD_PER_METRE = 'B89';
+
+    /**
+     * microhenry
+     */
+    case REC20_MICROHENRY = 'B90';
+
+    /**
+     * microhenry per metre
+     */
+    case REC20_MICROHENRY_PER_METRE = 'B91';
+
+    /**
+     * micronewton
+     */
+    case REC20_MICRONEWTON = 'B92';
+
+    /**
+     * micronewton metre
+     */
+    case REC20_MICRONEWTON_METRE = 'B93';
+
+    /**
+     * microohm
+     */
+    case REC20_MICROOHM = 'B94';
+
+    /**
+     * microohm metre
+     */
+    case REC20_MICROOHM_METRE = 'B95';
+
+    /**
+     * micropascal
+     */
+    case REC20_MICROPASCAL = 'B96';
+
+    /**
+     * microradian
+     */
+    case REC20_MICRORADIAN = 'B97';
+
+    /**
+     * microsecond
+     */
+    case REC20_MICROSECOND = 'B98';
+
+    /**
+     * microsiemens
+     */
+    case REC20_MICROSIEMENS = 'B99';
+
+    /**
+     * bar [unit of pressure]
+     */
+    case REC20_BAR_UNIT_OF_PRESSURE = 'BAR';
+
+    /**
+     * base box
+     */
+    case REC20_BASE_BOX = 'BB';
+
+    /**
+     * board foot
+     */
+    case REC20_BOARD_FOOT = 'BFT';
+
+    /**
+     * brake horse power
+     */
+    case REC20_BRAKE_HORSE_POWER = 'BHP';
+
+    /**
+     * billion (EUR)
+     */
+    case REC20_BILLION_EUR = 'BIL';
+
+    /**
+     * dry barrel (US)
+     */
+    case REC20_DRY_BARREL_US = 'BLD';
+
+    /**
+     * barrel (US)
+     */
+    case REC20_BARREL_US = 'BLL';
+
+    /**
+     * hundred board foot
+     */
+    case REC20_HUNDRED_BOARD_FOOT = 'BP';
+
+    /**
+     * beats per minute
+     */
+    case REC20_BEATS_PER_MINUTE = 'BPM';
+
+    /**
+     * becquerel
+     */
+    case REC20_BECQUEREL = 'BQL';
+
+    /**
+     * British thermal unit (international table)
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE = 'BTU';
+
+    /**
+     * bushel (US)
+     */
+    case REC20_BUSHEL_US = 'BUA';
+
+    /**
+     * bushel (UK)
+     */
+    case REC20_BUSHEL_UK = 'BUI';
+
+    /**
+     * call
+     */
+    case REC20_CALL = 'C0';
+
+    /**
+     * millifarad
+     */
+    case REC20_MILLIFARAD = 'C10';
+
+    /**
+     * milligal
+     */
+    case REC20_MILLIGAL = 'C11';
+
+    /**
+     * milligram per metre
+     */
+    case REC20_MILLIGRAM_PER_METRE = 'C12';
+
+    /**
+     * milligray
+     */
+    case REC20_MILLIGRAY = 'C13';
+
+    /**
+     * millihenry
+     */
+    case REC20_MILLIHENRY = 'C14';
+
+    /**
+     * millijoule
+     */
+    case REC20_MILLIJOULE = 'C15';
+
+    /**
+     * millimetre per second
+     */
+    case REC20_MILLIMETRE_PER_SECOND = 'C16';
+
+    /**
+     * millimetre squared per second
+     */
+    case REC20_MILLIMETRE_SQUARED_PER_SECOND = 'C17';
+
+    /**
+     * millimole
+     */
+    case REC20_MILLIMOLE = 'C18';
+
+    /**
+     * mole per kilogram
+     */
+    case REC20_MOLE_PER_KILOGRAM = 'C19';
+
+    /**
+     * millinewton
+     */
+    case REC20_MILLINEWTON = 'C20';
+
+    /**
+     * kibibit
+     */
+    case REC20_KIBIBIT = 'C21';
+
+    /**
+     * millinewton per metre
+     */
+    case REC20_MILLINEWTON_PER_METRE = 'C22';
+
+    /**
+     * milliohm metre
+     */
+    case REC20_MILLIOHM_METRE = 'C23';
+
+    /**
+     * millipascal second
+     */
+    case REC20_MILLIPASCAL_SECOND = 'C24';
+
+    /**
+     * milliradian
+     */
+    case REC20_MILLIRADIAN = 'C25';
+
+    /**
+     * millisecond
+     */
+    case REC20_MILLISECOND = 'C26';
+
+    /**
+     * millisiemens
+     */
+    case REC20_MILLISIEMENS = 'C27';
+
+    /**
+     * millisievert
+     */
+    case REC20_MILLISIEVERT = 'C28';
+
+    /**
+     * millitesla
+     */
+    case REC20_MILLITESLA = 'C29';
+
+    /**
+     * microvolt per metre
+     */
+    case REC20_MICROVOLT_PER_METRE = 'C3';
+
+    /**
+     * millivolt per metre
+     */
+    case REC20_MILLIVOLT_PER_METRE = 'C30';
+
+    /**
+     * milliwatt
+     */
+    case REC20_MILLIWATT = 'C31';
+
+    /**
+     * milliwatt per square metre
+     */
+    case REC20_MILLIWATT_PER_SQUARE_METRE = 'C32';
+
+    /**
+     * milliweber
+     */
+    case REC20_MILLIWEBER = 'C33';
+
+    /**
+     * mole
+     */
+    case REC20_MOLE = 'C34';
+
+    /**
+     * mole per cubic decimetre
+     */
+    case REC20_MOLE_PER_CUBIC_DECIMETRE = 'C35';
+
+    /**
+     * mole per cubic metre
+     */
+    case REC20_MOLE_PER_CUBIC_METRE = 'C36';
+
+    /**
+     * kilobit
+     */
+    case REC20_KILOBIT = 'C37';
+
+    /**
+     * mole per litre
+     */
+    case REC20_MOLE_PER_LITRE = 'C38';
+
+    /**
+     * nanoampere
+     */
+    case REC20_NANOAMPERE = 'C39';
+
+    /**
+     * nanocoulomb
+     */
+    case REC20_NANOCOULOMB = 'C40';
+
+    /**
+     * nanofarad
+     */
+    case REC20_NANOFARAD = 'C41';
+
+    /**
+     * nanofarad per metre
+     */
+    case REC20_NANOFARAD_PER_METRE = 'C42';
+
+    /**
+     * nanohenry
+     */
+    case REC20_NANOHENRY = 'C43';
+
+    /**
+     * nanohenry per metre
+     */
+    case REC20_NANOHENRY_PER_METRE = 'C44';
+
+    /**
+     * nanometre
+     */
+    case REC20_NANOMETRE = 'C45';
+
+    /**
+     * nanoohm metre
+     */
+    case REC20_NANOOHM_METRE = 'C46';
+
+    /**
+     * nanosecond
+     */
+    case REC20_NANOSECOND = 'C47';
+
+    /**
+     * nanotesla
+     */
+    case REC20_NANOTESLA = 'C48';
+
+    /**
+     * nanowatt
+     */
+    case REC20_NANOWATT = 'C49';
+
+    /**
+     * neper
+     */
+    case REC20_NEPER = 'C50';
+
+    /**
+     * neper per second
+     */
+    case REC20_NEPER_PER_SECOND = 'C51';
+
+    /**
+     * picometre
+     */
+    case REC20_PICOMETRE = 'C52';
+
+    /**
+     * newton metre second
+     */
+    case REC20_NEWTON_METRE_SECOND = 'C53';
+
+    /**
+     * newton metre squared per kilogram squared
+     */
+    case REC20_NEWTON_METRE_SQUARED_PER_KILOGRAM_SQUARED = 'C54';
+
+    /**
+     * newton per square metre
+     */
+    case REC20_NEWTON_PER_SQUARE_METRE = 'C55';
+
+    /**
+     * newton per square millimetre
+     */
+    case REC20_NEWTON_PER_SQUARE_MILLIMETRE = 'C56';
+
+    /**
+     * newton second
+     */
+    case REC20_NEWTON_SECOND = 'C57';
+
+    /**
+     * newton second per metre
+     */
+    case REC20_NEWTON_SECOND_PER_METRE = 'C58';
+
+    /**
+     * octave
+     */
+    case REC20_OCTAVE = 'C59';
+
+    /**
+     * ohm centimetre
+     */
+    case REC20_OHM_CENTIMETRE = 'C60';
+
+    /**
+     * ohm metre
+     */
+    case REC20_OHM_METRE = 'C61';
+
+    /**
+     * one
+     */
+    case REC20_ONE = 'C62';
+
+    /**
+     * parsec
+     */
+    case REC20_PARSEC = 'C63';
+
+    /**
+     * pascal per kelvin
+     */
+    case REC20_PASCAL_PER_KELVIN = 'C64';
+
+    /**
+     * pascal second
+     */
+    case REC20_PASCAL_SECOND = 'C65';
+
+    /**
+     * pascal second per cubic metre
+     */
+    case REC20_PASCAL_SECOND_PER_CUBIC_METRE = 'C66';
+
+    /**
+     * pascal second per metre
+     */
+    case REC20_PASCAL_SECOND_PER_METRE = 'C67';
+
+    /**
+     * petajoule
+     */
+    case REC20_PETAJOULE = 'C68';
+
+    /**
+     * phon
+     */
+    case REC20_PHON = 'C69';
+
+    /**
+     * centipoise
+     */
+    case REC20_CENTIPOISE = 'C7';
+
+    /**
+     * picoampere
+     */
+    case REC20_PICOAMPERE = 'C70';
+
+    /**
+     * picocoulomb
+     */
+    case REC20_PICOCOULOMB = 'C71';
+
+    /**
+     * picofarad per metre
+     */
+    case REC20_PICOFARAD_PER_METRE = 'C72';
+
+    /**
+     * picohenry
+     */
+    case REC20_PICOHENRY = 'C73';
+
+    /**
+     * kilobit per second
+     */
+    case REC20_KILOBIT_PER_SECOND = 'C74';
+
+    /**
+     * picowatt
+     */
+    case REC20_PICOWATT = 'C75';
+
+    /**
+     * picowatt per square metre
+     */
+    case REC20_PICOWATT_PER_SQUARE_METRE = 'C76';
+
+    /**
+     * pound-force
+     */
+    case REC20_POUNDFORCE = 'C78';
+
+    /**
+     * kilovolt ampere hour
+     */
+    case REC20_KILOVOLT_AMPERE_HOUR = 'C79';
+
+    /**
+     * millicoulomb per kilogram
+     */
+    case REC20_MILLICOULOMB_PER_KILOGRAM = 'C8';
+
+    /**
+     * rad
+     */
+    case REC20_RAD = 'C80';
+
+    /**
+     * radian
+     */
+    case REC20_RADIAN = 'C81';
+
+    /**
+     * radian square metre per mole
+     */
+    case REC20_RADIAN_SQUARE_METRE_PER_MOLE = 'C82';
+
+    /**
+     * radian square metre per kilogram
+     */
+    case REC20_RADIAN_SQUARE_METRE_PER_KILOGRAM = 'C83';
+
+    /**
+     * radian per metre
+     */
+    case REC20_RADIAN_PER_METRE = 'C84';
+
+    /**
+     * reciprocal angstrom
+     */
+    case REC20_RECIPROCAL_ANGSTROM = 'C85';
+
+    /**
+     * reciprocal cubic metre
+     */
+    case REC20_RECIPROCAL_CUBIC_METRE = 'C86';
+
+    /**
+     * reciprocal cubic metre per second
+     */
+    case REC20_RECIPROCAL_CUBIC_METRE_PER_SECOND = 'C87';
+
+    /**
+     * reciprocal electron volt per cubic metre
+     */
+    case REC20_RECIPROCAL_ELECTRON_VOLT_PER_CUBIC_METRE = 'C88';
+
+    /**
+     * reciprocal henry
+     */
+    case REC20_RECIPROCAL_HENRY = 'C89';
+
+    /**
+     * coil group
+     */
+    case REC20_COIL_GROUP = 'C9';
+
+    /**
+     * reciprocal joule per cubic metre
+     */
+    case REC20_RECIPROCAL_JOULE_PER_CUBIC_METRE = 'C90';
+
+    /**
+     * reciprocal kelvin or kelvin to the power minus one
+     */
+    case REC20_RECIPROCAL_KELVIN_OR_KELVIN_TO_THE_POWER_MINUS_ONE = 'C91';
+
+    /**
+     * reciprocal metre
+     */
+    case REC20_RECIPROCAL_METRE = 'C92';
+
+    /**
+     * reciprocal square metre
+     */
+    case REC20_RECIPROCAL_SQUARE_METRE = 'C93';
+
+    /**
+     * reciprocal minute
+     */
+    case REC20_RECIPROCAL_MINUTE = 'C94';
+
+    /**
+     * reciprocal mole
+     */
+    case REC20_RECIPROCAL_MOLE = 'C95';
+
+    /**
+     * reciprocal pascal or pascal to the power minus one
+     */
+    case REC20_RECIPROCAL_PASCAL_OR_PASCAL_TO_THE_POWER_MINUS_ONE = 'C96';
+
+    /**
+     * reciprocal second
+     */
+    case REC20_RECIPROCAL_SECOND = 'C97';
+
+    /**
+     * reciprocal second per metre squared
+     */
+    case REC20_RECIPROCAL_SECOND_PER_METRE_SQUARED = 'C99';
+
+    /**
+     * carrying capacity in metric ton
+     */
+    case REC20_CARRYING_CAPACITY_IN_METRIC_TON = 'CCT';
+
+    /**
+     * candela
+     */
+    case REC20_CANDELA = 'CDL';
+
+    /**
+     * degree Celsius
+     */
+    case REC20_DEGREE_CELSIUS = 'CEL';
+
+    /**
+     * hundred
+     */
+    case REC20_HUNDRED = 'CEN';
+
+    /**
+     * card
+     */
+    case REC20_CARD = 'CG';
+
+    /**
+     * centigram
+     */
+    case REC20_CENTIGRAM = 'CGM';
+
+    /**
+     * coulomb per kilogram
+     */
+    case REC20_COULOMB_PER_KILOGRAM = 'CKG';
+
+    /**
+     * hundred leave
+     */
+    case REC20_HUNDRED_LEAVE = 'CLF';
+
+    /**
+     * centilitre
+     */
+    case REC20_CENTILITRE = 'CLT';
+
+    /**
+     * square centimetre
+     */
+    case REC20_SQUARE_CENTIMETRE = 'CMK';
+
+    /**
+     * cubic centimetre
+     */
+    case REC20_CUBIC_CENTIMETRE = 'CMQ';
+
+    /**
+     * centimetre
+     */
+    case REC20_CENTIMETRE = 'CMT';
+
+    /**
+     * hundred pack
+     */
+    case REC20_HUNDRED_PACK = 'CNP';
+
+    /**
+     * cental (UK)
+     */
+    case REC20_CENTAL_UK = 'CNT';
+
+    /**
+     * coulomb
+     */
+    case REC20_COULOMB = 'COU';
+
+    /**
+     * content gram
+     */
+    case REC20_CONTENT_GRAM = 'CTG';
+
+    /**
+     * metric carat
+     */
+    case REC20_METRIC_CARAT = 'CTM';
+
+    /**
+     * content ton (metric)
+     */
+    case REC20_CONTENT_TON_METRIC = 'CTN';
+
+    /**
+     * curie
+     */
+    case REC20_CURIE = 'CUR';
+
+    /**
+     * hundred pound (cwt) / hundred weight (US)
+     */
+    case REC20_HUNDRED_POUND_CWT___HUNDRED_WEIGHT_US = 'CWA';
+
+    /**
+     * hundred weight (UK)
+     */
+    case REC20_HUNDRED_WEIGHT_UK = 'CWI';
+
+    /**
+     * kilowatt hour per hour
+     */
+    case REC20_KILOWATT_HOUR_PER_HOUR = 'D03';
+
+    /**
+     * lot  [unit of weight]
+     */
+    case REC20_LOT__UNIT_OF_WEIGHT = 'D04';
+
+    /**
+     * reciprocal second per steradian
+     */
+    case REC20_RECIPROCAL_SECOND_PER_STERADIAN = 'D1';
+
+    /**
+     * siemens per metre
+     */
+    case REC20_SIEMENS_PER_METRE = 'D10';
+
+    /**
+     * mebibit
+     */
+    case REC20_MEBIBIT = 'D11';
+
+    /**
+     * siemens square metre per mole
+     */
+    case REC20_SIEMENS_SQUARE_METRE_PER_MOLE = 'D12';
+
+    /**
+     * sievert
+     */
+    case REC20_SIEVERT = 'D13';
+
+    /**
+     * sone
+     */
+    case REC20_SONE = 'D15';
+
+    /**
+     * square centimetre per erg
+     */
+    case REC20_SQUARE_CENTIMETRE_PER_ERG = 'D16';
+
+    /**
+     * square centimetre per steradian erg
+     */
+    case REC20_SQUARE_CENTIMETRE_PER_STERADIAN_ERG = 'D17';
+
+    /**
+     * metre kelvin
+     */
+    case REC20_METRE_KELVIN = 'D18';
+
+    /**
+     * square metre kelvin per watt
+     */
+    case REC20_SQUARE_METRE_KELVIN_PER_WATT = 'D19';
+
+    /**
+     * reciprocal second per steradian metre squared
+     */
+    case REC20_RECIPROCAL_SECOND_PER_STERADIAN_METRE_SQUARED = 'D2';
+
+    /**
+     * square metre per joule
+     */
+    case REC20_SQUARE_METRE_PER_JOULE = 'D20';
+
+    /**
+     * square metre per kilogram
+     */
+    case REC20_SQUARE_METRE_PER_KILOGRAM = 'D21';
+
+    /**
+     * square metre per mole
+     */
+    case REC20_SQUARE_METRE_PER_MOLE = 'D22';
+
+    /**
+     * pen gram (protein)
+     */
+    case REC20_PEN_GRAM_PROTEIN = 'D23';
+
+    /**
+     * square metre per steradian
+     */
+    case REC20_SQUARE_METRE_PER_STERADIAN = 'D24';
+
+    /**
+     * square metre per steradian joule
+     */
+    case REC20_SQUARE_METRE_PER_STERADIAN_JOULE = 'D25';
+
+    /**
+     * square metre per volt second
+     */
+    case REC20_SQUARE_METRE_PER_VOLT_SECOND = 'D26';
+
+    /**
+     * steradian
+     */
+    case REC20_STERADIAN = 'D27';
+
+    /**
+     * terahertz
+     */
+    case REC20_TERAHERTZ = 'D29';
+
+    /**
+     * terajoule
+     */
+    case REC20_TERAJOULE = 'D30';
+
+    /**
+     * terawatt
+     */
+    case REC20_TERAWATT = 'D31';
+
+    /**
+     * terawatt hour
+     */
+    case REC20_TERAWATT_HOUR = 'D32';
+
+    /**
+     * tesla
+     */
+    case REC20_TESLA = 'D33';
+
+    /**
+     * tex
+     */
+    case REC20_TEX = 'D34';
+
+    /**
+     * megabit
+     */
+    case REC20_MEGABIT = 'D36';
+
+    /**
+     * tonne per cubic metre
+     */
+    case REC20_TONNE_PER_CUBIC_METRE = 'D41';
+
+    /**
+     * tropical year
+     */
+    case REC20_TROPICAL_YEAR = 'D42';
+
+    /**
+     * unified atomic mass unit
+     */
+    case REC20_UNIFIED_ATOMIC_MASS_UNIT = 'D43';
+
+    /**
+     * var
+     */
+    case REC20_VAR = 'D44';
+
+    /**
+     * volt squared per kelvin squared
+     */
+    case REC20_VOLT_SQUARED_PER_KELVIN_SQUARED = 'D45';
+
+    /**
+     * volt - ampere
+     */
+    case REC20_VOLT__AMPERE = 'D46';
+
+    /**
+     * volt per centimetre
+     */
+    case REC20_VOLT_PER_CENTIMETRE = 'D47';
+
+    /**
+     * volt per kelvin
+     */
+    case REC20_VOLT_PER_KELVIN = 'D48';
+
+    /**
+     * millivolt per kelvin
+     */
+    case REC20_MILLIVOLT_PER_KELVIN = 'D49';
+
+    /**
+     * kilogram per square centimetre
+     */
+    case REC20_KILOGRAM_PER_SQUARE_CENTIMETRE = 'D5';
+
+    /**
+     * volt per metre
+     */
+    case REC20_VOLT_PER_METRE = 'D50';
+
+    /**
+     * volt per millimetre
+     */
+    case REC20_VOLT_PER_MILLIMETRE = 'D51';
+
+    /**
+     * watt per kelvin
+     */
+    case REC20_WATT_PER_KELVIN = 'D52';
+
+    /**
+     * watt per metre kelvin
+     */
+    case REC20_WATT_PER_METRE_KELVIN = 'D53';
+
+    /**
+     * watt per square metre
+     */
+    case REC20_WATT_PER_SQUARE_METRE = 'D54';
+
+    /**
+     * watt per square metre kelvin
+     */
+    case REC20_WATT_PER_SQUARE_METRE_KELVIN = 'D55';
+
+    /**
+     * watt per square metre kelvin to the fourth power
+     */
+    case REC20_WATT_PER_SQUARE_METRE_KELVIN_TO_THE_FOURTH_POWER = 'D56';
+
+    /**
+     * watt per steradian
+     */
+    case REC20_WATT_PER_STERADIAN = 'D57';
+
+    /**
+     * watt per steradian square metre
+     */
+    case REC20_WATT_PER_STERADIAN_SQUARE_METRE = 'D58';
+
+    /**
+     * weber per metre
+     */
+    case REC20_WEBER_PER_METRE = 'D59';
+
+    /**
+     * roentgen per second
+     */
+    case REC20_ROENTGEN_PER_SECOND = 'D6';
+
+    /**
+     * weber per millimetre
+     */
+    case REC20_WEBER_PER_MILLIMETRE = 'D60';
+
+    /**
+     * minute [unit of angle]
+     */
+    case REC20_MINUTE_UNIT_OF_ANGLE = 'D61';
+
+    /**
+     * second [unit of angle]
+     */
+    case REC20_SECOND_UNIT_OF_ANGLE = 'D62';
+
+    /**
+     * book
+     */
+    case REC20_BOOK = 'D63';
+
+    /**
+     * round
+     */
+    case REC20_ROUND = 'D65';
+
+    /**
+     * number of words
+     */
+    case REC20_NUMBER_OF_WORDS = 'D68';
+
+    /**
+     * inch to the fourth power
+     */
+    case REC20_INCH_TO_THE_FOURTH_POWER = 'D69';
+
+    /**
+     * joule square metre
+     */
+    case REC20_JOULE_SQUARE_METRE = 'D73';
+
+    /**
+     * kilogram per mole
+     */
+    case REC20_KILOGRAM_PER_MOLE = 'D74';
+
+    /**
+     * megacoulomb
+     */
+    case REC20_MEGACOULOMB = 'D77';
+
+    /**
+     * megajoule per second
+     */
+    case REC20_MEGAJOULE_PER_SECOND = 'D78';
+
+    /**
+     * microwatt
+     */
+    case REC20_MICROWATT = 'D80';
+
+    /**
+     * microtesla
+     */
+    case REC20_MICROTESLA = 'D81';
+
+    /**
+     * microvolt
+     */
+    case REC20_MICROVOLT = 'D82';
+
+    /**
+     * millinewton metre
+     */
+    case REC20_MILLINEWTON_METRE = 'D83';
+
+    /**
+     * microwatt per square metre
+     */
+    case REC20_MICROWATT_PER_SQUARE_METRE = 'D85';
+
+    /**
+     * millicoulomb
+     */
+    case REC20_MILLICOULOMB = 'D86';
+
+    /**
+     * millimole per kilogram
+     */
+    case REC20_MILLIMOLE_PER_KILOGRAM = 'D87';
+
+    /**
+     * millicoulomb per cubic metre
+     */
+    case REC20_MILLICOULOMB_PER_CUBIC_METRE = 'D88';
+
+    /**
+     * millicoulomb per square metre
+     */
+    case REC20_MILLICOULOMB_PER_SQUARE_METRE = 'D89';
+
+    /**
+     * rem
+     */
+    case REC20_REM = 'D91';
+
+    /**
+     * second per cubic metre
+     */
+    case REC20_SECOND_PER_CUBIC_METRE = 'D93';
+
+    /**
+     * second per cubic metre radian
+     */
+    case REC20_SECOND_PER_CUBIC_METRE_RADIAN = 'D94';
+
+    /**
+     * joule per gram
+     */
+    case REC20_JOULE_PER_GRAM = 'D95';
+
+    /**
+     * decare
+     */
+    case REC20_DECARE = 'DAA';
+
+    /**
+     * ten day
+     */
+    case REC20_TEN_DAY = 'DAD';
+
+    /**
+     * day
+     */
+    case REC20_DAY = 'DAY';
+
+    /**
+     * dry pound
+     */
+    case REC20_DRY_POUND = 'DB';
+
+    /**
+     * degree [unit of angle]
+     */
+    case REC20_DEGREE_UNIT_OF_ANGLE = 'DD';
+
+    /**
+     * decade
+     */
+    case REC20_DECADE = 'DEC';
+
+    /**
+     * decigram
+     */
+    case REC20_DECIGRAM = 'DG';
+
+    /**
+     * decagram
+     */
+    case REC20_DECAGRAM = 'DJ';
+
+    /**
+     * decilitre
+     */
+    case REC20_DECILITRE = 'DLT';
+
+    /**
+     * cubic decametre
+     */
+    case REC20_CUBIC_DECAMETRE = 'DMA';
+
+    /**
+     * square decimetre
+     */
+    case REC20_SQUARE_DECIMETRE = 'DMK';
+
+    /**
+     * standard kilolitre
+     */
+    case REC20_STANDARD_KILOLITRE = 'DMO';
+
+    /**
+     * cubic decimetre
+     */
+    case REC20_CUBIC_DECIMETRE = 'DMQ';
+
+    /**
+     * decimetre
+     */
+    case REC20_DECIMETRE = 'DMT';
+
+    /**
+     * decinewton metre
+     */
+    case REC20_DECINEWTON_METRE = 'DN';
+
+    /**
+     * dozen piece
+     */
+    case REC20_DOZEN_PIECE = 'DPC';
+
+    /**
+     * dozen pair
+     */
+    case REC20_DOZEN_PAIR = 'DPR';
+
+    /**
+     * displacement tonnage
+     */
+    case REC20_DISPLACEMENT_TONNAGE = 'DPT';
+
+    /**
+     * dram (US)
+     */
+    case REC20_DRAM_US = 'DRA';
+
+    /**
+     * dram (UK)
+     */
+    case REC20_DRAM_UK = 'DRI';
+
+    /**
+     * dozen roll
+     */
+    case REC20_DOZEN_ROLL = 'DRL';
+
+    /**
+     * dry ton
+     */
+    case REC20_DRY_TON = 'DT';
+
+    /**
+     * decitonne
+     */
+    case REC20_DECITONNE = 'DTN';
+
+    /**
+     * pennyweight
+     */
+    case REC20_PENNYWEIGHT = 'DWT';
+
+    /**
+     * dozen
+     */
+    case REC20_DOZEN = 'DZN';
+
+    /**
+     * dozen pack
+     */
+    case REC20_DOZEN_PACK = 'DZP';
+
+    /**
+     * newton per square centimetre
+     */
+    case REC20_NEWTON_PER_SQUARE_CENTIMETRE = 'E01';
+
+    /**
+     * megawatt hour per hour
+     */
+    case REC20_MEGAWATT_HOUR_PER_HOUR = 'E07';
+
+    /**
+     * megawatt per hertz
+     */
+    case REC20_MEGAWATT_PER_HERTZ = 'E08';
+
+    /**
+     * milliampere hour
+     */
+    case REC20_MILLIAMPERE_HOUR = 'E09';
+
+    /**
+     * degree day
+     */
+    case REC20_DEGREE_DAY = 'E10';
+
+    /**
+     * mille
+     */
+    case REC20_MILLE = 'E12';
+
+    /**
+     * kilocalorie (international table)
+     */
+    case REC20_KILOCALORIE_INTERNATIONAL_TABLE = 'E14';
+
+    /**
+     * kilocalorie (thermochemical) per hour
+     */
+    case REC20_KILOCALORIE_THERMOCHEMICAL_PER_HOUR = 'E15';
+
+    /**
+     * million Btu(IT) per hour
+     */
+    case REC20_MILLION_BTUIT_PER_HOUR = 'E16';
+
+    /**
+     * cubic foot per second
+     */
+    case REC20_CUBIC_FOOT_PER_SECOND = 'E17';
+
+    /**
+     * tonne per hour
+     */
+    case REC20_TONNE_PER_HOUR = 'E18';
+
+    /**
+     * ping
+     */
+    case REC20_PING = 'E19';
+
+    /**
+     * megabit per second
+     */
+    case REC20_MEGABIT_PER_SECOND = 'E20';
+
+    /**
+     * shares
+     */
+    case REC20_SHARES = 'E21';
+
+    /**
+     * TEU
+     */
+    case REC20_TEU = 'E22';
+
+    /**
+     * tyre
+     */
+    case REC20_TYRE = 'E23';
+
+    /**
+     * active unit
+     */
+    case REC20_ACTIVE_UNIT = 'E25';
+
+    /**
+     * dose
+     */
+    case REC20_DOSE = 'E27';
+
+    /**
+     * air dry ton
+     */
+    case REC20_AIR_DRY_TON = 'E28';
+
+    /**
+     * strand
+     */
+    case REC20_STRAND = 'E30';
+
+    /**
+     * square metre per litre
+     */
+    case REC20_SQUARE_METRE_PER_LITRE = 'E31';
+
+    /**
+     * litre per hour
+     */
+    case REC20_LITRE_PER_HOUR = 'E32';
+
+    /**
+     * foot per thousand
+     */
+    case REC20_FOOT_PER_THOUSAND = 'E33';
+
+    /**
+     * gigabyte
+     */
+    case REC20_GIGABYTE = 'E34';
+
+    /**
+     * terabyte
+     */
+    case REC20_TERABYTE = 'E35';
+
+    /**
+     * petabyte
+     */
+    case REC20_PETABYTE = 'E36';
+
+    /**
+     * pixel
+     */
+    case REC20_PIXEL = 'E37';
+
+    /**
+     * megapixel
+     */
+    case REC20_MEGAPIXEL = 'E38';
+
+    /**
+     * dots per inch
+     */
+    case REC20_DOTS_PER_INCH = 'E39';
+
+    /**
+     * gross kilogram
+     */
+    case REC20_GROSS_KILOGRAM = 'E4';
+
+    /**
+     * part per hundred thousand
+     */
+    case REC20_PART_PER_HUNDRED_THOUSAND = 'E40';
+
+    /**
+     * kilogram-force per square millimetre
+     */
+    case REC20_KILOGRAMFORCE_PER_SQUARE_MILLIMETRE = 'E41';
+
+    /**
+     * kilogram-force per square centimetre
+     */
+    case REC20_KILOGRAMFORCE_PER_SQUARE_CENTIMETRE = 'E42';
+
+    /**
+     * joule per square centimetre
+     */
+    case REC20_JOULE_PER_SQUARE_CENTIMETRE = 'E43';
+
+    /**
+     * kilogram-force metre per square centimetre
+     */
+    case REC20_KILOGRAMFORCE_METRE_PER_SQUARE_CENTIMETRE = 'E44';
+
+    /**
+     * milliohm
+     */
+    case REC20_MILLIOHM = 'E45';
+
+    /**
+     * kilowatt hour per cubic metre
+     */
+    case REC20_KILOWATT_HOUR_PER_CUBIC_METRE = 'E46';
+
+    /**
+     * kilowatt hour per kelvin
+     */
+    case REC20_KILOWATT_HOUR_PER_KELVIN = 'E47';
+
+    /**
+     * service unit
+     */
+    case REC20_SERVICE_UNIT = 'E48';
+
+    /**
+     * working day
+     */
+    case REC20_WORKING_DAY = 'E49';
+
+    /**
+     * accounting unit
+     */
+    case REC20_ACCOUNTING_UNIT = 'E50';
+
+    /**
+     * job
+     */
+    case REC20_JOB = 'E51';
+
+    /**
+     * run foot
+     */
+    case REC20_RUN_FOOT = 'E52';
+
+    /**
+     * test
+     */
+    case REC20_TEST = 'E53';
+
+    /**
+     * trip
+     */
+    case REC20_TRIP = 'E54';
+
+    /**
+     * use
+     */
+    case REC20_USE = 'E55';
+
+    /**
+     * well
+     */
+    case REC20_WELL = 'E56';
+
+    /**
+     * zone
+     */
+    case REC20_ZONE = 'E57';
+
+    /**
+     * exabit per second
+     */
+    case REC20_EXABIT_PER_SECOND = 'E58';
+
+    /**
+     * exbibyte
+     */
+    case REC20_EXBIBYTE = 'E59';
+
+    /**
+     * pebibyte
+     */
+    case REC20_PEBIBYTE = 'E60';
+
+    /**
+     * tebibyte
+     */
+    case REC20_TEBIBYTE = 'E61';
+
+    /**
+     * gibibyte
+     */
+    case REC20_GIBIBYTE = 'E62';
+
+    /**
+     * mebibyte
+     */
+    case REC20_MEBIBYTE = 'E63';
+
+    /**
+     * kibibyte
+     */
+    case REC20_KIBIBYTE = 'E64';
+
+    /**
+     * exbibit per metre
+     */
+    case REC20_EXBIBIT_PER_METRE = 'E65';
+
+    /**
+     * exbibit per square metre
+     */
+    case REC20_EXBIBIT_PER_SQUARE_METRE = 'E66';
+
+    /**
+     * exbibit per cubic metre
+     */
+    case REC20_EXBIBIT_PER_CUBIC_METRE = 'E67';
+
+    /**
+     * gigabyte per second
+     */
+    case REC20_GIGABYTE_PER_SECOND = 'E68';
+
+    /**
+     * gibibit per metre
+     */
+    case REC20_GIBIBIT_PER_METRE = 'E69';
+
+    /**
+     * gibibit per square metre
+     */
+    case REC20_GIBIBIT_PER_SQUARE_METRE = 'E70';
+
+    /**
+     * gibibit per cubic metre
+     */
+    case REC20_GIBIBIT_PER_CUBIC_METRE = 'E71';
+
+    /**
+     * kibibit per metre
+     */
+    case REC20_KIBIBIT_PER_METRE = 'E72';
+
+    /**
+     * kibibit per square metre
+     */
+    case REC20_KIBIBIT_PER_SQUARE_METRE = 'E73';
+
+    /**
+     * kibibit per cubic metre
+     */
+    case REC20_KIBIBIT_PER_CUBIC_METRE = 'E74';
+
+    /**
+     * mebibit per metre
+     */
+    case REC20_MEBIBIT_PER_METRE = 'E75';
+
+    /**
+     * mebibit per square metre
+     */
+    case REC20_MEBIBIT_PER_SQUARE_METRE = 'E76';
+
+    /**
+     * mebibit per cubic metre
+     */
+    case REC20_MEBIBIT_PER_CUBIC_METRE = 'E77';
+
+    /**
+     * petabit
+     */
+    case REC20_PETABIT = 'E78';
+
+    /**
+     * petabit per second
+     */
+    case REC20_PETABIT_PER_SECOND = 'E79';
+
+    /**
+     * pebibit per metre
+     */
+    case REC20_PEBIBIT_PER_METRE = 'E80';
+
+    /**
+     * pebibit per square metre
+     */
+    case REC20_PEBIBIT_PER_SQUARE_METRE = 'E81';
+
+    /**
+     * pebibit per cubic metre
+     */
+    case REC20_PEBIBIT_PER_CUBIC_METRE = 'E82';
+
+    /**
+     * terabit
+     */
+    case REC20_TERABIT = 'E83';
+
+    /**
+     * terabit per second
+     */
+    case REC20_TERABIT_PER_SECOND = 'E84';
+
+    /**
+     * tebibit per metre
+     */
+    case REC20_TEBIBIT_PER_METRE = 'E85';
+
+    /**
+     * tebibit per cubic metre
+     */
+    case REC20_TEBIBIT_PER_CUBIC_METRE = 'E86';
+
+    /**
+     * tebibit per square metre
+     */
+    case REC20_TEBIBIT_PER_SQUARE_METRE = 'E87';
+
+    /**
+     * bit per metre
+     */
+    case REC20_BIT_PER_METRE = 'E88';
+
+    /**
+     * bit per square metre
+     */
+    case REC20_BIT_PER_SQUARE_METRE = 'E89';
+
+    /**
+     * reciprocal centimetre
+     */
+    case REC20_RECIPROCAL_CENTIMETRE = 'E90';
+
+    /**
+     * reciprocal day
+     */
+    case REC20_RECIPROCAL_DAY = 'E91';
+
+    /**
+     * cubic decimetre per hour
+     */
+    case REC20_CUBIC_DECIMETRE_PER_HOUR = 'E92';
+
+    /**
+     * kilogram per hour
+     */
+    case REC20_KILOGRAM_PER_HOUR = 'E93';
+
+    /**
+     * kilomole per second
+     */
+    case REC20_KILOMOLE_PER_SECOND = 'E94';
+
+    /**
+     * mole per second
+     */
+    case REC20_MOLE_PER_SECOND = 'E95';
+
+    /**
+     * degree per second
+     */
+    case REC20_DEGREE_PER_SECOND = 'E96';
+
+    /**
+     * millimetre per degree Celcius metre
+     */
+    case REC20_MILLIMETRE_PER_DEGREE_CELCIUS_METRE = 'E97';
+
+    /**
+     * degree Celsius per kelvin
+     */
+    case REC20_DEGREE_CELSIUS_PER_KELVIN = 'E98';
+
+    /**
+     * hectopascal per bar
+     */
+    case REC20_HECTOPASCAL_PER_BAR = 'E99';
+
+    /**
+     * each
+     */
+    case REC20_EACH = 'EA';
+
+    /**
+     * electronic mail box
+     */
+    case REC20_ELECTRONIC_MAIL_BOX = 'EB';
+
+    /**
+     * equivalent gallon
+     */
+    case REC20_EQUIVALENT_GALLON = 'EQ';
+
+    /**
+     * bit per cubic metre
+     */
+    case REC20_BIT_PER_CUBIC_METRE = 'F01';
+
+    /**
+     * kelvin per kelvin
+     */
+    case REC20_KELVIN_PER_KELVIN = 'F02';
+
+    /**
+     * kilopascal per bar
+     */
+    case REC20_KILOPASCAL_PER_BAR = 'F03';
+
+    /**
+     * millibar per bar
+     */
+    case REC20_MILLIBAR_PER_BAR = 'F04';
+
+    /**
+     * megapascal per bar
+     */
+    case REC20_MEGAPASCAL_PER_BAR = 'F05';
+
+    /**
+     * poise per bar
+     */
+    case REC20_POISE_PER_BAR = 'F06';
+
+    /**
+     * pascal per bar
+     */
+    case REC20_PASCAL_PER_BAR = 'F07';
+
+    /**
+     * milliampere per inch
+     */
+    case REC20_MILLIAMPERE_PER_INCH = 'F08';
+
+    /**
+     * kelvin per hour
+     */
+    case REC20_KELVIN_PER_HOUR = 'F10';
+
+    /**
+     * kelvin per minute
+     */
+    case REC20_KELVIN_PER_MINUTE = 'F11';
+
+    /**
+     * kelvin per second
+     */
+    case REC20_KELVIN_PER_SECOND = 'F12';
+
+    /**
+     * slug
+     */
+    case REC20_SLUG = 'F13';
+
+    /**
+     * gram per kelvin
+     */
+    case REC20_GRAM_PER_KELVIN = 'F14';
+
+    /**
+     * kilogram per kelvin
+     */
+    case REC20_KILOGRAM_PER_KELVIN = 'F15';
+
+    /**
+     * milligram per kelvin
+     */
+    case REC20_MILLIGRAM_PER_KELVIN = 'F16';
+
+    /**
+     * pound-force per foot
+     */
+    case REC20_POUNDFORCE_PER_FOOT = 'F17';
+
+    /**
+     * kilogram square centimetre
+     */
+    case REC20_KILOGRAM_SQUARE_CENTIMETRE = 'F18';
+
+    /**
+     * kilogram square millimetre
+     */
+    case REC20_KILOGRAM_SQUARE_MILLIMETRE = 'F19';
+
+    /**
+     * pound inch squared
+     */
+    case REC20_POUND_INCH_SQUARED = 'F20';
+
+    /**
+     * pound-force inch
+     */
+    case REC20_POUNDFORCE_INCH = 'F21';
+
+    /**
+     * pound-force foot per ampere
+     */
+    case REC20_POUNDFORCE_FOOT_PER_AMPERE = 'F22';
+
+    /**
+     * gram per cubic decimetre
+     */
+    case REC20_GRAM_PER_CUBIC_DECIMETRE = 'F23';
+
+    /**
+     * kilogram per kilomol
+     */
+    case REC20_KILOGRAM_PER_KILOMOL = 'F24';
+
+    /**
+     * gram per hertz
+     */
+    case REC20_GRAM_PER_HERTZ = 'F25';
+
+    /**
+     * gram per day
+     */
+    case REC20_GRAM_PER_DAY = 'F26';
+
+    /**
+     * gram per hour
+     */
+    case REC20_GRAM_PER_HOUR = 'F27';
+
+    /**
+     * gram per minute
+     */
+    case REC20_GRAM_PER_MINUTE = 'F28';
+
+    /**
+     * gram per second
+     */
+    case REC20_GRAM_PER_SECOND = 'F29';
+
+    /**
+     * kilogram per day
+     */
+    case REC20_KILOGRAM_PER_DAY = 'F30';
+
+    /**
+     * kilogram per minute
+     */
+    case REC20_KILOGRAM_PER_MINUTE = 'F31';
+
+    /**
+     * milligram per day
+     */
+    case REC20_MILLIGRAM_PER_DAY = 'F32';
+
+    /**
+     * milligram per minute
+     */
+    case REC20_MILLIGRAM_PER_MINUTE = 'F33';
+
+    /**
+     * milligram per second
+     */
+    case REC20_MILLIGRAM_PER_SECOND = 'F34';
+
+    /**
+     * gram per day kelvin
+     */
+    case REC20_GRAM_PER_DAY_KELVIN = 'F35';
+
+    /**
+     * gram per hour kelvin
+     */
+    case REC20_GRAM_PER_HOUR_KELVIN = 'F36';
+
+    /**
+     * gram per minute kelvin
+     */
+    case REC20_GRAM_PER_MINUTE_KELVIN = 'F37';
+
+    /**
+     * gram per second kelvin
+     */
+    case REC20_GRAM_PER_SECOND_KELVIN = 'F38';
+
+    /**
+     * kilogram per day kelvin
+     */
+    case REC20_KILOGRAM_PER_DAY_KELVIN = 'F39';
+
+    /**
+     * kilogram per hour kelvin
+     */
+    case REC20_KILOGRAM_PER_HOUR_KELVIN = 'F40';
+
+    /**
+     * kilogram per minute kelvin
+     */
+    case REC20_KILOGRAM_PER_MINUTE_KELVIN = 'F41';
+
+    /**
+     * kilogram per second kelvin
+     */
+    case REC20_KILOGRAM_PER_SECOND_KELVIN = 'F42';
+
+    /**
+     * milligram per day kelvin
+     */
+    case REC20_MILLIGRAM_PER_DAY_KELVIN = 'F43';
+
+    /**
+     * milligram per hour kelvin
+     */
+    case REC20_MILLIGRAM_PER_HOUR_KELVIN = 'F44';
+
+    /**
+     * milligram per minute kelvin
+     */
+    case REC20_MILLIGRAM_PER_MINUTE_KELVIN = 'F45';
+
+    /**
+     * milligram per second kelvin
+     */
+    case REC20_MILLIGRAM_PER_SECOND_KELVIN = 'F46';
+
+    /**
+     * newton per millimetre
+     */
+    case REC20_NEWTON_PER_MILLIMETRE = 'F47';
+
+    /**
+     * pound-force per inch
+     */
+    case REC20_POUNDFORCE_PER_INCH = 'F48';
+
+    /**
+     * rod [unit of distance]
+     */
+    case REC20_ROD_UNIT_OF_DISTANCE = 'F49';
+
+    /**
+     * micrometre per kelvin
+     */
+    case REC20_MICROMETRE_PER_KELVIN = 'F50';
+
+    /**
+     * centimetre per kelvin
+     */
+    case REC20_CENTIMETRE_PER_KELVIN = 'F51';
+
+    /**
+     * metre per kelvin
+     */
+    case REC20_METRE_PER_KELVIN = 'F52';
+
+    /**
+     * millimetre per kelvin
+     */
+    case REC20_MILLIMETRE_PER_KELVIN = 'F53';
+
+    /**
+     * milliohm per metre
+     */
+    case REC20_MILLIOHM_PER_METRE = 'F54';
+
+    /**
+     * ohm per mile (statute mile)
+     */
+    case REC20_OHM_PER_MILE_STATUTE_MILE = 'F55';
+
+    /**
+     * ohm per kilometre
+     */
+    case REC20_OHM_PER_KILOMETRE = 'F56';
+
+    /**
+     * milliampere per pound-force per square inch
+     */
+    case REC20_MILLIAMPERE_PER_POUNDFORCE_PER_SQUARE_INCH = 'F57';
+
+    /**
+     * reciprocal bar
+     */
+    case REC20_RECIPROCAL_BAR = 'F58';
+
+    /**
+     * milliampere per bar
+     */
+    case REC20_MILLIAMPERE_PER_BAR = 'F59';
+
+    /**
+     * degree Celsius per bar
+     */
+    case REC20_DEGREE_CELSIUS_PER_BAR = 'F60';
+
+    /**
+     * kelvin per bar
+     */
+    case REC20_KELVIN_PER_BAR = 'F61';
+
+    /**
+     * gram per day bar
+     */
+    case REC20_GRAM_PER_DAY_BAR = 'F62';
+
+    /**
+     * gram per hour bar
+     */
+    case REC20_GRAM_PER_HOUR_BAR = 'F63';
+
+    /**
+     * gram per minute bar
+     */
+    case REC20_GRAM_PER_MINUTE_BAR = 'F64';
+
+    /**
+     * gram per second bar
+     */
+    case REC20_GRAM_PER_SECOND_BAR = 'F65';
+
+    /**
+     * kilogram per day bar
+     */
+    case REC20_KILOGRAM_PER_DAY_BAR = 'F66';
+
+    /**
+     * kilogram per hour bar
+     */
+    case REC20_KILOGRAM_PER_HOUR_BAR = 'F67';
+
+    /**
+     * kilogram per minute bar
+     */
+    case REC20_KILOGRAM_PER_MINUTE_BAR = 'F68';
+
+    /**
+     * kilogram per second bar
+     */
+    case REC20_KILOGRAM_PER_SECOND_BAR = 'F69';
+
+    /**
+     * milligram per day bar
+     */
+    case REC20_MILLIGRAM_PER_DAY_BAR = 'F70';
+
+    /**
+     * milligram per hour bar
+     */
+    case REC20_MILLIGRAM_PER_HOUR_BAR = 'F71';
+
+    /**
+     * milligram per minute bar
+     */
+    case REC20_MILLIGRAM_PER_MINUTE_BAR = 'F72';
+
+    /**
+     * milligram per second bar
+     */
+    case REC20_MILLIGRAM_PER_SECOND_BAR = 'F73';
+
+    /**
+     * gram per bar
+     */
+    case REC20_GRAM_PER_BAR = 'F74';
+
+    /**
+     * milligram per bar
+     */
+    case REC20_MILLIGRAM_PER_BAR = 'F75';
+
+    /**
+     * milliampere per millimetre
+     */
+    case REC20_MILLIAMPERE_PER_MILLIMETRE = 'F76';
+
+    /**
+     * pascal second per kelvin
+     */
+    case REC20_PASCAL_SECOND_PER_KELVIN = 'F77';
+
+    /**
+     * inch of water
+     */
+    case REC20_INCH_OF_WATER = 'F78';
+
+    /**
+     * inch of mercury
+     */
+    case REC20_INCH_OF_MERCURY = 'F79';
+
+    /**
+     * water horse power
+     */
+    case REC20_WATER_HORSE_POWER = 'F80';
+
+    /**
+     * bar per kelvin
+     */
+    case REC20_BAR_PER_KELVIN = 'F81';
+
+    /**
+     * hectopascal per kelvin
+     */
+    case REC20_HECTOPASCAL_PER_KELVIN = 'F82';
+
+    /**
+     * kilopascal per kelvin
+     */
+    case REC20_KILOPASCAL_PER_KELVIN = 'F83';
+
+    /**
+     * millibar per kelvin
+     */
+    case REC20_MILLIBAR_PER_KELVIN = 'F84';
+
+    /**
+     * megapascal per kelvin
+     */
+    case REC20_MEGAPASCAL_PER_KELVIN = 'F85';
+
+    /**
+     * poise per kelvin
+     */
+    case REC20_POISE_PER_KELVIN = 'F86';
+
+    /**
+     * volt per litre minute
+     */
+    case REC20_VOLT_PER_LITRE_MINUTE = 'F87';
+
+    /**
+     * newton centimetre
+     */
+    case REC20_NEWTON_CENTIMETRE = 'F88';
+
+    /**
+     * newton metre per degree
+     */
+    case REC20_NEWTON_METRE_PER_DEGREE = 'F89';
+
+    /**
+     * newton metre per ampere
+     */
+    case REC20_NEWTON_METRE_PER_AMPERE = 'F90';
+
+    /**
+     * bar litre per second
+     */
+    case REC20_BAR_LITRE_PER_SECOND = 'F91';
+
+    /**
+     * bar cubic metre per second
+     */
+    case REC20_BAR_CUBIC_METRE_PER_SECOND = 'F92';
+
+    /**
+     * hectopascal litre per second
+     */
+    case REC20_HECTOPASCAL_LITRE_PER_SECOND = 'F93';
+
+    /**
+     * hectopascal cubic metre per second
+     */
+    case REC20_HECTOPASCAL_CUBIC_METRE_PER_SECOND = 'F94';
+
+    /**
+     * millibar litre per second
+     */
+    case REC20_MILLIBAR_LITRE_PER_SECOND = 'F95';
+
+    /**
+     * millibar cubic metre per second
+     */
+    case REC20_MILLIBAR_CUBIC_METRE_PER_SECOND = 'F96';
+
+    /**
+     * megapascal litre per second
+     */
+    case REC20_MEGAPASCAL_LITRE_PER_SECOND = 'F97';
+
+    /**
+     * megapascal cubic metre per second
+     */
+    case REC20_MEGAPASCAL_CUBIC_METRE_PER_SECOND = 'F98';
+
+    /**
+     * pascal litre per second
+     */
+    case REC20_PASCAL_LITRE_PER_SECOND = 'F99';
+
+    /**
+     * degree Fahrenheit
+     */
+    case REC20_DEGREE_FAHRENHEIT = 'FAH';
+
+    /**
+     * farad
+     */
+    case REC20_FARAD = 'FAR';
+
+    /**
+     * fibre metre
+     */
+    case REC20_FIBRE_METRE = 'FBM';
+
+    /**
+     * thousand cubic foot
+     */
+    case REC20_THOUSAND_CUBIC_FOOT = 'FC';
+
+    /**
+     * hundred cubic metre
+     */
+    case REC20_HUNDRED_CUBIC_METRE = 'FF';
+
+    /**
+     * micromole
+     */
+    case REC20_MICROMOLE = 'FH';
+
+    /**
+     * failures in time
+     */
+    case REC20_FAILURES_IN_TIME = 'FIT';
+
+    /**
+     * flake ton
+     */
+    case REC20_FLAKE_TON = 'FL';
+
+    /**
+     * foot
+     */
+    case REC20_FOOT = 'FOT';
+
+    /**
+     * pound per square foot
+     */
+    case REC20_POUND_PER_SQUARE_FOOT = 'FP';
+
+    /**
+     * foot per minute
+     */
+    case REC20_FOOT_PER_MINUTE = 'FR';
+
+    /**
+     * foot per second
+     */
+    case REC20_FOOT_PER_SECOND = 'FS';
+
+    /**
+     * square foot
+     */
+    case REC20_SQUARE_FOOT = 'FTK';
+
+    /**
+     * cubic foot
+     */
+    case REC20_CUBIC_FOOT = 'FTQ';
+
+    /**
+     * pascal cubic metre per second
+     */
+    case REC20_PASCAL_CUBIC_METRE_PER_SECOND = 'G01';
+
+    /**
+     * centimetre per bar
+     */
+    case REC20_CENTIMETRE_PER_BAR = 'G04';
+
+    /**
+     * metre per bar
+     */
+    case REC20_METRE_PER_BAR = 'G05';
+
+    /**
+     * millimetre per bar
+     */
+    case REC20_MILLIMETRE_PER_BAR = 'G06';
+
+    /**
+     * square inch per second
+     */
+    case REC20_SQUARE_INCH_PER_SECOND = 'G08';
+
+    /**
+     * square metre per second kelvin
+     */
+    case REC20_SQUARE_METRE_PER_SECOND_KELVIN = 'G09';
+
+    /**
+     * stokes per kelvin
+     */
+    case REC20_STOKES_PER_KELVIN = 'G10';
+
+    /**
+     * gram per cubic centimetre bar
+     */
+    case REC20_GRAM_PER_CUBIC_CENTIMETRE_BAR = 'G11';
+
+    /**
+     * gram per cubic decimetre bar
+     */
+    case REC20_GRAM_PER_CUBIC_DECIMETRE_BAR = 'G12';
+
+    /**
+     * gram per litre bar
+     */
+    case REC20_GRAM_PER_LITRE_BAR = 'G13';
+
+    /**
+     * gram per cubic metre bar
+     */
+    case REC20_GRAM_PER_CUBIC_METRE_BAR = 'G14';
+
+    /**
+     * gram per millilitre bar
+     */
+    case REC20_GRAM_PER_MILLILITRE_BAR = 'G15';
+
+    /**
+     * kilogram per cubic centimetre bar
+     */
+    case REC20_KILOGRAM_PER_CUBIC_CENTIMETRE_BAR = 'G16';
+
+    /**
+     * kilogram per litre bar
+     */
+    case REC20_KILOGRAM_PER_LITRE_BAR = 'G17';
+
+    /**
+     * kilogram per cubic metre bar
+     */
+    case REC20_KILOGRAM_PER_CUBIC_METRE_BAR = 'G18';
+
+    /**
+     * newton metre per kilogram
+     */
+    case REC20_NEWTON_METRE_PER_KILOGRAM = 'G19';
+
+    /**
+     * US gallon per minute
+     */
+    case REC20_US_GALLON_PER_MINUTE = 'G2';
+
+    /**
+     * pound-force foot per pound
+     */
+    case REC20_POUNDFORCE_FOOT_PER_POUND = 'G20';
+
+    /**
+     * cup [unit of volume]
+     */
+    case REC20_CUP_UNIT_OF_VOLUME = 'G21';
+
+    /**
+     * peck
+     */
+    case REC20_PECK = 'G23';
+
+    /**
+     * tablespoon (US)
+     */
+    case REC20_TABLESPOON_US = 'G24';
+
+    /**
+     * teaspoon (US)
+     */
+    case REC20_TEASPOON_US = 'G25';
+
+    /**
+     * stere
+     */
+    case REC20_STERE = 'G26';
+
+    /**
+     * cubic centimetre per kelvin
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_KELVIN = 'G27';
+
+    /**
+     * litre per kelvin
+     */
+    case REC20_LITRE_PER_KELVIN = 'G28';
+
+    /**
+     * cubic metre per kelvin
+     */
+    case REC20_CUBIC_METRE_PER_KELVIN = 'G29';
+
+    /**
+     * Imperial gallon per minute
+     */
+    case REC20_IMPERIAL_GALLON_PER_MINUTE = 'G3';
+
+    /**
+     * millilitre per kelvin
+     */
+    case REC20_MILLILITRE_PER_KELVIN = 'G30';
+
+    /**
+     * kilogram per cubic centimetre
+     */
+    case REC20_KILOGRAM_PER_CUBIC_CENTIMETRE = 'G31';
+
+    /**
+     * ounce (avoirdupois) per cubic yard
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_CUBIC_YARD = 'G32';
+
+    /**
+     * gram per cubic centimetre kelvin
+     */
+    case REC20_GRAM_PER_CUBIC_CENTIMETRE_KELVIN = 'G33';
+
+    /**
+     * gram per cubic decimetre kelvin
+     */
+    case REC20_GRAM_PER_CUBIC_DECIMETRE_KELVIN = 'G34';
+
+    /**
+     * gram per litre kelvin
+     */
+    case REC20_GRAM_PER_LITRE_KELVIN = 'G35';
+
+    /**
+     * gram per cubic metre kelvin
+     */
+    case REC20_GRAM_PER_CUBIC_METRE_KELVIN = 'G36';
+
+    /**
+     * gram per millilitre kelvin
+     */
+    case REC20_GRAM_PER_MILLILITRE_KELVIN = 'G37';
+
+    /**
+     * kilogram per cubic centimetre kelvin
+     */
+    case REC20_KILOGRAM_PER_CUBIC_CENTIMETRE_KELVIN = 'G38';
+
+    /**
+     * kilogram per litre kelvin
+     */
+    case REC20_KILOGRAM_PER_LITRE_KELVIN = 'G39';
+
+    /**
+     * kilogram per cubic metre kelvin
+     */
+    case REC20_KILOGRAM_PER_CUBIC_METRE_KELVIN = 'G40';
+
+    /**
+     * square metre per second bar
+     */
+    case REC20_SQUARE_METRE_PER_SECOND_BAR = 'G41';
+
+    /**
+     * microsiemens per centimetre
+     */
+    case REC20_MICROSIEMENS_PER_CENTIMETRE = 'G42';
+
+    /**
+     * microsiemens per metre
+     */
+    case REC20_MICROSIEMENS_PER_METRE = 'G43';
+
+    /**
+     * nanosiemens per centimetre
+     */
+    case REC20_NANOSIEMENS_PER_CENTIMETRE = 'G44';
+
+    /**
+     * nanosiemens per metre
+     */
+    case REC20_NANOSIEMENS_PER_METRE = 'G45';
+
+    /**
+     * stokes per bar
+     */
+    case REC20_STOKES_PER_BAR = 'G46';
+
+    /**
+     * cubic centimetre per day
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_DAY = 'G47';
+
+    /**
+     * cubic centimetre per hour
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_HOUR = 'G48';
+
+    /**
+     * cubic centimetre per minute
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_MINUTE = 'G49';
+
+    /**
+     * gallon (US) per hour
+     */
+    case REC20_GALLON_US_PER_HOUR = 'G50';
+
+    /**
+     * litre per second
+     */
+    case REC20_LITRE_PER_SECOND = 'G51';
+
+    /**
+     * cubic metre per day
+     */
+    case REC20_CUBIC_METRE_PER_DAY = 'G52';
+
+    /**
+     * cubic metre per minute
+     */
+    case REC20_CUBIC_METRE_PER_MINUTE = 'G53';
+
+    /**
+     * millilitre per day
+     */
+    case REC20_MILLILITRE_PER_DAY = 'G54';
+
+    /**
+     * millilitre per hour
+     */
+    case REC20_MILLILITRE_PER_HOUR = 'G55';
+
+    /**
+     * cubic inch per hour
+     */
+    case REC20_CUBIC_INCH_PER_HOUR = 'G56';
+
+    /**
+     * cubic inch per minute
+     */
+    case REC20_CUBIC_INCH_PER_MINUTE = 'G57';
+
+    /**
+     * cubic inch per second
+     */
+    case REC20_CUBIC_INCH_PER_SECOND = 'G58';
+
+    /**
+     * milliampere per litre minute
+     */
+    case REC20_MILLIAMPERE_PER_LITRE_MINUTE = 'G59';
+
+    /**
+     * volt per bar
+     */
+    case REC20_VOLT_PER_BAR = 'G60';
+
+    /**
+     * cubic centimetre per day kelvin
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_DAY_KELVIN = 'G61';
+
+    /**
+     * cubic centimetre per hour kelvin
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_HOUR_KELVIN = 'G62';
+
+    /**
+     * cubic centimetre per minute kelvin
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_MINUTE_KELVIN = 'G63';
+
+    /**
+     * cubic centimetre per second kelvin
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_SECOND_KELVIN = 'G64';
+
+    /**
+     * litre per day kelvin
+     */
+    case REC20_LITRE_PER_DAY_KELVIN = 'G65';
+
+    /**
+     * litre per hour kelvin
+     */
+    case REC20_LITRE_PER_HOUR_KELVIN = 'G66';
+
+    /**
+     * litre per minute kelvin
+     */
+    case REC20_LITRE_PER_MINUTE_KELVIN = 'G67';
+
+    /**
+     * litre per second kelvin
+     */
+    case REC20_LITRE_PER_SECOND_KELVIN = 'G68';
+
+    /**
+     * cubic metre per day kelvin
+     */
+    case REC20_CUBIC_METRE_PER_DAY_KELVIN = 'G69';
+
+    /**
+     * cubic metre per hour kelvin
+     */
+    case REC20_CUBIC_METRE_PER_HOUR_KELVIN = 'G70';
+
+    /**
+     * cubic metre per minute kelvin
+     */
+    case REC20_CUBIC_METRE_PER_MINUTE_KELVIN = 'G71';
+
+    /**
+     * cubic metre per second kelvin
+     */
+    case REC20_CUBIC_METRE_PER_SECOND_KELVIN = 'G72';
+
+    /**
+     * millilitre per day kelvin
+     */
+    case REC20_MILLILITRE_PER_DAY_KELVIN = 'G73';
+
+    /**
+     * millilitre per hour kelvin
+     */
+    case REC20_MILLILITRE_PER_HOUR_KELVIN = 'G74';
+
+    /**
+     * millilitre per minute kelvin
+     */
+    case REC20_MILLILITRE_PER_MINUTE_KELVIN = 'G75';
+
+    /**
+     * millilitre per second kelvin
+     */
+    case REC20_MILLILITRE_PER_SECOND_KELVIN = 'G76';
+
+    /**
+     * millimetre to the fourth power
+     */
+    case REC20_MILLIMETRE_TO_THE_FOURTH_POWER = 'G77';
+
+    /**
+     * cubic centimetre per day bar
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_DAY_BAR = 'G78';
+
+    /**
+     * cubic centimetre per hour bar
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_HOUR_BAR = 'G79';
+
+    /**
+     * cubic centimetre per minute bar
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_MINUTE_BAR = 'G80';
+
+    /**
+     * cubic centimetre per second bar
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_SECOND_BAR = 'G81';
+
+    /**
+     * litre per day bar
+     */
+    case REC20_LITRE_PER_DAY_BAR = 'G82';
+
+    /**
+     * litre per hour bar
+     */
+    case REC20_LITRE_PER_HOUR_BAR = 'G83';
+
+    /**
+     * litre per minute bar
+     */
+    case REC20_LITRE_PER_MINUTE_BAR = 'G84';
+
+    /**
+     * litre per second bar
+     */
+    case REC20_LITRE_PER_SECOND_BAR = 'G85';
+
+    /**
+     * cubic metre per day bar
+     */
+    case REC20_CUBIC_METRE_PER_DAY_BAR = 'G86';
+
+    /**
+     * cubic metre per hour bar
+     */
+    case REC20_CUBIC_METRE_PER_HOUR_BAR = 'G87';
+
+    /**
+     * cubic metre per minute bar
+     */
+    case REC20_CUBIC_METRE_PER_MINUTE_BAR = 'G88';
+
+    /**
+     * cubic metre per second bar
+     */
+    case REC20_CUBIC_METRE_PER_SECOND_BAR = 'G89';
+
+    /**
+     * millilitre per day bar
+     */
+    case REC20_MILLILITRE_PER_DAY_BAR = 'G90';
+
+    /**
+     * millilitre per hour bar
+     */
+    case REC20_MILLILITRE_PER_HOUR_BAR = 'G91';
+
+    /**
+     * millilitre per minute bar
+     */
+    case REC20_MILLILITRE_PER_MINUTE_BAR = 'G92';
+
+    /**
+     * millilitre per second bar
+     */
+    case REC20_MILLILITRE_PER_SECOND_BAR = 'G93';
+
+    /**
+     * cubic centimetre per bar
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_BAR = 'G94';
+
+    /**
+     * litre per bar
+     */
+    case REC20_LITRE_PER_BAR = 'G95';
+
+    /**
+     * cubic metre per bar
+     */
+    case REC20_CUBIC_METRE_PER_BAR = 'G96';
+
+    /**
+     * millilitre per bar
+     */
+    case REC20_MILLILITRE_PER_BAR = 'G97';
+
+    /**
+     * microhenry per kiloohm
+     */
+    case REC20_MICROHENRY_PER_KILOOHM = 'G98';
+
+    /**
+     * microhenry per ohm
+     */
+    case REC20_MICROHENRY_PER_OHM = 'G99';
+
+    /**
+     * gallon (US) per day
+     */
+    case REC20_GALLON_US_PER_DAY = 'GB';
+
+    /**
+     * gigabecquerel
+     */
+    case REC20_GIGABECQUEREL = 'GBQ';
+
+    /**
+     * gram, dry weight
+     */
+    case REC20_GRAM_DRY_WEIGHT = 'GDW';
+
+    /**
+     * pound per gallon (US)
+     */
+    case REC20_POUND_PER_GALLON_US = 'GE';
+
+    /**
+     * gram per metre (gram per 100 centimetres)
+     */
+    case REC20_GRAM_PER_METRE_GRAM_PER_100_CENTIMETRES = 'GF';
+
+    /**
+     * gram of fissile isotope
+     */
+    case REC20_GRAM_OF_FISSILE_ISOTOPE = 'GFI';
+
+    /**
+     * great gross
+     */
+    case REC20_GREAT_GROSS = 'GGR';
+
+    /**
+     * gill (US)
+     */
+    case REC20_GILL_US = 'GIA';
+
+    /**
+     * gram, including container
+     */
+    case REC20_GRAM_INCLUDING_CONTAINER = 'GIC';
+
+    /**
+     * gill (UK)
+     */
+    case REC20_GILL_UK = 'GII';
+
+    /**
+     * gram, including inner packaging
+     */
+    case REC20_GRAM_INCLUDING_INNER_PACKAGING = 'GIP';
+
+    /**
+     * gram per millilitre
+     */
+    case REC20_GRAM_PER_MILLILITRE = 'GJ';
+
+    /**
+     * gram per litre
+     */
+    case REC20_GRAM_PER_LITRE = 'GL';
+
+    /**
+     * dry gallon (US)
+     */
+    case REC20_DRY_GALLON_US = 'GLD';
+
+    /**
+     * gallon (UK)
+     */
+    case REC20_GALLON_UK = 'GLI';
+
+    /**
+     * gallon (US)
+     */
+    case REC20_GALLON_US = 'GLL';
+
+    /**
+     * gram per square metre
+     */
+    case REC20_GRAM_PER_SQUARE_METRE = 'GM';
+
+    /**
+     * milligram per square metre
+     */
+    case REC20_MILLIGRAM_PER_SQUARE_METRE = 'GO';
+
+    /**
+     * milligram per cubic metre
+     */
+    case REC20_MILLIGRAM_PER_CUBIC_METRE = 'GP';
+
+    /**
+     * microgram per cubic metre
+     */
+    case REC20_MICROGRAM_PER_CUBIC_METRE = 'GQ';
+
+    /**
+     * gram
+     */
+    case REC20_GRAM = 'GRM';
+
+    /**
+     * grain
+     */
+    case REC20_GRAIN = 'GRN';
+
+    /**
+     * gross
+     */
+    case REC20_GROSS = 'GRO';
+
+    /**
+     * gigajoule
+     */
+    case REC20_GIGAJOULE = 'GV';
+
+    /**
+     * gigawatt hour
+     */
+    case REC20_GIGAWATT_HOUR = 'GWH';
+
+    /**
+     * henry per kiloohm
+     */
+    case REC20_HENRY_PER_KILOOHM = 'H03';
+
+    /**
+     * henry per ohm
+     */
+    case REC20_HENRY_PER_OHM = 'H04';
+
+    /**
+     * millihenry per kiloohm
+     */
+    case REC20_MILLIHENRY_PER_KILOOHM = 'H05';
+
+    /**
+     * millihenry per ohm
+     */
+    case REC20_MILLIHENRY_PER_OHM = 'H06';
+
+    /**
+     * pascal second per bar
+     */
+    case REC20_PASCAL_SECOND_PER_BAR = 'H07';
+
+    /**
+     * microbecquerel
+     */
+    case REC20_MICROBECQUEREL = 'H08';
+
+    /**
+     * reciprocal year
+     */
+    case REC20_RECIPROCAL_YEAR = 'H09';
+
+    /**
+     * reciprocal hour
+     */
+    case REC20_RECIPROCAL_HOUR = 'H10';
+
+    /**
+     * reciprocal month
+     */
+    case REC20_RECIPROCAL_MONTH = 'H11';
+
+    /**
+     * degree Celsius per hour
+     */
+    case REC20_DEGREE_CELSIUS_PER_HOUR = 'H12';
+
+    /**
+     * degree Celsius per minute
+     */
+    case REC20_DEGREE_CELSIUS_PER_MINUTE = 'H13';
+
+    /**
+     * degree Celsius per second
+     */
+    case REC20_DEGREE_CELSIUS_PER_SECOND = 'H14';
+
+    /**
+     * square centimetre per gram
+     */
+    case REC20_SQUARE_CENTIMETRE_PER_GRAM = 'H15';
+
+    /**
+     * square decametre
+     */
+    case REC20_SQUARE_DECAMETRE = 'H16';
+
+    /**
+     * square hectometre
+     */
+    case REC20_SQUARE_HECTOMETRE = 'H18';
+
+    /**
+     * cubic hectometre
+     */
+    case REC20_CUBIC_HECTOMETRE = 'H19';
+
+    /**
+     * cubic kilometre
+     */
+    case REC20_CUBIC_KILOMETRE = 'H20';
+
+    /**
+     * blank
+     */
+    case REC20_BLANK = 'H21';
+
+    /**
+     * volt square inch per pound-force
+     */
+    case REC20_VOLT_SQUARE_INCH_PER_POUNDFORCE = 'H22';
+
+    /**
+     * volt per inch
+     */
+    case REC20_VOLT_PER_INCH = 'H23';
+
+    /**
+     * volt per microsecond
+     */
+    case REC20_VOLT_PER_MICROSECOND = 'H24';
+
+    /**
+     * percent per kelvin
+     */
+    case REC20_PERCENT_PER_KELVIN = 'H25';
+
+    /**
+     * ohm per metre
+     */
+    case REC20_OHM_PER_METRE = 'H26';
+
+    /**
+     * degree per metre
+     */
+    case REC20_DEGREE_PER_METRE = 'H27';
+
+    /**
+     * microfarad per kilometre
+     */
+    case REC20_MICROFARAD_PER_KILOMETRE = 'H28';
+
+    /**
+     * microgram per litre
+     */
+    case REC20_MICROGRAM_PER_LITRE = 'H29';
+
+    /**
+     * square micrometre (square micron)
+     */
+    case REC20_SQUARE_MICROMETRE_SQUARE_MICRON = 'H30';
+
+    /**
+     * ampere per kilogram
+     */
+    case REC20_AMPERE_PER_KILOGRAM = 'H31';
+
+    /**
+     * ampere squared second
+     */
+    case REC20_AMPERE_SQUARED_SECOND = 'H32';
+
+    /**
+     * farad per kilometre
+     */
+    case REC20_FARAD_PER_KILOMETRE = 'H33';
+
+    /**
+     * hertz metre
+     */
+    case REC20_HERTZ_METRE = 'H34';
+
+    /**
+     * kelvin metre per watt
+     */
+    case REC20_KELVIN_METRE_PER_WATT = 'H35';
+
+    /**
+     * megaohm per kilometre
+     */
+    case REC20_MEGAOHM_PER_KILOMETRE = 'H36';
+
+    /**
+     * megaohm per metre
+     */
+    case REC20_MEGAOHM_PER_METRE = 'H37';
+
+    /**
+     * megaampere
+     */
+    case REC20_MEGAAMPERE = 'H38';
+
+    /**
+     * megahertz kilometre
+     */
+    case REC20_MEGAHERTZ_KILOMETRE = 'H39';
+
+    /**
+     * newton per ampere
+     */
+    case REC20_NEWTON_PER_AMPERE = 'H40';
+
+    /**
+     * newton metre watt to the power minus 0,5
+     */
+    case REC20_NEWTON_METRE_WATT_TO_THE_POWER_MINUS_05 = 'H41';
+
+    /**
+     * pascal per metre
+     */
+    case REC20_PASCAL_PER_METRE = 'H42';
+
+    /**
+     * siemens per centimetre
+     */
+    case REC20_SIEMENS_PER_CENTIMETRE = 'H43';
+
+    /**
+     * teraohm
+     */
+    case REC20_TERAOHM = 'H44';
+
+    /**
+     * volt second per metre
+     */
+    case REC20_VOLT_SECOND_PER_METRE = 'H45';
+
+    /**
+     * volt per second
+     */
+    case REC20_VOLT_PER_SECOND = 'H46';
+
+    /**
+     * watt per cubic metre
+     */
+    case REC20_WATT_PER_CUBIC_METRE = 'H47';
+
+    /**
+     * attofarad
+     */
+    case REC20_ATTOFARAD = 'H48';
+
+    /**
+     * centimetre per hour
+     */
+    case REC20_CENTIMETRE_PER_HOUR = 'H49';
+
+    /**
+     * reciprocal cubic centimetre
+     */
+    case REC20_RECIPROCAL_CUBIC_CENTIMETRE = 'H50';
+
+    /**
+     * decibel per kilometre
+     */
+    case REC20_DECIBEL_PER_KILOMETRE = 'H51';
+
+    /**
+     * decibel per metre
+     */
+    case REC20_DECIBEL_PER_METRE = 'H52';
+
+    /**
+     * kilogram per bar
+     */
+    case REC20_KILOGRAM_PER_BAR = 'H53';
+
+    /**
+     * kilogram per cubic decimetre kelvin
+     */
+    case REC20_KILOGRAM_PER_CUBIC_DECIMETRE_KELVIN = 'H54';
+
+    /**
+     * kilogram per cubic decimetre bar
+     */
+    case REC20_KILOGRAM_PER_CUBIC_DECIMETRE_BAR = 'H55';
+
+    /**
+     * kilogram per square metre second
+     */
+    case REC20_KILOGRAM_PER_SQUARE_METRE_SECOND = 'H56';
+
+    /**
+     * inch per two pi radiant
+     */
+    case REC20_INCH_PER_TWO_PI_RADIANT = 'H57';
+
+    /**
+     * metre per volt second
+     */
+    case REC20_METRE_PER_VOLT_SECOND = 'H58';
+
+    /**
+     * square metre per newton
+     */
+    case REC20_SQUARE_METRE_PER_NEWTON = 'H59';
+
+    /**
+     * cubic metre per cubic metre
+     */
+    case REC20_CUBIC_METRE_PER_CUBIC_METRE = 'H60';
+
+    /**
+     * millisiemens per centimetre
+     */
+    case REC20_MILLISIEMENS_PER_CENTIMETRE = 'H61';
+
+    /**
+     * millivolt per minute
+     */
+    case REC20_MILLIVOLT_PER_MINUTE = 'H62';
+
+    /**
+     * milligram per square centimetre
+     */
+    case REC20_MILLIGRAM_PER_SQUARE_CENTIMETRE = 'H63';
+
+    /**
+     * milligram per gram
+     */
+    case REC20_MILLIGRAM_PER_GRAM = 'H64';
+
+    /**
+     * millilitre per cubic metre
+     */
+    case REC20_MILLILITRE_PER_CUBIC_METRE = 'H65';
+
+    /**
+     * millimetre per year
+     */
+    case REC20_MILLIMETRE_PER_YEAR = 'H66';
+
+    /**
+     * millimetre per hour
+     */
+    case REC20_MILLIMETRE_PER_HOUR = 'H67';
+
+    /**
+     * millimole per gram
+     */
+    case REC20_MILLIMOLE_PER_GRAM = 'H68';
+
+    /**
+     * picopascal per kilometre
+     */
+    case REC20_PICOPASCAL_PER_KILOMETRE = 'H69';
+
+    /**
+     * picosecond
+     */
+    case REC20_PICOSECOND = 'H70';
+
+    /**
+     * percent per month
+     */
+    case REC20_PERCENT_PER_MONTH = 'H71';
+
+    /**
+     * percent per hectobar
+     */
+    case REC20_PERCENT_PER_HECTOBAR = 'H72';
+
+    /**
+     * percent per decakelvin
+     */
+    case REC20_PERCENT_PER_DECAKELVIN = 'H73';
+
+    /**
+     * watt per metre
+     */
+    case REC20_WATT_PER_METRE = 'H74';
+
+    /**
+     * decapascal
+     */
+    case REC20_DECAPASCAL = 'H75';
+
+    /**
+     * gram per millimetre
+     */
+    case REC20_GRAM_PER_MILLIMETRE = 'H76';
+
+    /**
+     * module width
+     */
+    case REC20_MODULE_WIDTH = 'H77';
+
+    /**
+     * French gauge
+     */
+    case REC20_FRENCH_GAUGE = 'H79';
+
+    /**
+     * rack unit
+     */
+    case REC20_RACK_UNIT = 'H80';
+
+    /**
+     * millimetre per minute
+     */
+    case REC20_MILLIMETRE_PER_MINUTE = 'H81';
+
+    /**
+     * big point
+     */
+    case REC20_BIG_POINT = 'H82';
+
+    /**
+     * litre per kilogram
+     */
+    case REC20_LITRE_PER_KILOGRAM = 'H83';
+
+    /**
+     * gram millimetre
+     */
+    case REC20_GRAM_MILLIMETRE = 'H84';
+
+    /**
+     * reciprocal week
+     */
+    case REC20_RECIPROCAL_WEEK = 'H85';
+
+    /**
+     * piece
+     */
+    case REC20_PIECE = 'H87';
+
+    /**
+     * megaohm kilometre
+     */
+    case REC20_MEGAOHM_KILOMETRE = 'H88';
+
+    /**
+     * percent per ohm
+     */
+    case REC20_PERCENT_PER_OHM = 'H89';
+
+    /**
+     * percent per degree
+     */
+    case REC20_PERCENT_PER_DEGREE = 'H90';
+
+    /**
+     * percent per ten thousand
+     */
+    case REC20_PERCENT_PER_TEN_THOUSAND = 'H91';
+
+    /**
+     * percent per one hundred thousand
+     */
+    case REC20_PERCENT_PER_ONE_HUNDRED_THOUSAND = 'H92';
+
+    /**
+     * percent per hundred
+     */
+    case REC20_PERCENT_PER_HUNDRED = 'H93';
+
+    /**
+     * percent per thousand
+     */
+    case REC20_PERCENT_PER_THOUSAND = 'H94';
+
+    /**
+     * percent per volt
+     */
+    case REC20_PERCENT_PER_VOLT = 'H95';
+
+    /**
+     * percent per bar
+     */
+    case REC20_PERCENT_PER_BAR = 'H96';
+
+    /**
+     * percent per inch
+     */
+    case REC20_PERCENT_PER_INCH = 'H98';
+
+    /**
+     * percent per metre
+     */
+    case REC20_PERCENT_PER_METRE = 'H99';
+
+    /**
+     * hank
+     */
+    case REC20_HANK = 'HA';
+
+    /**
+     * hectobar
+     */
+    case REC20_HECTOBAR = 'HBA';
+
+    /**
+     * hundred boxes
+     */
+    case REC20_HUNDRED_BOXES = 'HBX';
+
+    /**
+     * hundred count
+     */
+    case REC20_HUNDRED_COUNT = 'HC';
+
+    /**
+     * hundred kilogram, dry weight
+     */
+    case REC20_HUNDRED_KILOGRAM_DRY_WEIGHT = 'HDW';
+
+    /**
+     * head
+     */
+    case REC20_HEAD = 'HEA';
+
+    /**
+     * hectogram
+     */
+    case REC20_HECTOGRAM = 'HGM';
+
+    /**
+     * hundred cubic foot
+     */
+    case REC20_HUNDRED_CUBIC_FOOT = 'HH';
+
+    /**
+     * hundred international unit
+     */
+    case REC20_HUNDRED_INTERNATIONAL_UNIT = 'HIU';
+
+    /**
+     * hundred kilogram, net mass
+     */
+    case REC20_HUNDRED_KILOGRAM_NET_MASS = 'HKM';
+
+    /**
+     * hectolitre
+     */
+    case REC20_HECTOLITRE = 'HLT';
+
+    /**
+     * mile per hour (statute mile)
+     */
+    case REC20_MILE_PER_HOUR_STATUTE_MILE = 'HM';
+
+    /**
+     * million cubic metre
+     */
+    case REC20_MILLION_CUBIC_METRE = 'HMQ';
+
+    /**
+     * hectometre
+     */
+    case REC20_HECTOMETRE = 'HMT';
+
+    /**
+     * hectolitre of pure alcohol
+     */
+    case REC20_HECTOLITRE_OF_PURE_ALCOHOL = 'HPA';
+
+    /**
+     * hertz
+     */
+    case REC20_HERTZ = 'HTZ';
+
+    /**
+     * hour
+     */
+    case REC20_HOUR = 'HUR';
+
+    /**
+     * inch pound (pound inch)
+     */
+    case REC20_INCH_POUND_POUND_INCH = 'IA';
+
+    /**
+     * person
+     */
+    case REC20_PERSON = 'IE';
+
+    /**
+     * inch
+     */
+    case REC20_INCH = 'INH';
+
+    /**
+     * square inch
+     */
+    case REC20_SQUARE_INCH = 'INK';
+
+    /**
+     * cubic inch
+     */
+    case REC20_CUBIC_INCH = 'INQ';
+
+    /**
+     * international sugar degree
+     */
+    case REC20_INTERNATIONAL_SUGAR_DEGREE = 'ISD';
+
+    /**
+     * inch per second
+     */
+    case REC20_INCH_PER_SECOND = 'IU';
+
+    /**
+     * international unit per gram
+     */
+    case REC20_INTERNATIONAL_UNIT_PER_GRAM = 'IUG';
+
+    /**
+     * inch per second squared
+     */
+    case REC20_INCH_PER_SECOND_SQUARED = 'IV';
+
+    /**
+     * percent per millimetre
+     */
+    case REC20_PERCENT_PER_MILLIMETRE = 'J10';
+
+    /**
+     * per mille per psi
+     */
+    case REC20_PER_MILLE_PER_PSI = 'J12';
+
+    /**
+     * degree API
+     */
+    case REC20_DEGREE_API = 'J13';
+
+    /**
+     * degree Baume (origin scale)
+     */
+    case REC20_DEGREE_BAUME_ORIGIN_SCALE = 'J14';
+
+    /**
+     * degree Baume (US heavy)
+     */
+    case REC20_DEGREE_BAUME_US_HEAVY = 'J15';
+
+    /**
+     * degree Baume (US light)
+     */
+    case REC20_DEGREE_BAUME_US_LIGHT = 'J16';
+
+    /**
+     * degree Balling
+     */
+    case REC20_DEGREE_BALLING = 'J17';
+
+    /**
+     * degree Brix
+     */
+    case REC20_DEGREE_BRIX = 'J18';
+
+    /**
+     * degree Fahrenheit hour square foot per British thermal unit
+     * (thermochemical)
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_SQUARE_FOOT_PER_BRITISH_THERMAL_UNIT_THERMOCHEMICAL = 'J19';
+
+    /**
+     * joule per kilogram
+     */
+    case REC20_JOULE_PER_KILOGRAM = 'J2';
+
+    /**
+     * degree Fahrenheit per kelvin
+     */
+    case REC20_DEGREE_FAHRENHEIT_PER_KELVIN = 'J20';
+
+    /**
+     * degree Fahrenheit per bar
+     */
+    case REC20_DEGREE_FAHRENHEIT_PER_BAR = 'J21';
+
+    /**
+     * degree Fahrenheit hour square foot per British thermal unit
+     * (international table)
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_SQUARE_FOOT_PER_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE = 'J22';
+
+    /**
+     * degree Fahrenheit per hour
+     */
+    case REC20_DEGREE_FAHRENHEIT_PER_HOUR = 'J23';
+
+    /**
+     * degree Fahrenheit per minute
+     */
+    case REC20_DEGREE_FAHRENHEIT_PER_MINUTE = 'J24';
+
+    /**
+     * degree Fahrenheit per second
+     */
+    case REC20_DEGREE_FAHRENHEIT_PER_SECOND = 'J25';
+
+    /**
+     * reciprocal degree Fahrenheit
+     */
+    case REC20_RECIPROCAL_DEGREE_FAHRENHEIT = 'J26';
+
+    /**
+     * degree Oechsle
+     */
+    case REC20_DEGREE_OECHSLE = 'J27';
+
+    /**
+     * degree Rankine per hour
+     */
+    case REC20_DEGREE_RANKINE_PER_HOUR = 'J28';
+
+    /**
+     * degree Rankine per minute
+     */
+    case REC20_DEGREE_RANKINE_PER_MINUTE = 'J29';
+
+    /**
+     * degree Rankine per second
+     */
+    case REC20_DEGREE_RANKINE_PER_SECOND = 'J30';
+
+    /**
+     * degree Twaddell
+     */
+    case REC20_DEGREE_TWADDELL = 'J31';
+
+    /**
+     * micropoise
+     */
+    case REC20_MICROPOISE = 'J32';
+
+    /**
+     * microgram per kilogram
+     */
+    case REC20_MICROGRAM_PER_KILOGRAM = 'J33';
+
+    /**
+     * microgram per cubic metre kelvin
+     */
+    case REC20_MICROGRAM_PER_CUBIC_METRE_KELVIN = 'J34';
+
+    /**
+     * microgram per cubic metre bar
+     */
+    case REC20_MICROGRAM_PER_CUBIC_METRE_BAR = 'J35';
+
+    /**
+     * microlitre per litre
+     */
+    case REC20_MICROLITRE_PER_LITRE = 'J36';
+
+    /**
+     * baud
+     */
+    case REC20_BAUD = 'J38';
+
+    /**
+     * British thermal unit (mean)
+     */
+    case REC20_BRITISH_THERMAL_UNIT_MEAN = 'J39';
+
+    /**
+     * British thermal unit (international table) foot per hourÂ square foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_FOOT_PER_HOURSQUARE_FOOT_DEGREE_FAHRENHEIT = 'J40';
+
+    /**
+     * British thermal unit (international table) inch per hour squareÂ foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_INCH_PER_HOUR_SQUAREFOOT_DEGREE_FAHRENHEIT = 'J41';
+
+    /**
+     * British thermal unit (international table) inch per second
+     * squareÂ foot degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_INCH_PER_SECOND_SQUAREFOOT_DEGREE_FAHRENHEIT = 'J42';
+
+    /**
+     * British thermal unit (international table) per pound degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_POUND_DEGREE_FAHRENHEIT = 'J43';
+
+    /**
+     * British thermal unit (international table) per minute
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_MINUTE = 'J44';
+
+    /**
+     * British thermal unit (international table) per second
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SECOND = 'J45';
+
+    /**
+     * British thermal unit (thermochemical) foot per hour squareÂ foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_FOOT_PER_HOUR_SQUAREFOOT_DEGREE_FAHRENHEIT = 'J46';
+
+    /**
+     * British thermal unit (thermochemical) per hour
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_HOUR = 'J47';
+
+    /**
+     * British thermal unit (thermochemical) inch per hour squareÂ foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_INCH_PER_HOUR_SQUAREFOOT_DEGREE_FAHRENHEIT = 'J48';
+
+    /**
+     * British thermal unit (thermochemical) inch per secondÂ square foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_INCH_PER_SECONDSQUARE_FOOT_DEGREE_FAHRENHEIT = 'J49';
+
+    /**
+     * British thermal unit (thermochemical) per pound degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_POUND_DEGREE_FAHRENHEIT = 'J50';
+
+    /**
+     * British thermal unit (thermochemical) per minute
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_MINUTE = 'J51';
+
+    /**
+     * British thermal unit (thermochemical) per second
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SECOND = 'J52';
+
+    /**
+     * coulomb square metre per kilogram
+     */
+    case REC20_COULOMB_SQUARE_METRE_PER_KILOGRAM = 'J53';
+
+    /**
+     * megabaud
+     */
+    case REC20_MEGABAUD = 'J54';
+
+    /**
+     * watt second
+     */
+    case REC20_WATT_SECOND = 'J55';
+
+    /**
+     * bar per bar
+     */
+    case REC20_BAR_PER_BAR = 'J56';
+
+    /**
+     * barrel (UK petroleum)
+     */
+    case REC20_BARREL_UK_PETROLEUM = 'J57';
+
+    /**
+     * barrel (UK petroleum) per minute
+     */
+    case REC20_BARREL_UK_PETROLEUM_PER_MINUTE = 'J58';
+
+    /**
+     * barrel (UK petroleum) per day
+     */
+    case REC20_BARREL_UK_PETROLEUM_PER_DAY = 'J59';
+
+    /**
+     * barrel (UK petroleum) per hour
+     */
+    case REC20_BARREL_UK_PETROLEUM_PER_HOUR = 'J60';
+
+    /**
+     * barrel (UK petroleum) per second
+     */
+    case REC20_BARREL_UK_PETROLEUM_PER_SECOND = 'J61';
+
+    /**
+     * barrel (US petroleum) per hour
+     */
+    case REC20_BARREL_US_PETROLEUM_PER_HOUR = 'J62';
+
+    /**
+     * barrel (US petroleum) per second
+     */
+    case REC20_BARREL_US_PETROLEUM_PER_SECOND = 'J63';
+
+    /**
+     * bushel (UK) per day
+     */
+    case REC20_BUSHEL_UK_PER_DAY = 'J64';
+
+    /**
+     * bushel (UK) per hour
+     */
+    case REC20_BUSHEL_UK_PER_HOUR = 'J65';
+
+    /**
+     * bushel (UK) per minute
+     */
+    case REC20_BUSHEL_UK_PER_MINUTE = 'J66';
+
+    /**
+     * bushel (UK) per second
+     */
+    case REC20_BUSHEL_UK_PER_SECOND = 'J67';
+
+    /**
+     * bushel (US dry) per day
+     */
+    case REC20_BUSHEL_US_DRY_PER_DAY = 'J68';
+
+    /**
+     * bushel (US dry) per hour
+     */
+    case REC20_BUSHEL_US_DRY_PER_HOUR = 'J69';
+
+    /**
+     * bushel (US dry) per minute
+     */
+    case REC20_BUSHEL_US_DRY_PER_MINUTE = 'J70';
+
+    /**
+     * bushel (US dry) per second
+     */
+    case REC20_BUSHEL_US_DRY_PER_SECOND = 'J71';
+
+    /**
+     * centinewton metre
+     */
+    case REC20_CENTINEWTON_METRE = 'J72';
+
+    /**
+     * centipoise per kelvin
+     */
+    case REC20_CENTIPOISE_PER_KELVIN = 'J73';
+
+    /**
+     * centipoise per bar
+     */
+    case REC20_CENTIPOISE_PER_BAR = 'J74';
+
+    /**
+     * calorie (mean)
+     */
+    case REC20_CALORIE_MEAN = 'J75';
+
+    /**
+     * calorie (international table) per gram degree Celsius
+     */
+    case REC20_CALORIE_INTERNATIONAL_TABLE_PER_GRAM_DEGREE_CELSIUS = 'J76';
+
+    /**
+     * calorie (thermochemical) per centimetre second degree Celsius
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_CENTIMETRE_SECOND_DEGREE_CELSIUS = 'J78';
+
+    /**
+     * calorie (thermochemical) per gram degree Celsius
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_GRAM_DEGREE_CELSIUS = 'J79';
+
+    /**
+     * calorie (thermochemical) per minute
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_MINUTE = 'J81';
+
+    /**
+     * calorie (thermochemical) per second
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_SECOND = 'J82';
+
+    /**
+     * clo
+     */
+    case REC20_CLO = 'J83';
+
+    /**
+     * centimetre per second kelvin
+     */
+    case REC20_CENTIMETRE_PER_SECOND_KELVIN = 'J84';
+
+    /**
+     * centimetre per second bar
+     */
+    case REC20_CENTIMETRE_PER_SECOND_BAR = 'J85';
+
+    /**
+     * cubic centimetre per cubic metre
+     */
+    case REC20_CUBIC_CENTIMETRE_PER_CUBIC_METRE = 'J87';
+
+    /**
+     * cubic decimetre per day
+     */
+    case REC20_CUBIC_DECIMETRE_PER_DAY = 'J90';
+
+    /**
+     * cubic decimetre per cubic metre
+     */
+    case REC20_CUBIC_DECIMETRE_PER_CUBIC_METRE = 'J91';
+
+    /**
+     * cubic decimetre per minute
+     */
+    case REC20_CUBIC_DECIMETRE_PER_MINUTE = 'J92';
+
+    /**
+     * cubic decimetre per second
+     */
+    case REC20_CUBIC_DECIMETRE_PER_SECOND = 'J93';
+
+    /**
+     * ounce (UK fluid) per day
+     */
+    case REC20_OUNCE_UK_FLUID_PER_DAY = 'J95';
+
+    /**
+     * ounce (UK fluid) per hour
+     */
+    case REC20_OUNCE_UK_FLUID_PER_HOUR = 'J96';
+
+    /**
+     * ounce (UK fluid) per minute
+     */
+    case REC20_OUNCE_UK_FLUID_PER_MINUTE = 'J97';
+
+    /**
+     * ounce (UK fluid) per second
+     */
+    case REC20_OUNCE_UK_FLUID_PER_SECOND = 'J98';
+
+    /**
+     * ounce (US fluid) per day
+     */
+    case REC20_OUNCE_US_FLUID_PER_DAY = 'J99';
+
+    /**
+     * joule per kelvin
+     */
+    case REC20_JOULE_PER_KELVIN = 'JE';
+
+    /**
+     * megajoule per kilogram
+     */
+    case REC20_MEGAJOULE_PER_KILOGRAM = 'JK';
+
+    /**
+     * megajoule per cubic metre
+     */
+    case REC20_MEGAJOULE_PER_CUBIC_METRE = 'JM';
+
+    /**
+     * pipeline joint
+     */
+    case REC20_PIPELINE_JOINT = 'JNT';
+
+    /**
+     * joule
+     */
+    case REC20_JOULE = 'JOU';
+
+    /**
+     * hundred metre
+     */
+    case REC20_HUNDRED_METRE = 'JPS';
+
+    /**
+     * number of jewels
+     */
+    case REC20_NUMBER_OF_JEWELS = 'JWL';
+
+    /**
+     * kilowatt demand
+     */
+    case REC20_KILOWATT_DEMAND = 'K1';
+
+    /**
+     * ounce (US fluid) per hour
+     */
+    case REC20_OUNCE_US_FLUID_PER_HOUR = 'K10';
+
+    /**
+     * ounce (US fluid) per minute
+     */
+    case REC20_OUNCE_US_FLUID_PER_MINUTE = 'K11';
+
+    /**
+     * ounce (US fluid) per second
+     */
+    case REC20_OUNCE_US_FLUID_PER_SECOND = 'K12';
+
+    /**
+     * foot per degree Fahrenheit
+     */
+    case REC20_FOOT_PER_DEGREE_FAHRENHEIT = 'K13';
+
+    /**
+     * foot per hour
+     */
+    case REC20_FOOT_PER_HOUR = 'K14';
+
+    /**
+     * foot pound-force per hour
+     */
+    case REC20_FOOT_POUNDFORCE_PER_HOUR = 'K15';
+
+    /**
+     * foot pound-force per minute
+     */
+    case REC20_FOOT_POUNDFORCE_PER_MINUTE = 'K16';
+
+    /**
+     * foot per psi
+     */
+    case REC20_FOOT_PER_PSI = 'K17';
+
+    /**
+     * foot per second degree Fahrenheit
+     */
+    case REC20_FOOT_PER_SECOND_DEGREE_FAHRENHEIT = 'K18';
+
+    /**
+     * foot per second psi
+     */
+    case REC20_FOOT_PER_SECOND_PSI = 'K19';
+
+    /**
+     * kilovolt ampere reactive demand
+     */
+    case REC20_KILOVOLT_AMPERE_REACTIVE_DEMAND = 'K2';
+
+    /**
+     * reciprocal cubic foot
+     */
+    case REC20_RECIPROCAL_CUBIC_FOOT = 'K20';
+
+    /**
+     * cubic foot per degree Fahrenheit
+     */
+    case REC20_CUBIC_FOOT_PER_DEGREE_FAHRENHEIT = 'K21';
+
+    /**
+     * cubic foot per day
+     */
+    case REC20_CUBIC_FOOT_PER_DAY = 'K22';
+
+    /**
+     * cubic foot per psi
+     */
+    case REC20_CUBIC_FOOT_PER_PSI = 'K23';
+
+    /**
+     * gallon (UK) per day
+     */
+    case REC20_GALLON_UK_PER_DAY = 'K26';
+
+    /**
+     * gallon (UK) per hour
+     */
+    case REC20_GALLON_UK_PER_HOUR = 'K27';
+
+    /**
+     * gallon (UK) per second
+     */
+    case REC20_GALLON_UK_PER_SECOND = 'K28';
+
+    /**
+     * kilovolt ampere reactive hour
+     */
+    case REC20_KILOVOLT_AMPERE_REACTIVE_HOUR = 'K3';
+
+    /**
+     * gallon (US liquid) per second
+     */
+    case REC20_GALLON_US_LIQUID_PER_SECOND = 'K30';
+
+    /**
+     * gram-force per square centimetre
+     */
+    case REC20_GRAMFORCE_PER_SQUARE_CENTIMETRE = 'K31';
+
+    /**
+     * gill (UK) per day
+     */
+    case REC20_GILL_UK_PER_DAY = 'K32';
+
+    /**
+     * gill (UK) per hour
+     */
+    case REC20_GILL_UK_PER_HOUR = 'K33';
+
+    /**
+     * gill (UK) per minute
+     */
+    case REC20_GILL_UK_PER_MINUTE = 'K34';
+
+    /**
+     * gill (UK) per second
+     */
+    case REC20_GILL_UK_PER_SECOND = 'K35';
+
+    /**
+     * gill (US) per day
+     */
+    case REC20_GILL_US_PER_DAY = 'K36';
+
+    /**
+     * gill (US) per hour
+     */
+    case REC20_GILL_US_PER_HOUR = 'K37';
+
+    /**
+     * gill (US) per minute
+     */
+    case REC20_GILL_US_PER_MINUTE = 'K38';
+
+    /**
+     * gill (US) per second
+     */
+    case REC20_GILL_US_PER_SECOND = 'K39';
+
+    /**
+     * standard acceleration of free fall
+     */
+    case REC20_STANDARD_ACCELERATION_OF_FREE_FALL = 'K40';
+
+    /**
+     * grain per gallon (US)
+     */
+    case REC20_GRAIN_PER_GALLON_US = 'K41';
+
+    /**
+     * horsepower (boiler)
+     */
+    case REC20_HORSEPOWER_BOILER = 'K42';
+
+    /**
+     * horsepower (electric)
+     */
+    case REC20_HORSEPOWER_ELECTRIC = 'K43';
+
+    /**
+     * inch per degree Fahrenheit
+     */
+    case REC20_INCH_PER_DEGREE_FAHRENHEIT = 'K45';
+
+    /**
+     * inch per psi
+     */
+    case REC20_INCH_PER_PSI = 'K46';
+
+    /**
+     * inch per second degree Fahrenheit
+     */
+    case REC20_INCH_PER_SECOND_DEGREE_FAHRENHEIT = 'K47';
+
+    /**
+     * inch per second psi
+     */
+    case REC20_INCH_PER_SECOND_PSI = 'K48';
+
+    /**
+     * reciprocal cubic inch
+     */
+    case REC20_RECIPROCAL_CUBIC_INCH = 'K49';
+
+    /**
+     * kilobaud
+     */
+    case REC20_KILOBAUD = 'K50';
+
+    /**
+     * kilocalorie (mean)
+     */
+    case REC20_KILOCALORIE_MEAN = 'K51';
+
+    /**
+     * kilocalorie (international table) per hour metre degree Celsius
+     */
+    case REC20_KILOCALORIE_INTERNATIONAL_TABLE_PER_HOUR_METRE_DEGREE_CELSIUS = 'K52';
+
+    /**
+     * kilocalorie (thermochemical)
+     */
+    case REC20_KILOCALORIE_THERMOCHEMICAL = 'K53';
+
+    /**
+     * kilocalorie (thermochemical) per minute
+     */
+    case REC20_KILOCALORIE_THERMOCHEMICAL_PER_MINUTE = 'K54';
+
+    /**
+     * kilocalorie (thermochemical) per second
+     */
+    case REC20_KILOCALORIE_THERMOCHEMICAL_PER_SECOND = 'K55';
+
+    /**
+     * kilomole per hour
+     */
+    case REC20_KILOMOLE_PER_HOUR = 'K58';
+
+    /**
+     * kilomole per cubic metre kelvin
+     */
+    case REC20_KILOMOLE_PER_CUBIC_METRE_KELVIN = 'K59';
+
+    /**
+     * kilolitre
+     */
+    case REC20_KILOLITRE = 'K6';
+
+    /**
+     * kilomole per cubic metre bar
+     */
+    case REC20_KILOMOLE_PER_CUBIC_METRE_BAR = 'K60';
+
+    /**
+     * kilomole per minute
+     */
+    case REC20_KILOMOLE_PER_MINUTE = 'K61';
+
+    /**
+     * litre per litre
+     */
+    case REC20_LITRE_PER_LITRE = 'K62';
+
+    /**
+     * reciprocal litre
+     */
+    case REC20_RECIPROCAL_LITRE = 'K63';
+
+    /**
+     * pound (avoirdupois) per degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_DEGREE_FAHRENHEIT = 'K64';
+
+    /**
+     * pound (avoirdupois) square foot
+     */
+    case REC20_POUND_AVOIRDUPOIS_SQUARE_FOOT = 'K65';
+
+    /**
+     * pound (avoirdupois) per day
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_DAY = 'K66';
+
+    /**
+     * pound per foot hour
+     */
+    case REC20_POUND_PER_FOOT_HOUR = 'K67';
+
+    /**
+     * pound per foot second
+     */
+    case REC20_POUND_PER_FOOT_SECOND = 'K68';
+
+    /**
+     * pound (avoirdupois) per cubic foot degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_CUBIC_FOOT_DEGREE_FAHRENHEIT = 'K69';
+
+    /**
+     * pound (avoirdupois) per cubic foot psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_CUBIC_FOOT_PSI = 'K70';
+
+    /**
+     * pound (avoirdupois) per gallon (UK)
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_GALLON_UK = 'K71';
+
+    /**
+     * pound (avoirdupois) per hour degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_HOUR_DEGREE_FAHRENHEIT = 'K73';
+
+    /**
+     * pound (avoirdupois) per hour psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_HOUR_PSI = 'K74';
+
+    /**
+     * pound (avoirdupois) per cubic inch degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_CUBIC_INCH_DEGREE_FAHRENHEIT = 'K75';
+
+    /**
+     * pound (avoirdupois) per cubic inch psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_CUBIC_INCH_PSI = 'K76';
+
+    /**
+     * pound (avoirdupois) per psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_PSI = 'K77';
+
+    /**
+     * pound (avoirdupois) per minute
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_MINUTE = 'K78';
+
+    /**
+     * pound (avoirdupois) per minute degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_MINUTE_DEGREE_FAHRENHEIT = 'K79';
+
+    /**
+     * pound (avoirdupois) per minute psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_MINUTE_PSI = 'K80';
+
+    /**
+     * pound (avoirdupois) per second
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_SECOND = 'K81';
+
+    /**
+     * pound (avoirdupois) per second degree Fahrenheit
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_SECOND_DEGREE_FAHRENHEIT = 'K82';
+
+    /**
+     * pound (avoirdupois) per second psi
+     */
+    case REC20_POUND_AVOIRDUPOIS_PER_SECOND_PSI = 'K83';
+
+    /**
+     * pound per cubic yard
+     */
+    case REC20_POUND_PER_CUBIC_YARD = 'K84';
+
+    /**
+     * pound-force per square foot
+     */
+    case REC20_POUNDFORCE_PER_SQUARE_FOOT = 'K85';
+
+    /**
+     * pound-force per square inch degree Fahrenheit
+     */
+    case REC20_POUNDFORCE_PER_SQUARE_INCH_DEGREE_FAHRENHEIT = 'K86';
+
+    /**
+     * psi cubic inch per second
+     */
+    case REC20_PSI_CUBIC_INCH_PER_SECOND = 'K87';
+
+    /**
+     * psi litre per second
+     */
+    case REC20_PSI_LITRE_PER_SECOND = 'K88';
+
+    /**
+     * psi cubic metre per second
+     */
+    case REC20_PSI_CUBIC_METRE_PER_SECOND = 'K89';
+
+    /**
+     * psi cubic yard per second
+     */
+    case REC20_PSI_CUBIC_YARD_PER_SECOND = 'K90';
+
+    /**
+     * pound-force second per square foot
+     */
+    case REC20_POUNDFORCE_SECOND_PER_SQUARE_FOOT = 'K91';
+
+    /**
+     * pound-force second per square inch
+     */
+    case REC20_POUNDFORCE_SECOND_PER_SQUARE_INCH = 'K92';
+
+    /**
+     * reciprocal psi
+     */
+    case REC20_RECIPROCAL_PSI = 'K93';
+
+    /**
+     * quart (UK liquid) per day
+     */
+    case REC20_QUART_UK_LIQUID_PER_DAY = 'K94';
+
+    /**
+     * quart (UK liquid) per hour
+     */
+    case REC20_QUART_UK_LIQUID_PER_HOUR = 'K95';
+
+    /**
+     * quart (UK liquid) per minute
+     */
+    case REC20_QUART_UK_LIQUID_PER_MINUTE = 'K96';
+
+    /**
+     * quart (UK liquid) per second
+     */
+    case REC20_QUART_UK_LIQUID_PER_SECOND = 'K97';
+
+    /**
+     * quart (US liquid) per day
+     */
+    case REC20_QUART_US_LIQUID_PER_DAY = 'K98';
+
+    /**
+     * quart (US liquid) per hour
+     */
+    case REC20_QUART_US_LIQUID_PER_HOUR = 'K99';
+
+    /**
+     * cake
+     */
+    case REC20_CAKE = 'KA';
+
+    /**
+     * katal
+     */
+    case REC20_KATAL = 'KAT';
+
+    /**
+     * kilocharacter
+     */
+    case REC20_KILOCHARACTER = 'KB';
+
+    /**
+     * kilobar
+     */
+    case REC20_KILOBAR = 'KBA';
+
+    /**
+     * kilogram of choline chloride
+     */
+    case REC20_KILOGRAM_OF_CHOLINE_CHLORIDE = 'KCC';
+
+    /**
+     * kilogram drained net weight
+     */
+    case REC20_KILOGRAM_DRAINED_NET_WEIGHT = 'KDW';
+
+    /**
+     * kelvin
+     */
+    case REC20_KELVIN = 'KEL';
+
+    /**
+     * kilogram
+     */
+    case REC20_KILOGRAM = 'KGM';
+
+    /**
+     * kilogram per second
+     */
+    case REC20_KILOGRAM_PER_SECOND = 'KGS';
+
+    /**
+     * kilogram of hydrogen peroxide
+     */
+    case REC20_KILOGRAM_OF_HYDROGEN_PEROXIDE = 'KHY';
+
+    /**
+     * kilohertz
+     */
+    case REC20_KILOHERTZ = 'KHZ';
+
+    /**
+     * kilogram per millimetre width
+     */
+    case REC20_KILOGRAM_PER_MILLIMETRE_WIDTH = 'KI';
+
+    /**
+     * kilogram, including container
+     */
+    case REC20_KILOGRAM_INCLUDING_CONTAINER = 'KIC';
+
+    /**
+     * kilogram, including inner packaging
+     */
+    case REC20_KILOGRAM_INCLUDING_INNER_PACKAGING = 'KIP';
+
+    /**
+     * kilosegment
+     */
+    case REC20_KILOSEGMENT = 'KJ';
+
+    /**
+     * kilojoule
+     */
+    case REC20_KILOJOULE = 'KJO';
+
+    /**
+     * kilogram per metre
+     */
+    case REC20_KILOGRAM_PER_METRE = 'KL';
+
+    /**
+     * lactic dry material percentage
+     */
+    case REC20_LACTIC_DRY_MATERIAL_PERCENTAGE = 'KLK';
+
+    /**
+     * kilolux
+     */
+    case REC20_KILOLUX = 'KLX';
+
+    /**
+     * kilogram of methylamine
+     */
+    case REC20_KILOGRAM_OF_METHYLAMINE = 'KMA';
+
+    /**
+     * kilometre per hour
+     */
+    case REC20_KILOMETRE_PER_HOUR = 'KMH';
+
+    /**
+     * square kilometre
+     */
+    case REC20_SQUARE_KILOMETRE = 'KMK';
+
+    /**
+     * kilogram per cubic metre
+     */
+    case REC20_KILOGRAM_PER_CUBIC_METRE = 'KMQ';
+
+    /**
+     * kilometre
+     */
+    case REC20_KILOMETRE = 'KMT';
+
+    /**
+     * kilogram of nitrogen
+     */
+    case REC20_KILOGRAM_OF_NITROGEN = 'KNI';
+
+    /**
+     * kilonewton per square metre
+     */
+    case REC20_KILONEWTON_PER_SQUARE_METRE = 'KNM';
+
+    /**
+     * kilogram named substance
+     */
+    case REC20_KILOGRAM_NAMED_SUBSTANCE = 'KNS';
+
+    /**
+     * knot
+     */
+    case REC20_KNOT = 'KNT';
+
+    /**
+     * milliequivalence caustic potash per gram of product
+     */
+    case REC20_MILLIEQUIVALENCE_CAUSTIC_POTASH_PER_GRAM_OF_PRODUCT = 'KO';
+
+    /**
+     * kilopascal
+     */
+    case REC20_KILOPASCAL = 'KPA';
+
+    /**
+     * kilogram of potassium hydroxide (caustic potash)
+     */
+    case REC20_KILOGRAM_OF_POTASSIUM_HYDROXIDE_CAUSTIC_POTASH = 'KPH';
+
+    /**
+     * kilogram of potassium oxide
+     */
+    case REC20_KILOGRAM_OF_POTASSIUM_OXIDE = 'KPO';
+
+    /**
+     * kilogram of phosphorus pentoxide (phosphoric anhydride)
+     */
+    case REC20_KILOGRAM_OF_PHOSPHORUS_PENTOXIDE_PHOSPHORIC_ANHYDRIDE = 'KPP';
+
+    /**
+     * kiloroentgen
+     */
+    case REC20_KILOROENTGEN = 'KR';
+
+    /**
+     * kilogram of substance 90 % dry
+     */
+    case REC20_KILOGRAM_OF_SUBSTANCE_90__DRY = 'KSD';
+
+    /**
+     * kilogram of sodium hydroxide (caustic soda)
+     */
+    case REC20_KILOGRAM_OF_SODIUM_HYDROXIDE_CAUSTIC_SODA = 'KSH';
+
+    /**
+     * kit
+     */
+    case REC20_KIT = 'KT';
+
+    /**
+     * kilotonne
+     */
+    case REC20_KILOTONNE = 'KTN';
+
+    /**
+     * kilogram of uranium
+     */
+    case REC20_KILOGRAM_OF_URANIUM = 'KUR';
+
+    /**
+     * kilovolt - ampere
+     */
+    case REC20_KILOVOLT__AMPERE = 'KVA';
+
+    /**
+     * kilovar
+     */
+    case REC20_KILOVAR = 'KVR';
+
+    /**
+     * kilovolt
+     */
+    case REC20_KILOVOLT = 'KVT';
+
+    /**
+     * kilogram per millimetre
+     */
+    case REC20_KILOGRAM_PER_MILLIMETRE = 'KW';
+
+    /**
+     * kilowatt hour
+     */
+    case REC20_KILOWATT_HOUR = 'KWH';
+
+    /**
+     * Kilowatt hour per normalized cubic metre
+     */
+    case REC20_KILOWATT_HOUR_PER_NORMALIZED_CUBIC_METRE = 'KWN';
+
+    /**
+     * kilogram of tungsten trioxide
+     */
+    case REC20_KILOGRAM_OF_TUNGSTEN_TRIOXIDE = 'KWO';
+
+    /**
+     * Kilowatt hour per standard cubic metre
+     */
+    case REC20_KILOWATT_HOUR_PER_STANDARD_CUBIC_METRE = 'KWS';
+
+    /**
+     * kilowatt
+     */
+    case REC20_KILOWATT = 'KWT';
+
+    /**
+     * millilitre per kilogram
+     */
+    case REC20_MILLILITRE_PER_KILOGRAM = 'KX';
+
+    /**
+     * quart (US liquid) per minute
+     */
+    case REC20_QUART_US_LIQUID_PER_MINUTE = 'L10';
+
+    /**
+     * quart (US liquid) per second
+     */
+    case REC20_QUART_US_LIQUID_PER_SECOND = 'L11';
+
+    /**
+     * metre per second kelvin
+     */
+    case REC20_METRE_PER_SECOND_KELVIN = 'L12';
+
+    /**
+     * metre per second bar
+     */
+    case REC20_METRE_PER_SECOND_BAR = 'L13';
+
+    /**
+     * square metre hour degree Celsius per kilocalorie (international table)
+     */
+    case REC20_SQUARE_METRE_HOUR_DEGREE_CELSIUS_PER_KILOCALORIE_INTERNATIONAL_TABLE = 'L14';
+
+    /**
+     * millipascal second per kelvin
+     */
+    case REC20_MILLIPASCAL_SECOND_PER_KELVIN = 'L15';
+
+    /**
+     * millipascal second per bar
+     */
+    case REC20_MILLIPASCAL_SECOND_PER_BAR = 'L16';
+
+    /**
+     * milligram per cubic metre kelvin
+     */
+    case REC20_MILLIGRAM_PER_CUBIC_METRE_KELVIN = 'L17';
+
+    /**
+     * milligram per cubic metre bar
+     */
+    case REC20_MILLIGRAM_PER_CUBIC_METRE_BAR = 'L18';
+
+    /**
+     * millilitre per litre
+     */
+    case REC20_MILLILITRE_PER_LITRE = 'L19';
+
+    /**
+     * litre per minute
+     */
+    case REC20_LITRE_PER_MINUTE = 'L2';
+
+    /**
+     * reciprocal cubic millimetre
+     */
+    case REC20_RECIPROCAL_CUBIC_MILLIMETRE = 'L20';
+
+    /**
+     * cubic millimetre per cubic metre
+     */
+    case REC20_CUBIC_MILLIMETRE_PER_CUBIC_METRE = 'L21';
+
+    /**
+     * mole per hour
+     */
+    case REC20_MOLE_PER_HOUR = 'L23';
+
+    /**
+     * mole per kilogram kelvin
+     */
+    case REC20_MOLE_PER_KILOGRAM_KELVIN = 'L24';
+
+    /**
+     * mole per kilogram bar
+     */
+    case REC20_MOLE_PER_KILOGRAM_BAR = 'L25';
+
+    /**
+     * mole per litre kelvin
+     */
+    case REC20_MOLE_PER_LITRE_KELVIN = 'L26';
+
+    /**
+     * mole per litre bar
+     */
+    case REC20_MOLE_PER_LITRE_BAR = 'L27';
+
+    /**
+     * mole per cubic metre kelvin
+     */
+    case REC20_MOLE_PER_CUBIC_METRE_KELVIN = 'L28';
+
+    /**
+     * mole per cubic metre bar
+     */
+    case REC20_MOLE_PER_CUBIC_METRE_BAR = 'L29';
+
+    /**
+     * mole per minute
+     */
+    case REC20_MOLE_PER_MINUTE = 'L30';
+
+    /**
+     * milliroentgen aequivalent men
+     */
+    case REC20_MILLIROENTGEN_AEQUIVALENT_MEN = 'L31';
+
+    /**
+     * nanogram per kilogram
+     */
+    case REC20_NANOGRAM_PER_KILOGRAM = 'L32';
+
+    /**
+     * ounce (avoirdupois) per day
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_DAY = 'L33';
+
+    /**
+     * ounce (avoirdupois) per hour
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_HOUR = 'L34';
+
+    /**
+     * ounce (avoirdupois) per minute
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_MINUTE = 'L35';
+
+    /**
+     * ounce (avoirdupois) per second
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_SECOND = 'L36';
+
+    /**
+     * ounce (avoirdupois) per gallon (UK)
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_GALLON_UK = 'L37';
+
+    /**
+     * ounce (avoirdupois) per gallon (US)
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_GALLON_US = 'L38';
+
+    /**
+     * ounce (avoirdupois) per cubic inch
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_CUBIC_INCH = 'L39';
+
+    /**
+     * ounce (avoirdupois)-force
+     */
+    case REC20_OUNCE_AVOIRDUPOISFORCE = 'L40';
+
+    /**
+     * ounce (avoirdupois)-force inch
+     */
+    case REC20_OUNCE_AVOIRDUPOISFORCE_INCH = 'L41';
+
+    /**
+     * picosiemens per metre
+     */
+    case REC20_PICOSIEMENS_PER_METRE = 'L42';
+
+    /**
+     * peck (UK)
+     */
+    case REC20_PECK_UK = 'L43';
+
+    /**
+     * peck (UK) per day
+     */
+    case REC20_PECK_UK_PER_DAY = 'L44';
+
+    /**
+     * peck (UK) per hour
+     */
+    case REC20_PECK_UK_PER_HOUR = 'L45';
+
+    /**
+     * peck (UK) per minute
+     */
+    case REC20_PECK_UK_PER_MINUTE = 'L46';
+
+    /**
+     * peck (UK) per second
+     */
+    case REC20_PECK_UK_PER_SECOND = 'L47';
+
+    /**
+     * peck (US dry) per day
+     */
+    case REC20_PECK_US_DRY_PER_DAY = 'L48';
+
+    /**
+     * peck (US dry) per hour
+     */
+    case REC20_PECK_US_DRY_PER_HOUR = 'L49';
+
+    /**
+     * peck (US dry) per minute
+     */
+    case REC20_PECK_US_DRY_PER_MINUTE = 'L50';
+
+    /**
+     * peck (US dry) per second
+     */
+    case REC20_PECK_US_DRY_PER_SECOND = 'L51';
+
+    /**
+     * psi per psi
+     */
+    case REC20_PSI_PER_PSI = 'L52';
+
+    /**
+     * pint (UK) per day
+     */
+    case REC20_PINT_UK_PER_DAY = 'L53';
+
+    /**
+     * pint (UK) per hour
+     */
+    case REC20_PINT_UK_PER_HOUR = 'L54';
+
+    /**
+     * pint (UK) per minute
+     */
+    case REC20_PINT_UK_PER_MINUTE = 'L55';
+
+    /**
+     * pint (UK) per second
+     */
+    case REC20_PINT_UK_PER_SECOND = 'L56';
+
+    /**
+     * pint (US liquid) per day
+     */
+    case REC20_PINT_US_LIQUID_PER_DAY = 'L57';
+
+    /**
+     * pint (US liquid) per hour
+     */
+    case REC20_PINT_US_LIQUID_PER_HOUR = 'L58';
+
+    /**
+     * pint (US liquid) per minute
+     */
+    case REC20_PINT_US_LIQUID_PER_MINUTE = 'L59';
+
+    /**
+     * pint (US liquid) per second
+     */
+    case REC20_PINT_US_LIQUID_PER_SECOND = 'L60';
+
+    /**
+     * slug per day
+     */
+    case REC20_SLUG_PER_DAY = 'L63';
+
+    /**
+     * slug per foot second
+     */
+    case REC20_SLUG_PER_FOOT_SECOND = 'L64';
+
+    /**
+     * slug per cubic foot
+     */
+    case REC20_SLUG_PER_CUBIC_FOOT = 'L65';
+
+    /**
+     * slug per hour
+     */
+    case REC20_SLUG_PER_HOUR = 'L66';
+
+    /**
+     * slug per minute
+     */
+    case REC20_SLUG_PER_MINUTE = 'L67';
+
+    /**
+     * slug per second
+     */
+    case REC20_SLUG_PER_SECOND = 'L68';
+
+    /**
+     * tonne per kelvin
+     */
+    case REC20_TONNE_PER_KELVIN = 'L69';
+
+    /**
+     * tonne per bar
+     */
+    case REC20_TONNE_PER_BAR = 'L70';
+
+    /**
+     * tonne per day
+     */
+    case REC20_TONNE_PER_DAY = 'L71';
+
+    /**
+     * tonne per day kelvin
+     */
+    case REC20_TONNE_PER_DAY_KELVIN = 'L72';
+
+    /**
+     * tonne per day bar
+     */
+    case REC20_TONNE_PER_DAY_BAR = 'L73';
+
+    /**
+     * tonne per hour kelvin
+     */
+    case REC20_TONNE_PER_HOUR_KELVIN = 'L74';
+
+    /**
+     * tonne per hour bar
+     */
+    case REC20_TONNE_PER_HOUR_BAR = 'L75';
+
+    /**
+     * tonne per cubic metre kelvin
+     */
+    case REC20_TONNE_PER_CUBIC_METRE_KELVIN = 'L76';
+
+    /**
+     * tonne per cubic metre bar
+     */
+    case REC20_TONNE_PER_CUBIC_METRE_BAR = 'L77';
+
+    /**
+     * tonne per minute
+     */
+    case REC20_TONNE_PER_MINUTE = 'L78';
+
+    /**
+     * tonne per minute kelvin
+     */
+    case REC20_TONNE_PER_MINUTE_KELVIN = 'L79';
+
+    /**
+     * tonne per minute bar
+     */
+    case REC20_TONNE_PER_MINUTE_BAR = 'L80';
+
+    /**
+     * tonne per second
+     */
+    case REC20_TONNE_PER_SECOND = 'L81';
+
+    /**
+     * tonne per second kelvin
+     */
+    case REC20_TONNE_PER_SECOND_KELVIN = 'L82';
+
+    /**
+     * tonne per second bar
+     */
+    case REC20_TONNE_PER_SECOND_BAR = 'L83';
+
+    /**
+     * ton (UK shipping)
+     */
+    case REC20_TON_UK_SHIPPING = 'L84';
+
+    /**
+     * ton long per day
+     */
+    case REC20_TON_LONG_PER_DAY = 'L85';
+
+    /**
+     * ton (US shipping)
+     */
+    case REC20_TON_US_SHIPPING = 'L86';
+
+    /**
+     * ton short per degree Fahrenheit
+     */
+    case REC20_TON_SHORT_PER_DEGREE_FAHRENHEIT = 'L87';
+
+    /**
+     * ton short per day
+     */
+    case REC20_TON_SHORT_PER_DAY = 'L88';
+
+    /**
+     * ton short per hour degree Fahrenheit
+     */
+    case REC20_TON_SHORT_PER_HOUR_DEGREE_FAHRENHEIT = 'L89';
+
+    /**
+     * ton short per hour psi
+     */
+    case REC20_TON_SHORT_PER_HOUR_PSI = 'L90';
+
+    /**
+     * ton short per psi
+     */
+    case REC20_TON_SHORT_PER_PSI = 'L91';
+
+    /**
+     * ton (UK long) per cubic yard
+     */
+    case REC20_TON_UK_LONG_PER_CUBIC_YARD = 'L92';
+
+    /**
+     * ton (US short) per cubic yard
+     */
+    case REC20_TON_US_SHORT_PER_CUBIC_YARD = 'L93';
+
+    /**
+     * ton-force (US short)
+     */
+    case REC20_TONFORCE_US_SHORT = 'L94';
+
+    /**
+     * common year
+     */
+    case REC20_COMMON_YEAR = 'L95';
+
+    /**
+     * sidereal year
+     */
+    case REC20_SIDEREAL_YEAR = 'L96';
+
+    /**
+     * yard per degree Fahrenheit
+     */
+    case REC20_YARD_PER_DEGREE_FAHRENHEIT = 'L98';
+
+    /**
+     * yard per psi
+     */
+    case REC20_YARD_PER_PSI = 'L99';
+
+    /**
+     * pound per cubic inch
+     */
+    case REC20_POUND_PER_CUBIC_INCH = 'LA';
+
+    /**
+     * lactose excess percentage
+     */
+    case REC20_LACTOSE_EXCESS_PERCENTAGE = 'LAC';
+
+    /**
+     * pound
+     */
+    case REC20_POUND = 'LBR';
+
+    /**
+     * troy pound (US)
+     */
+    case REC20_TROY_POUND_US = 'LBT';
+
+    /**
+     * litre per day
+     */
+    case REC20_LITRE_PER_DAY = 'LD';
+
+    /**
+     * leaf
+     */
+    case REC20_LEAF = 'LEF';
+
+    /**
+     * linear foot
+     */
+    case REC20_LINEAR_FOOT = 'LF';
+
+    /**
+     * labour hour
+     */
+    case REC20_LABOUR_HOUR = 'LH';
+
+    /**
+     * link
+     */
+    case REC20_LINK = 'LK';
+
+    /**
+     * linear metre
+     */
+    case REC20_LINEAR_METRE = 'LM';
+
+    /**
+     * length
+     */
+    case REC20_LENGTH = 'LN';
+
+    /**
+     * lot  [unit of procurement]
+     */
+    case REC20_LOT__UNIT_OF_PROCUREMENT = 'LO';
+
+    /**
+     * liquid pound
+     */
+    case REC20_LIQUID_POUND = 'LP';
+
+    /**
+     * litre of pure alcohol
+     */
+    case REC20_LITRE_OF_PURE_ALCOHOL = 'LPA';
+
+    /**
+     * layer
+     */
+    case REC20_LAYER = 'LR';
+
+    /**
+     * lump sum
+     */
+    case REC20_LUMP_SUM = 'LS';
+
+    /**
+     * ton (UK) or long ton (US)
+     */
+    case REC20_TON_UK_OR_LONG_TON_US = 'LTN';
+
+    /**
+     * litre
+     */
+    case REC20_LITRE = 'LTR';
+
+    /**
+     * metric ton, lubricating oil
+     */
+    case REC20_METRIC_TON_LUBRICATING_OIL = 'LUB';
+
+    /**
+     * lumen
+     */
+    case REC20_LUMEN = 'LUM';
+
+    /**
+     * lux
+     */
+    case REC20_LUX = 'LUX';
+
+    /**
+     * linear yard
+     */
+    case REC20_LINEAR_YARD = 'LY';
+
+    /**
+     * milligram per litre
+     */
+    case REC20_MILLIGRAM_PER_LITRE = 'M1';
+
+    /**
+     * reciprocal cubic yard
+     */
+    case REC20_RECIPROCAL_CUBIC_YARD = 'M10';
+
+    /**
+     * cubic yard per degree Fahrenheit
+     */
+    case REC20_CUBIC_YARD_PER_DEGREE_FAHRENHEIT = 'M11';
+
+    /**
+     * cubic yard per day
+     */
+    case REC20_CUBIC_YARD_PER_DAY = 'M12';
+
+    /**
+     * cubic yard per hour
+     */
+    case REC20_CUBIC_YARD_PER_HOUR = 'M13';
+
+    /**
+     * cubic yard per psi
+     */
+    case REC20_CUBIC_YARD_PER_PSI = 'M14';
+
+    /**
+     * cubic yard per minute
+     */
+    case REC20_CUBIC_YARD_PER_MINUTE = 'M15';
+
+    /**
+     * cubic yard per second
+     */
+    case REC20_CUBIC_YARD_PER_SECOND = 'M16';
+
+    /**
+     * kilohertz metre
+     */
+    case REC20_KILOHERTZ_METRE = 'M17';
+
+    /**
+     * gigahertz metre
+     */
+    case REC20_GIGAHERTZ_METRE = 'M18';
+
+    /**
+     * Beaufort
+     */
+    case REC20_BEAUFORT = 'M19';
+
+    /**
+     * reciprocal megakelvin or megakelvin to the power minus one
+     */
+    case REC20_RECIPROCAL_MEGAKELVIN_OR_MEGAKELVIN_TO_THE_POWER_MINUS_ONE = 'M20';
+
+    /**
+     * reciprocal kilovolt - ampere reciprocal hour
+     */
+    case REC20_RECIPROCAL_KILOVOLT__AMPERE_RECIPROCAL_HOUR = 'M21';
+
+    /**
+     * millilitre per square centimetre minute
+     */
+    case REC20_MILLILITRE_PER_SQUARE_CENTIMETRE_MINUTE = 'M22';
+
+    /**
+     * newton per centimetre
+     */
+    case REC20_NEWTON_PER_CENTIMETRE = 'M23';
+
+    /**
+     * ohm kilometre
+     */
+    case REC20_OHM_KILOMETRE = 'M24';
+
+    /**
+     * percent per degree Celsius
+     */
+    case REC20_PERCENT_PER_DEGREE_CELSIUS = 'M25';
+
+    /**
+     * gigaohm per metre
+     */
+    case REC20_GIGAOHM_PER_METRE = 'M26';
+
+    /**
+     * megahertz metre
+     */
+    case REC20_MEGAHERTZ_METRE = 'M27';
+
+    /**
+     * kilogram per kilogram
+     */
+    case REC20_KILOGRAM_PER_KILOGRAM = 'M29';
+
+    /**
+     * reciprocal volt - ampere reciprocal second
+     */
+    case REC20_RECIPROCAL_VOLT__AMPERE_RECIPROCAL_SECOND = 'M30';
+
+    /**
+     * kilogram per kilometre
+     */
+    case REC20_KILOGRAM_PER_KILOMETRE = 'M31';
+
+    /**
+     * pascal second per litre
+     */
+    case REC20_PASCAL_SECOND_PER_LITRE = 'M32';
+
+    /**
+     * millimole per litre
+     */
+    case REC20_MILLIMOLE_PER_LITRE = 'M33';
+
+    /**
+     * newton metre per square metre
+     */
+    case REC20_NEWTON_METRE_PER_SQUARE_METRE = 'M34';
+
+    /**
+     * millivolt - ampere
+     */
+    case REC20_MILLIVOLT__AMPERE = 'M35';
+
+    /**
+     * 30-day month
+     */
+    case REC20_30DAY_MONTH = 'M36';
+
+    /**
+     * actual/360
+     */
+    case REC20_ACTUAL_360 = 'M37';
+
+    /**
+     * kilometre per second squared
+     */
+    case REC20_KILOMETRE_PER_SECOND_SQUARED = 'M38';
+
+    /**
+     * centimetre per second squared
+     */
+    case REC20_CENTIMETRE_PER_SECOND_SQUARED = 'M39';
+
+    /**
+     * monetary value
+     */
+    case REC20_MONETARY_VALUE = 'M4';
+
+    /**
+     * yard per second squared
+     */
+    case REC20_YARD_PER_SECOND_SQUARED = 'M40';
+
+    /**
+     * millimetre per second squared
+     */
+    case REC20_MILLIMETRE_PER_SECOND_SQUARED = 'M41';
+
+    /**
+     * mile (statute mile) per second squared
+     */
+    case REC20_MILE_STATUTE_MILE_PER_SECOND_SQUARED = 'M42';
+
+    /**
+     * mil
+     */
+    case REC20_MIL = 'M43';
+
+    /**
+     * revolution
+     */
+    case REC20_REVOLUTION = 'M44';
+
+    /**
+     * degree [unit of angle] per second squared
+     */
+    case REC20_DEGREE_UNIT_OF_ANGLE_PER_SECOND_SQUARED = 'M45';
+
+    /**
+     * revolution per minute
+     */
+    case REC20_REVOLUTION_PER_MINUTE = 'M46';
+
+    /**
+     * circular mil
+     */
+    case REC20_CIRCULAR_MIL = 'M47';
+
+    /**
+     * square mile (based on U.S. survey foot)
+     */
+    case REC20_SQUARE_MILE_BASED_ON_US_SURVEY_FOOT = 'M48';
+
+    /**
+     * chain (based on U.S. survey foot)
+     */
+    case REC20_CHAIN_BASED_ON_US_SURVEY_FOOT = 'M49';
+
+    /**
+     * microcurie
+     */
+    case REC20_MICROCURIE = 'M5';
+
+    /**
+     * furlong
+     */
+    case REC20_FURLONG = 'M50';
+
+    /**
+     * foot (U.S. survey)
+     */
+    case REC20_FOOT_US_SURVEY = 'M51';
+
+    /**
+     * mile (based on U.S. survey foot)
+     */
+    case REC20_MILE_BASED_ON_US_SURVEY_FOOT = 'M52';
+
+    /**
+     * metre per pascal
+     */
+    case REC20_METRE_PER_PASCAL = 'M53';
+
+    /**
+     * metre per radiant
+     */
+    case REC20_METRE_PER_RADIANT = 'M55';
+
+    /**
+     * shake
+     */
+    case REC20_SHAKE = 'M56';
+
+    /**
+     * mile per minute
+     */
+    case REC20_MILE_PER_MINUTE = 'M57';
+
+    /**
+     * mile per second
+     */
+    case REC20_MILE_PER_SECOND = 'M58';
+
+    /**
+     * metre per second pascal
+     */
+    case REC20_METRE_PER_SECOND_PASCAL = 'M59';
+
+    /**
+     * metre per hour
+     */
+    case REC20_METRE_PER_HOUR = 'M60';
+
+    /**
+     * inch per year
+     */
+    case REC20_INCH_PER_YEAR = 'M61';
+
+    /**
+     * kilometre per second
+     */
+    case REC20_KILOMETRE_PER_SECOND = 'M62';
+
+    /**
+     * inch per minute
+     */
+    case REC20_INCH_PER_MINUTE = 'M63';
+
+    /**
+     * yard per second
+     */
+    case REC20_YARD_PER_SECOND = 'M64';
+
+    /**
+     * yard per minute
+     */
+    case REC20_YARD_PER_MINUTE = 'M65';
+
+    /**
+     * yard per hour
+     */
+    case REC20_YARD_PER_HOUR = 'M66';
+
+    /**
+     * acre-foot (based on U.S. survey foot)
+     */
+    case REC20_ACREFOOT_BASED_ON_US_SURVEY_FOOT = 'M67';
+
+    /**
+     * cord (128 ft3)
+     */
+    case REC20_CORD_128_FT3 = 'M68';
+
+    /**
+     * cubic mile (UK statute)
+     */
+    case REC20_CUBIC_MILE_UK_STATUTE = 'M69';
+
+    /**
+     * micro-inch
+     */
+    case REC20_MICROINCH = 'M7';
+
+    /**
+     * ton, register
+     */
+    case REC20_TON_REGISTER = 'M70';
+
+    /**
+     * cubic metre per pascal
+     */
+    case REC20_CUBIC_METRE_PER_PASCAL = 'M71';
+
+    /**
+     * bel
+     */
+    case REC20_BEL = 'M72';
+
+    /**
+     * kilogram per cubic metre pascal
+     */
+    case REC20_KILOGRAM_PER_CUBIC_METRE_PASCAL = 'M73';
+
+    /**
+     * kilogram per pascal
+     */
+    case REC20_KILOGRAM_PER_PASCAL = 'M74';
+
+    /**
+     * kilopound-force
+     */
+    case REC20_KILOPOUNDFORCE = 'M75';
+
+    /**
+     * poundal
+     */
+    case REC20_POUNDAL = 'M76';
+
+    /**
+     * kilogram metre per second squared
+     */
+    case REC20_KILOGRAM_METRE_PER_SECOND_SQUARED = 'M77';
+
+    /**
+     * pond
+     */
+    case REC20_POND = 'M78';
+
+    /**
+     * square foot per hour
+     */
+    case REC20_SQUARE_FOOT_PER_HOUR = 'M79';
+
+    /**
+     * stokes per pascal
+     */
+    case REC20_STOKES_PER_PASCAL = 'M80';
+
+    /**
+     * square centimetre per second
+     */
+    case REC20_SQUARE_CENTIMETRE_PER_SECOND = 'M81';
+
+    /**
+     * square metre per second pascal
+     */
+    case REC20_SQUARE_METRE_PER_SECOND_PASCAL = 'M82';
+
+    /**
+     * denier
+     */
+    case REC20_DENIER = 'M83';
+
+    /**
+     * pound per yard
+     */
+    case REC20_POUND_PER_YARD = 'M84';
+
+    /**
+     * ton, assay
+     */
+    case REC20_TON_ASSAY = 'M85';
+
+    /**
+     * pfund
+     */
+    case REC20_PFUND = 'M86';
+
+    /**
+     * kilogram per second pascal
+     */
+    case REC20_KILOGRAM_PER_SECOND_PASCAL = 'M87';
+
+    /**
+     * tonne per month
+     */
+    case REC20_TONNE_PER_MONTH = 'M88';
+
+    /**
+     * tonne per year
+     */
+    case REC20_TONNE_PER_YEAR = 'M89';
+
+    /**
+     * million Btu per 1000 cubic foot
+     */
+    case REC20_MILLION_BTU_PER_1000_CUBIC_FOOT = 'M9';
+
+    /**
+     * kilopound per hour
+     */
+    case REC20_KILOPOUND_PER_HOUR = 'M90';
+
+    /**
+     * pound per pound
+     */
+    case REC20_POUND_PER_POUND = 'M91';
+
+    /**
+     * pound-force foot
+     */
+    case REC20_POUNDFORCE_FOOT = 'M92';
+
+    /**
+     * newton metre per radian
+     */
+    case REC20_NEWTON_METRE_PER_RADIAN = 'M93';
+
+    /**
+     * kilogram metre
+     */
+    case REC20_KILOGRAM_METRE = 'M94';
+
+    /**
+     * poundal foot
+     */
+    case REC20_POUNDAL_FOOT = 'M95';
+
+    /**
+     * poundal inch
+     */
+    case REC20_POUNDAL_INCH = 'M96';
+
+    /**
+     * dyne metre
+     */
+    case REC20_DYNE_METRE = 'M97';
+
+    /**
+     * kilogram centimetre per second
+     */
+    case REC20_KILOGRAM_CENTIMETRE_PER_SECOND = 'M98';
+
+    /**
+     * gram centimetre per second
+     */
+    case REC20_GRAM_CENTIMETRE_PER_SECOND = 'M99';
+
+    /**
+     * megavolt ampere reactive hour
+     */
+    case REC20_MEGAVOLT_AMPERE_REACTIVE_HOUR = 'MAH';
+
+    /**
+     * megalitre
+     */
+    case REC20_MEGALITRE = 'MAL';
+
+    /**
+     * megametre
+     */
+    case REC20_MEGAMETRE = 'MAM';
+
+    /**
+     * megavar
+     */
+    case REC20_MEGAVAR = 'MAR';
+
+    /**
+     * megawatt
+     */
+    case REC20_MEGAWATT = 'MAW';
+
+    /**
+     * thousand standard brick equivalent
+     */
+    case REC20_THOUSAND_STANDARD_BRICK_EQUIVALENT = 'MBE';
+
+    /**
+     * thousand board foot
+     */
+    case REC20_THOUSAND_BOARD_FOOT = 'MBF';
+
+    /**
+     * millibar
+     */
+    case REC20_MILLIBAR = 'MBR';
+
+    /**
+     * microgram
+     */
+    case REC20_MICROGRAM = 'MC';
+
+    /**
+     * millicurie
+     */
+    case REC20_MILLICURIE = 'MCU';
+
+    /**
+     * air dry metric ton
+     */
+    case REC20_AIR_DRY_METRIC_TON = 'MD';
+
+    /**
+     * milligram
+     */
+    case REC20_MILLIGRAM = 'MGM';
+
+    /**
+     * megahertz
+     */
+    case REC20_MEGAHERTZ = 'MHZ';
+
+    /**
+     * square mile (statute mile)
+     */
+    case REC20_SQUARE_MILE_STATUTE_MILE = 'MIK';
+
+    /**
+     * thousand
+     */
+    case REC20_THOUSAND = 'MIL';
+
+    /**
+     * minute [unit of time]
+     */
+    case REC20_MINUTE_UNIT_OF_TIME = 'MIN';
+
+    /**
+     * million
+     */
+    case REC20_MILLION = 'MIO';
+
+    /**
+     * million international unit
+     */
+    case REC20_MILLION_INTERNATIONAL_UNIT = 'MIU';
+
+    /**
+     * milliard
+     */
+    case REC20_MILLIARD = 'MLD';
+
+    /**
+     * millilitre
+     */
+    case REC20_MILLILITRE = 'MLT';
+
+    /**
+     * square millimetre
+     */
+    case REC20_SQUARE_MILLIMETRE = 'MMK';
+
+    /**
+     * cubic millimetre
+     */
+    case REC20_CUBIC_MILLIMETRE = 'MMQ';
+
+    /**
+     * millimetre
+     */
+    case REC20_MILLIMETRE = 'MMT';
+
+    /**
+     * kilogram, dry weight
+     */
+    case REC20_KILOGRAM_DRY_WEIGHT = 'MND';
+
+    /**
+     * month
+     */
+    case REC20_MONTH = 'MON';
+
+    /**
+     * megapascal
+     */
+    case REC20_MEGAPASCAL = 'MPA';
+
+    /**
+     * cubic metre per hour
+     */
+    case REC20_CUBIC_METRE_PER_HOUR = 'MQH';
+
+    /**
+     * cubic metre per second
+     */
+    case REC20_CUBIC_METRE_PER_SECOND = 'MQS';
+
+    /**
+     * metre per second squared
+     */
+    case REC20_METRE_PER_SECOND_SQUARED = 'MSK';
+
+    /**
+     * square metre
+     */
+    case REC20_SQUARE_METRE = 'MTK';
+
+    /**
+     * cubic metre
+     */
+    case REC20_CUBIC_METRE = 'MTQ';
+
+    /**
+     * metre
+     */
+    case REC20_METRE = 'MTR';
+
+    /**
+     * metre per second
+     */
+    case REC20_METRE_PER_SECOND = 'MTS';
+
+    /**
+     * megavolt - ampere
+     */
+    case REC20_MEGAVOLT__AMPERE = 'MVA';
+
+    /**
+     * megawatt hour (1000Â kW.h)
+     */
+    case REC20_MEGAWATT_HOUR_1000KWH = 'MWH';
+
+    /**
+     * pen calorie
+     */
+    case REC20_PEN_CALORIE = 'N1';
+
+    /**
+     * pound foot per second
+     */
+    case REC20_POUND_FOOT_PER_SECOND = 'N10';
+
+    /**
+     * pound inch per second
+     */
+    case REC20_POUND_INCH_PER_SECOND = 'N11';
+
+    /**
+     * Pferdestaerke
+     */
+    case REC20_PFERDESTAERKE = 'N12';
+
+    /**
+     * centimetre of mercury (0 ÂºC)
+     */
+    case REC20_CENTIMETRE_OF_MERCURY_0_C = 'N13';
+
+    /**
+     * centimetre of water (4 ÂºC)
+     */
+    case REC20_CENTIMETRE_OF_WATER_4_C = 'N14';
+
+    /**
+     * foot of water (39.2 ÂºF)
+     */
+    case REC20_FOOT_OF_WATER_392_F = 'N15';
+
+    /**
+     * inch of mercury (32 ÂºF)
+     */
+    case REC20_INCH_OF_MERCURY_32_F = 'N16';
+
+    /**
+     * inch of mercury (60 ÂºF)
+     */
+    case REC20_INCH_OF_MERCURY_60_F = 'N17';
+
+    /**
+     * inch of water (39.2 ÂºF)
+     */
+    case REC20_INCH_OF_WATER_392_F = 'N18';
+
+    /**
+     * inch of water (60 ÂºF)
+     */
+    case REC20_INCH_OF_WATER_60_F = 'N19';
+
+    /**
+     * kip per square inch
+     */
+    case REC20_KIP_PER_SQUARE_INCH = 'N20';
+
+    /**
+     * poundal per square foot
+     */
+    case REC20_POUNDAL_PER_SQUARE_FOOT = 'N21';
+
+    /**
+     * ounce (avoirdupois) per square inch
+     */
+    case REC20_OUNCE_AVOIRDUPOIS_PER_SQUARE_INCH = 'N22';
+
+    /**
+     * conventional metre of water
+     */
+    case REC20_CONVENTIONAL_METRE_OF_WATER = 'N23';
+
+    /**
+     * gram per square millimetre
+     */
+    case REC20_GRAM_PER_SQUARE_MILLIMETRE = 'N24';
+
+    /**
+     * pound per square yard
+     */
+    case REC20_POUND_PER_SQUARE_YARD = 'N25';
+
+    /**
+     * poundal per square inch
+     */
+    case REC20_POUNDAL_PER_SQUARE_INCH = 'N26';
+
+    /**
+     * foot to the fourth power
+     */
+    case REC20_FOOT_TO_THE_FOURTH_POWER = 'N27';
+
+    /**
+     * cubic decimetre per kilogram
+     */
+    case REC20_CUBIC_DECIMETRE_PER_KILOGRAM = 'N28';
+
+    /**
+     * cubic foot per pound
+     */
+    case REC20_CUBIC_FOOT_PER_POUND = 'N29';
+
+    /**
+     * print point
+     */
+    case REC20_PRINT_POINT = 'N3';
+
+    /**
+     * cubic inch per pound
+     */
+    case REC20_CUBIC_INCH_PER_POUND = 'N30';
+
+    /**
+     * kilonewton per metre
+     */
+    case REC20_KILONEWTON_PER_METRE = 'N31';
+
+    /**
+     * poundal per inch
+     */
+    case REC20_POUNDAL_PER_INCH = 'N32';
+
+    /**
+     * pound-force per yard
+     */
+    case REC20_POUNDFORCE_PER_YARD = 'N33';
+
+    /**
+     * poundal second per square foot
+     */
+    case REC20_POUNDAL_SECOND_PER_SQUARE_FOOT = 'N34';
+
+    /**
+     * poise per pascal
+     */
+    case REC20_POISE_PER_PASCAL = 'N35';
+
+    /**
+     * newton second per square metre
+     */
+    case REC20_NEWTON_SECOND_PER_SQUARE_METRE = 'N36';
+
+    /**
+     * kilogram per metre second
+     */
+    case REC20_KILOGRAM_PER_METRE_SECOND = 'N37';
+
+    /**
+     * kilogram per metre minute
+     */
+    case REC20_KILOGRAM_PER_METRE_MINUTE = 'N38';
+
+    /**
+     * kilogram per metre day
+     */
+    case REC20_KILOGRAM_PER_METRE_DAY = 'N39';
+
+    /**
+     * kilogram per metre hour
+     */
+    case REC20_KILOGRAM_PER_METRE_HOUR = 'N40';
+
+    /**
+     * gram per centimetre second
+     */
+    case REC20_GRAM_PER_CENTIMETRE_SECOND = 'N41';
+
+    /**
+     * poundal second per square inch
+     */
+    case REC20_POUNDAL_SECOND_PER_SQUARE_INCH = 'N42';
+
+    /**
+     * pound per foot minute
+     */
+    case REC20_POUND_PER_FOOT_MINUTE = 'N43';
+
+    /**
+     * pound per foot day
+     */
+    case REC20_POUND_PER_FOOT_DAY = 'N44';
+
+    /**
+     * cubic metre per second pascal
+     */
+    case REC20_CUBIC_METRE_PER_SECOND_PASCAL = 'N45';
+
+    /**
+     * foot poundal
+     */
+    case REC20_FOOT_POUNDAL = 'N46';
+
+    /**
+     * inch poundal
+     */
+    case REC20_INCH_POUNDAL = 'N47';
+
+    /**
+     * watt per square centimetre
+     */
+    case REC20_WATT_PER_SQUARE_CENTIMETRE = 'N48';
+
+    /**
+     * watt per square inch
+     */
+    case REC20_WATT_PER_SQUARE_INCH = 'N49';
+
+    /**
+     * British thermal unit (international table) per square foot hour
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SQUARE_FOOT_HOUR = 'N50';
+
+    /**
+     * British thermal unit (thermochemical) per square foot hour
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SQUARE_FOOT_HOUR = 'N51';
+
+    /**
+     * British thermal unit (thermochemical) per square foot minute
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SQUARE_FOOT_MINUTE = 'N52';
+
+    /**
+     * British thermal unit (international table) per square foot second
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SQUARE_FOOT_SECOND = 'N53';
+
+    /**
+     * British thermal unit (thermochemical) per square foot second
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SQUARE_FOOT_SECOND = 'N54';
+
+    /**
+     * British thermal unit (international table) per square inch second
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SQUARE_INCH_SECOND = 'N55';
+
+    /**
+     * calorie (thermochemical) per square centimetre minute
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_SQUARE_CENTIMETRE_MINUTE = 'N56';
+
+    /**
+     * calorie (thermochemical) per square centimetre second
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_SQUARE_CENTIMETRE_SECOND = 'N57';
+
+    /**
+     * British thermal unit (international table) per cubic foot
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_CUBIC_FOOT = 'N58';
+
+    /**
+     * British thermal unit (thermochemical) per cubic foot
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_CUBIC_FOOT = 'N59';
+
+    /**
+     * British thermal unit (international table) per degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_DEGREE_FAHRENHEIT = 'N60';
+
+    /**
+     * British thermal unit (thermochemical) per degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_DEGREE_FAHRENHEIT = 'N61';
+
+    /**
+     * British thermal unit (international table) per degree Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_DEGREE_RANKINE = 'N62';
+
+    /**
+     * British thermal unit (thermochemical) per degree Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_DEGREE_RANKINE = 'N63';
+
+    /**
+     * British thermal unit (thermochemical) per pound degree Rankine
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_POUND_DEGREE_RANKINE = 'N64';
+
+    /**
+     * kilocalorie (international table) per gram kelvin
+     */
+    case REC20_KILOCALORIE_INTERNATIONAL_TABLE_PER_GRAM_KELVIN = 'N65';
+
+    /**
+     * British thermal unit (39 ÂºF)
+     */
+    case REC20_BRITISH_THERMAL_UNIT_39_F = 'N66';
+
+    /**
+     * British thermal unit (59 ÂºF)
+     */
+    case REC20_BRITISH_THERMAL_UNIT_59_F = 'N67';
+
+    /**
+     * British thermal unit (60 ÂºF)
+     */
+    case REC20_BRITISH_THERMAL_UNIT_60_F = 'N68';
+
+    /**
+     * calorie (20 ÂºC)
+     */
+    case REC20_CALORIE_20_C = 'N69';
+
+    /**
+     * quad (1015 BtuIT)
+     */
+    case REC20_QUAD_1015_BTUIT = 'N70';
+
+    /**
+     * therm (EC)
+     */
+    case REC20_THERM_EC = 'N71';
+
+    /**
+     * therm (U.S.)
+     */
+    case REC20_THERM_US = 'N72';
+
+    /**
+     * British thermal unit (thermochemical) per pound
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_POUND = 'N73';
+
+    /**
+     * British thermal unit (international table) per hour square foot degree
+     * Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_HOUR_SQUARE_FOOT_DEGREE_FAHRENHEIT = 'N74';
+
+    /**
+     * British thermal unit (thermochemical) per hour square foot degree
+     * Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_HOUR_SQUARE_FOOT_DEGREE_FAHRENHEIT = 'N75';
+
+    /**
+     * British thermal unit (international table) per second square foot
+     * degree Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SECOND_SQUARE_FOOT_DEGREE_FAHRENHEIT = 'N76';
+
+    /**
+     * British thermal unit (thermochemical) per second square foot degree
+     * Fahrenheit
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SECOND_SQUARE_FOOT_DEGREE_FAHRENHEIT = 'N77';
+
+    /**
+     * kilowatt per square metre kelvin
+     */
+    case REC20_KILOWATT_PER_SQUARE_METRE_KELVIN = 'N78';
+
+    /**
+     * kelvin per pascal
+     */
+    case REC20_KELVIN_PER_PASCAL = 'N79';
+
+    /**
+     * watt per metre degree Celsius
+     */
+    case REC20_WATT_PER_METRE_DEGREE_CELSIUS = 'N80';
+
+    /**
+     * kilowatt per metre kelvin
+     */
+    case REC20_KILOWATT_PER_METRE_KELVIN = 'N81';
+
+    /**
+     * kilowatt per metre degree Celsius
+     */
+    case REC20_KILOWATT_PER_METRE_DEGREE_CELSIUS = 'N82';
+
+    /**
+     * metre per degree Celcius metre
+     */
+    case REC20_METRE_PER_DEGREE_CELCIUS_METRE = 'N83';
+
+    /**
+     * degree Fahrenheit hour per British thermal unit (international table)
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_PER_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE = 'N84';
+
+    /**
+     * degree Fahrenheit hour per British thermal unit (thermochemical)
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_PER_BRITISH_THERMAL_UNIT_THERMOCHEMICAL = 'N85';
+
+    /**
+     * degree Fahrenheit second per British thermal unit (international
+     * table)
+     */
+    case REC20_DEGREE_FAHRENHEIT_SECOND_PER_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE = 'N86';
+
+    /**
+     * degree Fahrenheit second per British thermal unit (thermochemical)
+     */
+    case REC20_DEGREE_FAHRENHEIT_SECOND_PER_BRITISH_THERMAL_UNIT_THERMOCHEMICAL = 'N87';
+
+    /**
+     * degree Fahrenheit hour square foot per British thermal unit
+     * (international table) inch
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_SQUARE_FOOT_PER_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_INCH = 'N88';
+
+    /**
+     * degree Fahrenheit hour square foot per British thermal unit
+     * (thermochemical) inch
+     */
+    case REC20_DEGREE_FAHRENHEIT_HOUR_SQUARE_FOOT_PER_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_INCH = 'N89';
+
+    /**
+     * kilofarad
+     */
+    case REC20_KILOFARAD = 'N90';
+
+    /**
+     * reciprocal joule
+     */
+    case REC20_RECIPROCAL_JOULE = 'N91';
+
+    /**
+     * picosiemens
+     */
+    case REC20_PICOSIEMENS = 'N92';
+
+    /**
+     * ampere per pascal
+     */
+    case REC20_AMPERE_PER_PASCAL = 'N93';
+
+    /**
+     * franklin
+     */
+    case REC20_FRANKLIN = 'N94';
+
+    /**
+     * ampere minute
+     */
+    case REC20_AMPERE_MINUTE = 'N95';
+
+    /**
+     * biot
+     */
+    case REC20_BIOT = 'N96';
+
+    /**
+     * gilbert
+     */
+    case REC20_GILBERT = 'N97';
+
+    /**
+     * volt per pascal
+     */
+    case REC20_VOLT_PER_PASCAL = 'N98';
+
+    /**
+     * picovolt
+     */
+    case REC20_PICOVOLT = 'N99';
+
+    /**
+     * milligram per kilogram
+     */
+    case REC20_MILLIGRAM_PER_KILOGRAM = 'NA';
+
+    /**
+     * number of articles
+     */
+    case REC20_NUMBER_OF_ARTICLES = 'NAR';
+
+    /**
+     * number of cells
+     */
+    case REC20_NUMBER_OF_CELLS = 'NCL';
+
+    /**
+     * newton
+     */
+    case REC20_NEWTON = 'NEW';
+
+    /**
+     * message
+     */
+    case REC20_MESSAGE = 'NF';
+
+    /**
+     * nil
+     */
+    case REC20_NIL = 'NIL';
+
+    /**
+     * number of international units
+     */
+    case REC20_NUMBER_OF_INTERNATIONAL_UNITS = 'NIU';
+
+    /**
+     * load
+     */
+    case REC20_LOAD = 'NL';
+
+    /**
+     * Normalised cubic metre
+     */
+    case REC20_NORMALISED_CUBIC_METRE = 'NM3';
+
+    /**
+     * nautical mile
+     */
+    case REC20_NAUTICAL_MILE = 'NMI';
+
+    /**
+     * number of packs
+     */
+    case REC20_NUMBER_OF_PACKS = 'NMP';
+
+    /**
+     * number of parts
+     */
+    case REC20_NUMBER_OF_PARTS = 'NPT';
+
+    /**
+     * net ton
+     */
+    case REC20_NET_TON = 'NT';
+
+    /**
+     * newton metre
+     */
+    case REC20_NEWTON_METRE = 'NU';
+
+    /**
+     * part per thousand
+     */
+    case REC20_PART_PER_THOUSAND = 'NX';
+
+    /**
+     * panel
+     */
+    case REC20_PANEL = 'OA';
+
+    /**
+     * ozone depletion equivalent
+     */
+    case REC20_OZONE_DEPLETION_EQUIVALENT = 'ODE';
+
+    /**
+     * ODS Grams
+     */
+    case REC20_ODS_GRAMS = 'ODG';
+
+    /**
+     * ODS Kilograms
+     */
+    case REC20_ODS_KILOGRAMS = 'ODK';
+
+    /**
+     * ODS Milligrams
+     */
+    case REC20_ODS_MILLIGRAMS = 'ODM';
+
+    /**
+     * ohm
+     */
+    case REC20_OHM = 'OHM';
+
+    /**
+     * ounce per square yard
+     */
+    case REC20_OUNCE_PER_SQUARE_YARD = 'ON';
+
+    /**
+     * ounce (avoirdupois)
+     */
+    case REC20_OUNCE_AVOIRDUPOIS = 'ONZ';
+
+    /**
+     * oscillations per minute
+     */
+    case REC20_OSCILLATIONS_PER_MINUTE = 'OPM';
+
+    /**
+     * overtime hour
+     */
+    case REC20_OVERTIME_HOUR = 'OT';
+
+    /**
+     * fluid ounce (US)
+     */
+    case REC20_FLUID_OUNCE_US = 'OZA';
+
+    /**
+     * fluid ounce (UK)
+     */
+    case REC20_FLUID_OUNCE_UK = 'OZI';
+
+    /**
+     * percent
+     */
+    case REC20_PERCENT = 'P1';
+
+    /**
+     * coulomb per metre
+     */
+    case REC20_COULOMB_PER_METRE = 'P10';
+
+    /**
+     * kiloweber
+     */
+    case REC20_KILOWEBER = 'P11';
+
+    /**
+     * gamma
+     */
+    case REC20_GAMMA = 'P12';
+
+    /**
+     * kilotesla
+     */
+    case REC20_KILOTESLA = 'P13';
+
+    /**
+     * joule per second
+     */
+    case REC20_JOULE_PER_SECOND = 'P14';
+
+    /**
+     * joule per minute
+     */
+    case REC20_JOULE_PER_MINUTE = 'P15';
+
+    /**
+     * joule per hour
+     */
+    case REC20_JOULE_PER_HOUR = 'P16';
+
+    /**
+     * joule per day
+     */
+    case REC20_JOULE_PER_DAY = 'P17';
+
+    /**
+     * kilojoule per second
+     */
+    case REC20_KILOJOULE_PER_SECOND = 'P18';
+
+    /**
+     * kilojoule per minute
+     */
+    case REC20_KILOJOULE_PER_MINUTE = 'P19';
+
+    /**
+     * pound per foot
+     */
+    case REC20_POUND_PER_FOOT = 'P2';
+
+    /**
+     * kilojoule per hour
+     */
+    case REC20_KILOJOULE_PER_HOUR = 'P20';
+
+    /**
+     * kilojoule per day
+     */
+    case REC20_KILOJOULE_PER_DAY = 'P21';
+
+    /**
+     * nanoohm
+     */
+    case REC20_NANOOHM = 'P22';
+
+    /**
+     * ohm circular-mil per foot
+     */
+    case REC20_OHM_CIRCULARMIL_PER_FOOT = 'P23';
+
+    /**
+     * kilohenry
+     */
+    case REC20_KILOHENRY = 'P24';
+
+    /**
+     * lumen per square foot
+     */
+    case REC20_LUMEN_PER_SQUARE_FOOT = 'P25';
+
+    /**
+     * phot
+     */
+    case REC20_PHOT = 'P26';
+
+    /**
+     * footcandle
+     */
+    case REC20_FOOTCANDLE = 'P27';
+
+    /**
+     * candela per square inch
+     */
+    case REC20_CANDELA_PER_SQUARE_INCH = 'P28';
+
+    /**
+     * footlambert
+     */
+    case REC20_FOOTLAMBERT = 'P29';
+
+    /**
+     * lambert
+     */
+    case REC20_LAMBERT = 'P30';
+
+    /**
+     * stilb
+     */
+    case REC20_STILB = 'P31';
+
+    /**
+     * candela per square foot
+     */
+    case REC20_CANDELA_PER_SQUARE_FOOT = 'P32';
+
+    /**
+     * kilocandela
+     */
+    case REC20_KILOCANDELA = 'P33';
+
+    /**
+     * millicandela
+     */
+    case REC20_MILLICANDELA = 'P34';
+
+    /**
+     * Hefner-Kerze
+     */
+    case REC20_HEFNERKERZE = 'P35';
+
+    /**
+     * international candle
+     */
+    case REC20_INTERNATIONAL_CANDLE = 'P36';
+
+    /**
+     * British thermal unit (international table) per square foot
+     */
+    case REC20_BRITISH_THERMAL_UNIT_INTERNATIONAL_TABLE_PER_SQUARE_FOOT = 'P37';
+
+    /**
+     * British thermal unit (thermochemical) per square foot
+     */
+    case REC20_BRITISH_THERMAL_UNIT_THERMOCHEMICAL_PER_SQUARE_FOOT = 'P38';
+
+    /**
+     * calorie (thermochemical) per square centimetre
+     */
+    case REC20_CALORIE_THERMOCHEMICAL_PER_SQUARE_CENTIMETRE = 'P39';
+
+    /**
+     * langley
+     */
+    case REC20_LANGLEY = 'P40';
+
+    /**
+     * decade (logarithmic)
+     */
+    case REC20_DECADE_LOGARITHMIC = 'P41';
+
+    /**
+     * pascal squared second
+     */
+    case REC20_PASCAL_SQUARED_SECOND = 'P42';
+
+    /**
+     * bel per metre
+     */
+    case REC20_BEL_PER_METRE = 'P43';
+
+    /**
+     * pound mole
+     */
+    case REC20_POUND_MOLE = 'P44';
+
+    /**
+     * pound mole per second
+     */
+    case REC20_POUND_MOLE_PER_SECOND = 'P45';
+
+    /**
+     * pound mole per minute
+     */
+    case REC20_POUND_MOLE_PER_MINUTE = 'P46';
+
+    /**
+     * kilomole per kilogram
+     */
+    case REC20_KILOMOLE_PER_KILOGRAM = 'P47';
+
+    /**
+     * pound mole per pound
+     */
+    case REC20_POUND_MOLE_PER_POUND = 'P48';
+
+    /**
+     * newton square metre per ampere
+     */
+    case REC20_NEWTON_SQUARE_METRE_PER_AMPERE = 'P49';
+
+    /**
+     * five pack
+     */
+    case REC20_FIVE_PACK = 'P5';
+
+    /**
+     * weber metre
+     */
+    case REC20_WEBER_METRE = 'P50';
+
+    /**
+     * mol per kilogram pascal
+     */
+    case REC20_MOL_PER_KILOGRAM_PASCAL = 'P51';
+
+    /**
+     * mol per cubic metre pascal
+     */
+    case REC20_MOL_PER_CUBIC_METRE_PASCAL = 'P52';
+
+    /**
+     * unit pole
+     */
+    case REC20_UNIT_POLE = 'P53';
+
+    /**
+     * milligray per second
+     */
+    case REC20_MILLIGRAY_PER_SECOND = 'P54';
+
+    /**
+     * microgray per second
+     */
+    case REC20_MICROGRAY_PER_SECOND = 'P55';
+
+    /**
+     * nanogray per second
+     */
+    case REC20_NANOGRAY_PER_SECOND = 'P56';
+
+    /**
+     * gray per minute
+     */
+    case REC20_GRAY_PER_MINUTE = 'P57';
+
+    /**
+     * milligray per minute
+     */
+    case REC20_MILLIGRAY_PER_MINUTE = 'P58';
+
+    /**
+     * microgray per minute
+     */
+    case REC20_MICROGRAY_PER_MINUTE = 'P59';
+
+    /**
+     * nanogray per minute
+     */
+    case REC20_NANOGRAY_PER_MINUTE = 'P60';
+
+    /**
+     * gray per hour
+     */
+    case REC20_GRAY_PER_HOUR = 'P61';
+
+    /**
+     * milligray per hour
+     */
+    case REC20_MILLIGRAY_PER_HOUR = 'P62';
+
+    /**
+     * microgray per hour
+     */
+    case REC20_MICROGRAY_PER_HOUR = 'P63';
+
+    /**
+     * nanogray per hour
+     */
+    case REC20_NANOGRAY_PER_HOUR = 'P64';
+
+    /**
+     * sievert per second
+     */
+    case REC20_SIEVERT_PER_SECOND = 'P65';
+
+    /**
+     * millisievert per second
+     */
+    case REC20_MILLISIEVERT_PER_SECOND = 'P66';
+
+    /**
+     * microsievert per second
+     */
+    case REC20_MICROSIEVERT_PER_SECOND = 'P67';
+
+    /**
+     * nanosievert per second
+     */
+    case REC20_NANOSIEVERT_PER_SECOND = 'P68';
+
+    /**
+     * rem per second
+     */
+    case REC20_REM_PER_SECOND = 'P69';
+
+    /**
+     * sievert per hour
+     */
+    case REC20_SIEVERT_PER_HOUR = 'P70';
+
+    /**
+     * millisievert per hour
+     */
+    case REC20_MILLISIEVERT_PER_HOUR = 'P71';
+
+    /**
+     * microsievert per hour
+     */
+    case REC20_MICROSIEVERT_PER_HOUR = 'P72';
+
+    /**
+     * nanosievert per hour
+     */
+    case REC20_NANOSIEVERT_PER_HOUR = 'P73';
+
+    /**
+     * sievert per minute
+     */
+    case REC20_SIEVERT_PER_MINUTE = 'P74';
+
+    /**
+     * millisievert per minute
+     */
+    case REC20_MILLISIEVERT_PER_MINUTE = 'P75';
+
+    /**
+     * microsievert per minute
+     */
+    case REC20_MICROSIEVERT_PER_MINUTE = 'P76';
+
+    /**
+     * nanosievert per minute
+     */
+    case REC20_NANOSIEVERT_PER_MINUTE = 'P77';
+
+    /**
+     * reciprocal square inch
+     */
+    case REC20_RECIPROCAL_SQUARE_INCH = 'P78';
+
+    /**
+     * pascal square metre per kilogram
+     */
+    case REC20_PASCAL_SQUARE_METRE_PER_KILOGRAM = 'P79';
+
+    /**
+     * millipascal per metre
+     */
+    case REC20_MILLIPASCAL_PER_METRE = 'P80';
+
+    /**
+     * kilopascal per metre
+     */
+    case REC20_KILOPASCAL_PER_METRE = 'P81';
+
+    /**
+     * hectopascal per metre
+     */
+    case REC20_HECTOPASCAL_PER_METRE = 'P82';
+
+    /**
+     * standard atmosphere per metre
+     */
+    case REC20_STANDARD_ATMOSPHERE_PER_METRE = 'P83';
+
+    /**
+     * technical atmosphere per metre
+     */
+    case REC20_TECHNICAL_ATMOSPHERE_PER_METRE = 'P84';
+
+    /**
+     * torr per metre
+     */
+    case REC20_TORR_PER_METRE = 'P85';
+
+    /**
+     * psi per inch
+     */
+    case REC20_PSI_PER_INCH = 'P86';
+
+    /**
+     * cubic metre per second square metre
+     */
+    case REC20_CUBIC_METRE_PER_SECOND_SQUARE_METRE = 'P87';
+
+    /**
+     * rhe
+     */
+    case REC20_RHE = 'P88';
+
+    /**
+     * pound-force foot per inch
+     */
+    case REC20_POUNDFORCE_FOOT_PER_INCH = 'P89';
+
+    /**
+     * pound-force inch per inch
+     */
+    case REC20_POUNDFORCE_INCH_PER_INCH = 'P90';
+
+    /**
+     * perm (0 ÂºC)
+     */
+    case REC20_PERM_0_C = 'P91';
+
+    /**
+     * perm (23 ÂºC)
+     */
+    case REC20_PERM_23_C = 'P92';
+
+    /**
+     * byte per second
+     */
+    case REC20_BYTE_PER_SECOND = 'P93';
+
+    /**
+     * kilobyte per second
+     */
+    case REC20_KILOBYTE_PER_SECOND = 'P94';
+
+    /**
+     * megabyte per second
+     */
+    case REC20_MEGABYTE_PER_SECOND = 'P95';
+
+    /**
+     * reciprocal volt
+     */
+    case REC20_RECIPROCAL_VOLT = 'P96';
+
+    /**
+     * reciprocal radian
+     */
+    case REC20_RECIPROCAL_RADIAN = 'P97';
+
+    /**
+     * pascal to the power sum of stoichiometric numbers
+     */
+    case REC20_PASCAL_TO_THE_POWER_SUM_OF_STOICHIOMETRIC_NUMBERS = 'P98';
+
+    /**
+     * mole per cubiv metre to the power sum of stoichiometric numbers
+     */
+    case REC20_MOLE_PER_CUBIV_METRE_TO_THE_POWER_SUM_OF_STOICHIOMETRIC_NUMBERS = 'P99';
+
+    /**
+     * pascal
+     */
+    case REC20_PASCAL = 'PAL';
+
+    /**
+     * pad
+     */
+    case REC20_PAD = 'PD';
+
+    /**
+     * proof litre
+     */
+    case REC20_PROOF_LITRE = 'PFL';
+
+    /**
+     * proof gallon
+     */
+    case REC20_PROOF_GALLON = 'PGL';
+
+    /**
+     * pitch
+     */
+    case REC20_PITCH = 'PI';
+
+    /**
+     * degree Plato
+     */
+    case REC20_DEGREE_PLATO = 'PLA';
+
+    /**
+     * pound per inch of length
+     */
+    case REC20_POUND_PER_INCH_OF_LENGTH = 'PO';
+
+    /**
+     * page per inch
+     */
+    case REC20_PAGE_PER_INCH = 'PQ';
+
+    /**
+     * pair
+     */
+    case REC20_PAIR = 'PR';
+
+    /**
+     * pound-force per square inch
+     */
+    case REC20_POUNDFORCE_PER_SQUARE_INCH = 'PS';
+
+    /**
+     * dry pint (US)
+     */
+    case REC20_DRY_PINT_US = 'PTD';
+
+    /**
+     * pint (UK)
+     */
+    case REC20_PINT_UK = 'PTI';
+
+    /**
+     * liquid pint (US)
+     */
+    case REC20_LIQUID_PINT_US = 'PTL';
+
+    /**
+     * portion
+     */
+    case REC20_PORTION = 'PTN';
+
+    /**
+     * joule per tesla
+     */
+    case REC20_JOULE_PER_TESLA = 'Q10';
+
+    /**
+     * erlang
+     */
+    case REC20_ERLANG = 'Q11';
+
+    /**
+     * octet
+     */
+    case REC20_OCTET = 'Q12';
+
+    /**
+     * octet per second
+     */
+    case REC20_OCTET_PER_SECOND = 'Q13';
+
+    /**
+     * shannon
+     */
+    case REC20_SHANNON = 'Q14';
+
+    /**
+     * hartley
+     */
+    case REC20_HARTLEY = 'Q15';
+
+    /**
+     * natural unit of information
+     */
+    case REC20_NATURAL_UNIT_OF_INFORMATION = 'Q16';
+
+    /**
+     * shannon per second
+     */
+    case REC20_SHANNON_PER_SECOND = 'Q17';
+
+    /**
+     * hartley per second
+     */
+    case REC20_HARTLEY_PER_SECOND = 'Q18';
+
+    /**
+     * natural unit of information per second
+     */
+    case REC20_NATURAL_UNIT_OF_INFORMATION_PER_SECOND = 'Q19';
+
+    /**
+     * second per kilogramm
+     */
+    case REC20_SECOND_PER_KILOGRAMM = 'Q20';
+
+    /**
+     * watt square metre
+     */
+    case REC20_WATT_SQUARE_METRE = 'Q21';
+
+    /**
+     * second per radian cubic metre
+     */
+    case REC20_SECOND_PER_RADIAN_CUBIC_METRE = 'Q22';
+
+    /**
+     * weber to the power minus one
+     */
+    case REC20_WEBER_TO_THE_POWER_MINUS_ONE = 'Q23';
+
+    /**
+     * reciprocal inch
+     */
+    case REC20_RECIPROCAL_INCH = 'Q24';
+
+    /**
+     * dioptre
+     */
+    case REC20_DIOPTRE = 'Q25';
+
+    /**
+     * one per one
+     */
+    case REC20_ONE_PER_ONE = 'Q26';
+
+    /**
+     * newton metre per metre
+     */
+    case REC20_NEWTON_METRE_PER_METRE = 'Q27';
+
+    /**
+     * kilogram per square metre pascal second
+     */
+    case REC20_KILOGRAM_PER_SQUARE_METRE_PASCAL_SECOND = 'Q28';
+
+    /**
+     * microgram per hectogram
+     */
+    case REC20_MICROGRAM_PER_HECTOGRAM = 'Q29';
+
+    /**
+     * pH (potential of Hydrogen)
+     */
+    case REC20_PH_POTENTIAL_OF_HYDROGEN = 'Q30';
+
+    /**
+     * kilojoule per gram
+     */
+    case REC20_KILOJOULE_PER_GRAM = 'Q31';
+
+    /**
+     * femtolitre
+     */
+    case REC20_FEMTOLITRE = 'Q32';
+
+    /**
+     * picolitre
+     */
+    case REC20_PICOLITRE = 'Q33';
+
+    /**
+     * nanolitre
+     */
+    case REC20_NANOLITRE = 'Q34';
+
+    /**
+     * megawatts per minute
+     */
+    case REC20_MEGAWATTS_PER_MINUTE = 'Q35';
+
+    /**
+     * square metre per cubic metre
+     */
+    case REC20_SQUARE_METRE_PER_CUBIC_METRE = 'Q36';
+
+    /**
+     * Standard cubic metre per day
+     */
+    case REC20_STANDARD_CUBIC_METRE_PER_DAY = 'Q37';
+
+    /**
+     * Standard cubic metre per hour
+     */
+    case REC20_STANDARD_CUBIC_METRE_PER_HOUR = 'Q38';
+
+    /**
+     * Normalized cubic metre per day
+     */
+    case REC20_NORMALIZED_CUBIC_METRE_PER_DAY = 'Q39';
+
+    /**
+     * Normalized cubic metre per hour
+     */
+    case REC20_NORMALIZED_CUBIC_METRE_PER_HOUR = 'Q40';
+
+    /**
+     * Joule per normalised cubic metre
+     */
+    case REC20_JOULE_PER_NORMALISED_CUBIC_METRE = 'Q41';
+
+    /**
+     * Joule per standard cubic metre
+     */
+    case REC20_JOULE_PER_STANDARD_CUBIC_METRE = 'Q42';
+
+    /**
+     * meal
+     */
+    case REC20_MEAL = 'Q3';
+
+    /**
+     * page - facsimile
+     */
+    case REC20_PAGE__FACSIMILE = 'QA';
+
+    /**
+     * quarter (of a year)
+     */
+    case REC20_QUARTER_OF_A_YEAR = 'QAN';
+
+    /**
+     * page - hardcopy
+     */
+    case REC20_PAGE__HARDCOPY = 'QB';
+
+    /**
+     * quire
+     */
+    case REC20_QUIRE = 'QR';
+
+    /**
+     * dry quart (US)
+     */
+    case REC20_DRY_QUART_US = 'QTD';
+
+    /**
+     * quart (UK)
+     */
+    case REC20_QUART_UK = 'QTI';
+
+    /**
+     * liquid quart (US)
+     */
+    case REC20_LIQUID_QUART_US = 'QTL';
+
+    /**
+     * quarter (UK)
+     */
+    case REC20_QUARTER_UK = 'QTR';
+
+    /**
+     * pica
+     */
+    case REC20_PICA = 'R1';
+
+    /**
+     * thousand cubic metre
+     */
+    case REC20_THOUSAND_CUBIC_METRE = 'R9';
+
+    /**
+     * running or operating hour
+     */
+    case REC20_RUNNING_OR_OPERATING_HOUR = 'RH';
+
+    /**
+     * ream
+     */
+    case REC20_REAM = 'RM';
+
+    /**
+     * room
+     */
+    case REC20_ROOM = 'ROM';
+
+    /**
+     * pound per ream
+     */
+    case REC20_POUND_PER_REAM = 'RP';
+
+    /**
+     * revolutions per minute
+     */
+    case REC20_REVOLUTIONS_PER_MINUTE = 'RPM';
+
+    /**
+     * revolutions per second
+     */
+    case REC20_REVOLUTIONS_PER_SECOND = 'RPS';
+
+    /**
+     * revenue ton mile
+     */
+    case REC20_REVENUE_TON_MILE = 'RT';
+
+    /**
+     * square foot per second
+     */
+    case REC20_SQUARE_FOOT_PER_SECOND = 'S3';
+
+    /**
+     * square metre per second
+     */
+    case REC20_SQUARE_METRE_PER_SECOND = 'S4';
+
+    /**
+     * half year (6 months)
+     */
+    case REC20_HALF_YEAR_6_MONTHS = 'SAN';
+
+    /**
+     * score
+     */
+    case REC20_SCORE = 'SCO';
+
+    /**
+     * scruple
+     */
+    case REC20_SCRUPLE = 'SCR';
+
+    /**
+     * second [unit of time]
+     */
+    case REC20_SECOND_UNIT_OF_TIME = 'SEC';
+
+    /**
+     * set
+     */
+    case REC20_SET = 'SET';
+
+    /**
+     * segment
+     */
+    case REC20_SEGMENT = 'SG';
+
+    /**
+     * siemens
+     */
+    case REC20_SIEMENS = 'SIE';
+
+    /**
+     * Standard cubic metre
+     */
+    case REC20_STANDARD_CUBIC_METRE = 'SM3';
+
+    /**
+     * mile (statute mile)
+     */
+    case REC20_MILE_STATUTE_MILE = 'SMI';
+
+    /**
+     * square
+     */
+    case REC20_SQUARE = 'SQ';
+
+    /**
+     * square, roofing
+     */
+    case REC20_SQUARE_ROOFING = 'SQR';
+
+    /**
+     * strip
+     */
+    case REC20_STRIP = 'SR';
+
+    /**
+     * stick
+     */
+    case REC20_STICK = 'STC';
+
+    /**
+     * stone (UK)
+     */
+    case REC20_STONE_UK = 'STI';
+
+    /**
+     * stick, cigarette
+     */
+    case REC20_STICK_CIGARETTE = 'STK';
+
+    /**
+     * standard litre
+     */
+    case REC20_STANDARD_LITRE = 'STL';
+
+    /**
+     * ton (US) or short ton (UK/US)
+     */
+    case REC20_TON_US_OR_SHORT_TON_UK_US = 'STN';
+
+    /**
+     * straw
+     */
+    case REC20_STRAW = 'STW';
+
+    /**
+     * skein
+     */
+    case REC20_SKEIN = 'SW';
+
+    /**
+     * shipment
+     */
+    case REC20_SHIPMENT = 'SX';
+
+    /**
+     * syringe
+     */
+    case REC20_SYRINGE = 'SYR';
+
+    /**
+     * telecommunication line in service
+     */
+    case REC20_TELECOMMUNICATION_LINE_IN_SERVICE = 'T0';
+
+    /**
+     * thousand piece
+     */
+    case REC20_THOUSAND_PIECE = 'T3';
+
+    /**
+     * kiloampere hour (thousand ampere hour)
+     */
+    case REC20_KILOAMPERE_HOUR_THOUSAND_AMPERE_HOUR = 'TAH';
+
+    /**
+     * total acid number
+     */
+    case REC20_TOTAL_ACID_NUMBER = 'TAN';
+
+    /**
+     * thousand square inch
+     */
+    case REC20_THOUSAND_SQUARE_INCH = 'TI';
+
+    /**
+     * metric ton, including container
+     */
+    case REC20_METRIC_TON_INCLUDING_CONTAINER = 'TIC';
+
+    /**
+     * metric ton, including inner packaging
+     */
+    case REC20_METRIC_TON_INCLUDING_INNER_PACKAGING = 'TIP';
+
+    /**
+     * tonne kilometre
+     */
+    case REC20_TONNE_KILOMETRE = 'TKM';
+
+    /**
+     * kilogram of imported meat, less offal
+     */
+    case REC20_KILOGRAM_OF_IMPORTED_MEAT_LESS_OFFAL = 'TMS';
+
+    /**
+     * tonne (metric ton)
+     */
+    case REC20_TONNE_METRIC_TON = 'TNE';
+
+    /**
+     * ten pack
+     */
+    case REC20_TEN_PACK = 'TP';
+
+    /**
+     * teeth per inch
+     */
+    case REC20_TEETH_PER_INCH = 'TPI';
+
+    /**
+     * ten pair
+     */
+    case REC20_TEN_PAIR = 'TPR';
+
+    /**
+     * thousand cubic metre per day
+     */
+    case REC20_THOUSAND_CUBIC_METRE_PER_DAY = 'TQD';
+
+    /**
+     * trillion (EUR)
+     */
+    case REC20_TRILLION_EUR = 'TRL';
+
+    /**
+     * ten set
+     */
+    case REC20_TEN_SET = 'TST';
+
+    /**
+     * ten thousand sticks
+     */
+    case REC20_TEN_THOUSAND_STICKS = 'TTS';
+
+    /**
+     * treatment
+     */
+    case REC20_TREATMENT = 'U1';
+
+    /**
+     * tablet
+     */
+    case REC20_TABLET = 'U2';
+
+    /**
+     * telecommunication line in service average
+     */
+    case REC20_TELECOMMUNICATION_LINE_IN_SERVICE_AVERAGE = 'UB';
+
+    /**
+     * telecommunication port
+     */
+    case REC20_TELECOMMUNICATION_PORT = 'UC';
+
+    /**
+     * volt - ampere per kilogram
+     */
+    case REC20_VOLT__AMPERE_PER_KILOGRAM = 'VA';
+
+    /**
+     * volt
+     */
+    case REC20_VOLT = 'VLT';
+
+    /**
+     * percent volume
+     */
+    case REC20_PERCENT_VOLUME = 'VP';
+
+    /**
+     * wet kilo
+     */
+    case REC20_WET_KILO = 'W2';
+
+    /**
+     * watt per kilogram
+     */
+    case REC20_WATT_PER_KILOGRAM = 'WA';
+
+    /**
+     * wet pound
+     */
+    case REC20_WET_POUND = 'WB';
+
+    /**
+     * cord
+     */
+    case REC20_CORD = 'WCD';
+
+    /**
+     * wet ton
+     */
+    case REC20_WET_TON = 'WE';
+
+    /**
+     * weber
+     */
+    case REC20_WEBER = 'WEB';
+
+    /**
+     * week
+     */
+    case REC20_WEEK = 'WEE';
+
+    /**
+     * wine gallon
+     */
+    case REC20_WINE_GALLON = 'WG';
+
+    /**
+     * watt hour
+     */
+    case REC20_WATT_HOUR = 'WHR';
+
+    /**
+     * working month
+     */
+    case REC20_WORKING_MONTH = 'WM';
+
+    /**
+     * standard
+     */
+    case REC20_STANDARD = 'WSD';
+
+    /**
+     * watt
+     */
+    case REC20_WATT = 'WTT';
+
+    /**
+     * Gunter's chain
+     */
+    case REC20_GUNTERS_CHAIN = 'X1';
+
+    /**
+     * square yard
+     */
+    case REC20_SQUARE_YARD = 'YDK';
+
+    /**
+     * cubic yard
+     */
+    case REC20_CUBIC_YARD = 'YDQ';
+
+    /**
+     * yard
+     */
+    case REC20_YARD = 'YRD';
+
+    /**
+     * hanging container
+     */
+    case REC20_HANGING_CONTAINER = 'Z11';
+
+    /**
+     * page
+     */
+    case REC20_PAGE = 'ZP';
+
+    /**
+     * mutually defined
+     */
+    case REC20_MUTUALLY_DEFINED = 'ZZ';
+
+    /**
+     * Drum, steel
+     */
+    case REC21_DRUM_STEEL = 'X1A';
+
+    /**
+     * Drum, aluminium
+     */
+    case REC21_DRUM_ALUMINIUM = 'X1B';
+
+    /**
+     * Drum, plywood
+     */
+    case REC21_DRUM_PLYWOOD = 'X1D';
+
+    /**
+     * Container, flexible
+     */
+    case REC21_CONTAINER_FLEXIBLE = 'X1F';
+
+    /**
+     * Drum, fibre
+     */
+    case REC21_DRUM_FIBRE = 'X1G';
+
+    /**
+     * Drum, wooden
+     */
+    case REC21_DRUM_WOODEN = 'X1W';
+
+    /**
+     * Barrel, wooden
+     */
+    case REC21_BARREL_WOODEN = 'X2C';
+
+    /**
+     * Jerrican, steel
+     */
+    case REC21_JERRICAN_STEEL = 'X3A';
+
+    /**
+     * Jerrican, plastic
+     */
+    case REC21_JERRICAN_PLASTIC = 'X3H';
+
+    /**
+     * Bag, super bulk
+     */
+    case REC21_BAG_SUPER_BULK = 'X43';
+
+    /**
+     * Bag, polybag
+     */
+    case REC21_BAG_POLYBAG = 'X44';
+
+    /**
+     * Box, steel
+     */
+    case REC21_BOX_STEEL = 'X4A';
+
+    /**
+     * Box, aluminium
+     */
+    case REC21_BOX_ALUMINIUM = 'X4B';
+
+    /**
+     * Box, natural wood
+     */
+    case REC21_BOX_NATURAL_WOOD = 'X4C';
+
+    /**
+     * Box, plywood
+     */
+    case REC21_BOX_PLYWOOD = 'X4D';
+
+    /**
+     * Box, reconstituted wood
+     */
+    case REC21_BOX_RECONSTITUTED_WOOD = 'X4F';
+
+    /**
+     * Box, fibreboard
+     */
+    case REC21_BOX_FIBREBOARD = 'X4G';
+
+    /**
+     * Box, plastic
+     */
+    case REC21_BOX_PLASTIC = 'X4H';
+
+    /**
+     * Bag, woven plastic
+     */
+    case REC21_BAG_WOVEN_PLASTIC = 'X5H';
+
+    /**
+     * Bag, textile
+     */
+    case REC21_BAG_TEXTILE = 'X5L';
+
+    /**
+     * Bag, paper
+     */
+    case REC21_BAG_PAPER = 'X5M';
+
+    /**
+     * Composite packaging, plastic receptacle
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE = 'X6H';
+
+    /**
+     * Composite packaging, glass receptacle
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE = 'X6P';
+
+    /**
+     * Case, car
+     */
+    case REC21_CASE_CAR = 'X7A';
+
+    /**
+     * Case, wooden
+     */
+    case REC21_CASE_WOODEN = 'X7B';
+
+    /**
+     * Pallet, wooden
+     */
+    case REC21_PALLET_WOODEN = 'X8A';
+
+    /**
+     * Crate, wooden
+     */
+    case REC21_CRATE_WOODEN = 'X8B';
+
+    /**
+     * Bundle, wooden
+     */
+    case REC21_BUNDLE_WOODEN = 'X8C';
+
+    /**
+     * Intermediate bulk container, rigid plastic
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC = 'XAA';
+
+    /**
+     * Receptacle, fibre
+     */
+    case REC21_RECEPTACLE_FIBRE = 'XAB';
+
+    /**
+     * Receptacle, paper
+     */
+    case REC21_RECEPTACLE_PAPER = 'XAC';
+
+    /**
+     * Receptacle, wooden
+     */
+    case REC21_RECEPTACLE_WOODEN = 'XAD';
+
+    /**
+     * Aerosol
+     */
+    case REC21_AEROSOL = 'XAE';
+
+    /**
+     * Pallet, modular, collars 80cms * 60cms
+     */
+    case REC21_PALLET_MODULAR_COLLARS_80CMS__60CMS = 'XAF';
+
+    /**
+     * Pallet, shrinkwrapped
+     */
+    case REC21_PALLET_SHRINKWRAPPED = 'XAG';
+
+    /**
+     * Pallet, 100cms * 110cms
+     */
+    case REC21_PALLET_100CMS__110CMS = 'XAH';
+
+    /**
+     * Clamshell
+     */
+    case REC21_CLAMSHELL = 'XAI';
+
+    /**
+     * Cone
+     */
+    case REC21_CONE = 'XAJ';
+
+    /**
+     * Ball
+     */
+    case REC21_BALL = 'XAL';
+
+    /**
+     * Ampoule, non-protected
+     */
+    case REC21_AMPOULE_NONPROTECTED = 'XAM';
+
+    /**
+     * Ampoule, protected
+     */
+    case REC21_AMPOULE_PROTECTED = 'XAP';
+
+    /**
+     * Atomizer
+     */
+    case REC21_ATOMIZER = 'XAT';
+
+    /**
+     * Capsule
+     */
+    case REC21_CAPSULE = 'XAV';
+
+    /**
+     * Belt
+     */
+    case REC21_BELT = 'XB4';
+
+    /**
+     * Barrel
+     */
+    case REC21_BARREL = 'XBA';
+
+    /**
+     * Bobbin
+     */
+    case REC21_BOBBIN = 'XBB';
+
+    /**
+     * Bottlecrate / bottlerack
+     */
+    case REC21_BOTTLECRATE___BOTTLERACK = 'XBC';
+
+    /**
+     * Board
+     */
+    case REC21_BOARD = 'XBD';
+
+    /**
+     * Bundle
+     */
+    case REC21_BUNDLE = 'XBE';
+
+    /**
+     * Balloon, non-protected
+     */
+    case REC21_BALLOON_NONPROTECTED = 'XBF';
+
+    /**
+     * Bag
+     */
+    case REC21_BAG = 'XBG';
+
+    /**
+     * Bunch
+     */
+    case REC21_BUNCH = 'XBH';
+
+    /**
+     * Bin
+     */
+    case REC21_BIN = 'XBI';
+
+    /**
+     * Bucket
+     */
+    case REC21_BUCKET = 'XBJ';
+
+    /**
+     * Basket
+     */
+    case REC21_BASKET = 'XBK';
+
+    /**
+     * Bale, compressed
+     */
+    case REC21_BALE_COMPRESSED = 'XBL';
+
+    /**
+     * Basin
+     */
+    case REC21_BASIN = 'XBM';
+
+    /**
+     * Bale, non-compressed
+     */
+    case REC21_BALE_NONCOMPRESSED = 'XBN';
+
+    /**
+     * Bottle, non-protected, cylindrical
+     */
+    case REC21_BOTTLE_NONPROTECTED_CYLINDRICAL = 'XBO';
+
+    /**
+     * Balloon, protected
+     */
+    case REC21_BALLOON_PROTECTED = 'XBP';
+
+    /**
+     * Bottle, protected cylindrical
+     */
+    case REC21_BOTTLE_PROTECTED_CYLINDRICAL = 'XBQ';
+
+    /**
+     * Bar
+     */
+    case REC21_BAR = 'XBR';
+
+    /**
+     * Bottle, non-protected, bulbous
+     */
+    case REC21_BOTTLE_NONPROTECTED_BULBOUS = 'XBS';
+
+    /**
+     * Bolt
+     */
+    case REC21_BOLT = 'XBT';
+
+    /**
+     * Butt
+     */
+    case REC21_BUTT = 'XBU';
+
+    /**
+     * Bottle, protected bulbous
+     */
+    case REC21_BOTTLE_PROTECTED_BULBOUS = 'XBV';
+
+    /**
+     * Box, for liquids
+     */
+    case REC21_BOX_FOR_LIQUIDS = 'XBW';
+
+    /**
+     * Box
+     */
+    case REC21_BOX = 'XBX';
+
+    /**
+     * Board, in bundle/bunch/truss
+     */
+    case REC21_BOARD_IN_BUNDLE_BUNCH_TRUSS = 'XBY';
+
+    /**
+     * Bars, in bundle/bunch/truss
+     */
+    case REC21_BARS_IN_BUNDLE_BUNCH_TRUSS = 'XBZ';
+
+    /**
+     * Can, rectangular
+     */
+    case REC21_CAN_RECTANGULAR = 'XCA';
+
+    /**
+     * Crate, beer
+     */
+    case REC21_CRATE_BEER = 'XCB';
+
+    /**
+     * Churn
+     */
+    case REC21_CHURN = 'XCC';
+
+    /**
+     * Can, with handle and spout
+     */
+    case REC21_CAN_WITH_HANDLE_AND_SPOUT = 'XCD';
+
+    /**
+     * Creel
+     */
+    case REC21_CREEL = 'XCE';
+
+    /**
+     * Coffer
+     */
+    case REC21_COFFER = 'XCF';
+
+    /**
+     * Cage
+     */
+    case REC21_CAGE = 'XCG';
+
+    /**
+     * Chest
+     */
+    case REC21_CHEST = 'XCH';
+
+    /**
+     * Canister
+     */
+    case REC21_CANISTER = 'XCI';
+
+    /**
+     * Coffin
+     */
+    case REC21_COFFIN = 'XCJ';
+
+    /**
+     * Cask
+     */
+    case REC21_CASK = 'XCK';
+
+    /**
+     * Coil
+     */
+    case REC21_COIL = 'XCL';
+
+    /**
+     * Card
+     */
+    case REC21_CARD = 'XCM';
+
+    /**
+     * Container, not otherwise specified as transport equipment
+     */
+    case REC21_CONTAINER_NOT_OTHERWISE_SPECIFIED_AS_TRANSPORT_EQUIPMENT = 'XCN';
+
+    /**
+     * Carboy, non-protected
+     */
+    case REC21_CARBOY_NONPROTECTED = 'XCO';
+
+    /**
+     * Carboy, protected
+     */
+    case REC21_CARBOY_PROTECTED = 'XCP';
+
+    /**
+     * Cartridge
+     */
+    case REC21_CARTRIDGE = 'XCQ';
+
+    /**
+     * Crate
+     */
+    case REC21_CRATE = 'XCR';
+
+    /**
+     * Case
+     */
+    case REC21_CASE = 'XCS';
+
+    /**
+     * Carton
+     */
+    case REC21_CARTON = 'XCT';
+
+    /**
+     * Cup
+     */
+    case REC21_CUP = 'XCU';
+
+    /**
+     * Cover
+     */
+    case REC21_COVER = 'XCV';
+
+    /**
+     * Cage, roll
+     */
+    case REC21_CAGE_ROLL = 'XCW';
+
+    /**
+     * Can, cylindrical
+     */
+    case REC21_CAN_CYLINDRICAL = 'XCX';
+
+    /**
+     * Cylinder
+     */
+    case REC21_CYLINDER = 'XCY';
+
+    /**
+     * Canvas
+     */
+    case REC21_CANVAS = 'XCZ';
+
+    /**
+     * Crate, multiple layer, plastic
+     */
+    case REC21_CRATE_MULTIPLE_LAYER_PLASTIC = 'XDA';
+
+    /**
+     * Crate, multiple layer, wooden
+     */
+    case REC21_CRATE_MULTIPLE_LAYER_WOODEN = 'XDB';
+
+    /**
+     * Crate, multiple layer, cardboard
+     */
+    case REC21_CRATE_MULTIPLE_LAYER_CARDBOARD = 'XDC';
+
+    /**
+     * Cage, Commonwealth Handling Equipment Pool  (CHEP)
+     */
+    case REC21_CAGE_COMMONWEALTH_HANDLING_EQUIPMENT_POOL__CHEP = 'XDG';
+
+    /**
+     * Box, Commonwealth Handling Equipment Pool (CHEP), Eurobox
+     */
+    case REC21_BOX_COMMONWEALTH_HANDLING_EQUIPMENT_POOL_CHEP_EUROBOX = 'XDH';
+
+    /**
+     * Drum, iron
+     */
+    case REC21_DRUM_IRON = 'XDI';
+
+    /**
+     * Demijohn, non-protected
+     */
+    case REC21_DEMIJOHN_NONPROTECTED = 'XDJ';
+
+    /**
+     * Crate, bulk, cardboard
+     */
+    case REC21_CRATE_BULK_CARDBOARD = 'XDK';
+
+    /**
+     * Crate, bulk, plastic
+     */
+    case REC21_CRATE_BULK_PLASTIC = 'XDL';
+
+    /**
+     * Crate, bulk, wooden
+     */
+    case REC21_CRATE_BULK_WOODEN = 'XDM';
+
+    /**
+     * Dispenser
+     */
+    case REC21_DISPENSER = 'XDN';
+
+    /**
+     * Demijohn, protected
+     */
+    case REC21_DEMIJOHN_PROTECTED = 'XDP';
+
+    /**
+     * Drum
+     */
+    case REC21_DRUM = 'XDR';
+
+    /**
+     * Tray, one layer no cover, plastic
+     */
+    case REC21_TRAY_ONE_LAYER_NO_COVER_PLASTIC = 'XDS';
+
+    /**
+     * Tray, one layer no cover, wooden
+     */
+    case REC21_TRAY_ONE_LAYER_NO_COVER_WOODEN = 'XDT';
+
+    /**
+     * Tray, one layer no cover, polystyrene
+     */
+    case REC21_TRAY_ONE_LAYER_NO_COVER_POLYSTYRENE = 'XDU';
+
+    /**
+     * Tray, one layer no cover, cardboard
+     */
+    case REC21_TRAY_ONE_LAYER_NO_COVER_CARDBOARD = 'XDV';
+
+    /**
+     * Tray, two layers no cover, plastic tray
+     */
+    case REC21_TRAY_TWO_LAYERS_NO_COVER_PLASTIC_TRAY = 'XDW';
+
+    /**
+     * Tray, two layers no cover, wooden
+     */
+    case REC21_TRAY_TWO_LAYERS_NO_COVER_WOODEN = 'XDX';
+
+    /**
+     * Tray, two layers no cover, cardboard
+     */
+    case REC21_TRAY_TWO_LAYERS_NO_COVER_CARDBOARD = 'XDY';
+
+    /**
+     * Bag, plastic
+     */
+    case REC21_BAG_PLASTIC = 'XEC';
+
+    /**
+     * Case, with pallet base
+     */
+    case REC21_CASE_WITH_PALLET_BASE = 'XED';
+
+    /**
+     * Case, with pallet base, wooden
+     */
+    case REC21_CASE_WITH_PALLET_BASE_WOODEN = 'XEE';
+
+    /**
+     * Case, with pallet base, cardboard
+     */
+    case REC21_CASE_WITH_PALLET_BASE_CARDBOARD = 'XEF';
+
+    /**
+     * Case, with pallet base, plastic
+     */
+    case REC21_CASE_WITH_PALLET_BASE_PLASTIC = 'XEG';
+
+    /**
+     * Case, with pallet base, metal
+     */
+    case REC21_CASE_WITH_PALLET_BASE_METAL = 'XEH';
+
+    /**
+     * Case, isothermic
+     */
+    case REC21_CASE_ISOTHERMIC = 'XEI';
+
+    /**
+     * Envelope
+     */
+    case REC21_ENVELOPE = 'XEN';
+
+    /**
+     * Flexibag
+     */
+    case REC21_FLEXIBAG = 'XFB';
+
+    /**
+     * Crate, fruit
+     */
+    case REC21_CRATE_FRUIT = 'XFC';
+
+    /**
+     * Crate, framed
+     */
+    case REC21_CRATE_FRAMED = 'XFD';
+
+    /**
+     * Flexitank
+     */
+    case REC21_FLEXITANK = 'XFE';
+
+    /**
+     * Firkin
+     */
+    case REC21_FIRKIN = 'XFI';
+
+    /**
+     * Flask
+     */
+    case REC21_FLASK = 'XFL';
+
+    /**
+     * Footlocker
+     */
+    case REC21_FOOTLOCKER = 'XFO';
+
+    /**
+     * Filmpack
+     */
+    case REC21_FILMPACK = 'XFP';
+
+    /**
+     * Frame
+     */
+    case REC21_FRAME = 'XFR';
+
+    /**
+     * Foodtainer
+     */
+    case REC21_FOODTAINER = 'XFT';
+
+    /**
+     * Cart, flatbed
+     */
+    case REC21_CART_FLATBED = 'XFW';
+
+    /**
+     * Bag, flexible container
+     */
+    case REC21_BAG_FLEXIBLE_CONTAINER = 'XFX';
+
+    /**
+     * Bottle, gas
+     */
+    case REC21_BOTTLE_GAS = 'XGB';
+
+    /**
+     * Girder
+     */
+    case REC21_GIRDER = 'XGI';
+
+    /**
+     * Container, gallon
+     */
+    case REC21_CONTAINER_GALLON = 'XGL';
+
+    /**
+     * Receptacle, glass
+     */
+    case REC21_RECEPTACLE_GLASS = 'XGR';
+
+    /**
+     * Tray, containing horizontally stacked flat items
+     */
+    case REC21_TRAY_CONTAINING_HORIZONTALLY_STACKED_FLAT_ITEMS = 'XGU';
+
+    /**
+     * Bag, gunny
+     */
+    case REC21_BAG_GUNNY = 'XGY';
+
+    /**
+     * Girders, in bundle/bunch/truss
+     */
+    case REC21_GIRDERS_IN_BUNDLE_BUNCH_TRUSS = 'XGZ';
+
+    /**
+     * Basket, with handle, plastic
+     */
+    case REC21_BASKET_WITH_HANDLE_PLASTIC = 'XHA';
+
+    /**
+     * Basket, with handle, wooden
+     */
+    case REC21_BASKET_WITH_HANDLE_WOODEN = 'XHB';
+
+    /**
+     * Basket, with handle, cardboard
+     */
+    case REC21_BASKET_WITH_HANDLE_CARDBOARD = 'XHC';
+
+    /**
+     * Hogshead
+     */
+    case REC21_HOGSHEAD = 'XHG';
+
+    /**
+     * Hanger
+     */
+    case REC21_HANGER = 'XHN';
+
+    /**
+     * Hamper
+     */
+    case REC21_HAMPER = 'XHR';
+
+    /**
+     * Package, display, wooden
+     */
+    case REC21_PACKAGE_DISPLAY_WOODEN = 'XIA';
+
+    /**
+     * Package, display, cardboard
+     */
+    case REC21_PACKAGE_DISPLAY_CARDBOARD = 'XIB';
+
+    /**
+     * Package, display, plastic
+     */
+    case REC21_PACKAGE_DISPLAY_PLASTIC = 'XIC';
+
+    /**
+     * Package, display, metal
+     */
+    case REC21_PACKAGE_DISPLAY_METAL = 'XID';
+
+    /**
+     * Package, show
+     */
+    case REC21_PACKAGE_SHOW = 'XIE';
+
+    /**
+     * Package, flow
+     */
+    case REC21_PACKAGE_FLOW = 'XIF';
+
+    /**
+     * Package, paper wrapped
+     */
+    case REC21_PACKAGE_PAPER_WRAPPED = 'XIG';
+
+    /**
+     * Drum, plastic
+     */
+    case REC21_DRUM_PLASTIC = 'XIH';
+
+    /**
+     * Package, cardboard, with bottle grip-holes
+     */
+    case REC21_PACKAGE_CARDBOARD_WITH_BOTTLE_GRIPHOLES = 'XIK';
+
+    /**
+     * Tray, rigid, lidded stackable (CEN TS 14482:2002)
+     */
+    case REC21_TRAY_RIGID_LIDDED_STACKABLE_CEN_TS_144822002 = 'XIL';
+
+    /**
+     * Ingot
+     */
+    case REC21_INGOT = 'XIN';
+
+    /**
+     * Ingots, in bundle/bunch/truss
+     */
+    case REC21_INGOTS_IN_BUNDLE_BUNCH_TRUSS = 'XIZ';
+
+    /**
+     * Bag, jumbo
+     */
+    case REC21_BAG_JUMBO = 'XJB';
+
+    /**
+     * Jerrican, rectangular
+     */
+    case REC21_JERRICAN_RECTANGULAR = 'XJC';
+
+    /**
+     * Jug
+     */
+    case REC21_JUG = 'XJG';
+
+    /**
+     * Jar
+     */
+    case REC21_JAR = 'XJR';
+
+    /**
+     * Jutebag
+     */
+    case REC21_JUTEBAG = 'XJT';
+
+    /**
+     * Jerrican, cylindrical
+     */
+    case REC21_JERRICAN_CYLINDRICAL = 'XJY';
+
+    /**
+     * Keg
+     */
+    case REC21_KEG = 'XKG';
+
+    /**
+     * Kit
+     */
+    case REC21_KIT = 'XKI';
+
+    /**
+     * Luggage
+     */
+    case REC21_LUGGAGE = 'XLE';
+
+    /**
+     * Log
+     */
+    case REC21_LOG = 'XLG';
+
+    /**
+     * Lot
+     */
+    case REC21_LOT = 'XLT';
+
+    /**
+     * Lug
+     */
+    case REC21_LUG = 'XLU';
+
+    /**
+     * Liftvan
+     */
+    case REC21_LIFTVAN = 'XLV';
+
+    /**
+     * Logs, in bundle/bunch/truss
+     */
+    case REC21_LOGS_IN_BUNDLE_BUNCH_TRUSS = 'XLZ';
+
+    /**
+     * Crate, metal
+     */
+    case REC21_CRATE_METAL = 'XMA';
+
+    /**
+     * Bag, multiply
+     */
+    case REC21_BAG_MULTIPLY = 'XMB';
+
+    /**
+     * Crate, milk
+     */
+    case REC21_CRATE_MILK = 'XMC';
+
+    /**
+     * Container, metal
+     */
+    case REC21_CONTAINER_METAL = 'XME';
+
+    /**
+     * Receptacle, metal
+     */
+    case REC21_RECEPTACLE_METAL = 'XMR';
+
+    /**
+     * Sack, multi-wall
+     */
+    case REC21_SACK_MULTIWALL = 'XMS';
+
+    /**
+     * Mat
+     */
+    case REC21_MAT = 'XMT';
+
+    /**
+     * Receptacle, plastic wrapped
+     */
+    case REC21_RECEPTACLE_PLASTIC_WRAPPED = 'XMW';
+
+    /**
+     * Matchbox
+     */
+    case REC21_MATCHBOX = 'XMX';
+
+    /**
+     * Not available
+     */
+    case REC21_NOT_AVAILABLE = 'XNA';
+
+    /**
+     * Unpacked or unpackaged
+     */
+    case REC21_UNPACKED_OR_UNPACKAGED = 'XNE';
+
+    /**
+     * Unpacked or unpackaged, single unit
+     */
+    case REC21_UNPACKED_OR_UNPACKAGED_SINGLE_UNIT = 'XNF';
+
+    /**
+     * Unpacked or unpackaged, multiple units
+     */
+    case REC21_UNPACKED_OR_UNPACKAGED_MULTIPLE_UNITS = 'XNG';
+
+    /**
+     * Nest
+     */
+    case REC21_NEST = 'XNS';
+
+    /**
+     * Net
+     */
+    case REC21_NET = 'XNT';
+
+    /**
+     * Net, tube, plastic
+     */
+    case REC21_NET_TUBE_PLASTIC = 'XNU';
+
+    /**
+     * Net, tube, textile
+     */
+    case REC21_NET_TUBE_TEXTILE = 'XNV';
+
+    /**
+     * Pallet, CHEP 40 cm x 60 cm
+     */
+    case REC21_PALLET_CHEP_40_CM_X_60_CM = 'XOA';
+
+    /**
+     * Pallet, CHEP 80 cm x 120 cm
+     */
+    case REC21_PALLET_CHEP_80_CM_X_120_CM = 'XOB';
+
+    /**
+     * Pallet, CHEP 100 cm x 120 cm
+     */
+    case REC21_PALLET_CHEP_100_CM_X_120_CM = 'XOC';
+
+    /**
+     * Pallet, AS 4068-1993
+     */
+    case REC21_PALLET_AS_40681993 = 'XOD';
+
+    /**
+     * Pallet, ISO T11
+     */
+    case REC21_PALLET_ISO_T11 = 'XOE';
+
+    /**
+     * Platform, unspecified weight or dimension
+     */
+    case REC21_PLATFORM_UNSPECIFIED_WEIGHT_OR_DIMENSION = 'XOF';
+
+    /**
+     * Block
+     */
+    case REC21_BLOCK = 'XOK';
+
+    /**
+     * Octabin
+     */
+    case REC21_OCTABIN = 'XOT';
+
+    /**
+     * Container, outer
+     */
+    case REC21_CONTAINER_OUTER = 'XOU';
+
+    /**
+     * Pan
+     */
+    case REC21_PAN = 'XP2';
+
+    /**
+     * Packet
+     */
+    case REC21_PACKET = 'XPA';
+
+    /**
+     * Pallet, box Combined open-ended box and pallet
+     */
+    case REC21_PALLET_BOX_COMBINED_OPENENDED_BOX_AND_PALLET = 'XPB';
+
+    /**
+     * Parcel
+     */
+    case REC21_PARCEL = 'XPC';
+
+    /**
+     * Pallet, modular, collars 80cms * 100cms
+     */
+    case REC21_PALLET_MODULAR_COLLARS_80CMS__100CMS = 'XPD';
+
+    /**
+     * Pallet, modular, collars 80cms * 120cms
+     */
+    case REC21_PALLET_MODULAR_COLLARS_80CMS__120CMS = 'XPE';
+
+    /**
+     * Pen
+     */
+    case REC21_PEN = 'XPF';
+
+    /**
+     * Plate
+     */
+    case REC21_PLATE = 'XPG';
+
+    /**
+     * Pitcher
+     */
+    case REC21_PITCHER = 'XPH';
+
+    /**
+     * Pipe
+     */
+    case REC21_PIPE = 'XPI';
+
+    /**
+     * Punnet
+     */
+    case REC21_PUNNET = 'XPJ';
+
+    /**
+     * Package
+     */
+    case REC21_PACKAGE = 'XPK';
+
+    /**
+     * Pail
+     */
+    case REC21_PAIL = 'XPL';
+
+    /**
+     * Plank
+     */
+    case REC21_PLANK = 'XPN';
+
+    /**
+     * Pouch
+     */
+    case REC21_POUCH = 'XPO';
+
+    /**
+     * Piece
+     */
+    case REC21_PIECE = 'XPP';
+
+    /**
+     * Receptacle, plastic
+     */
+    case REC21_RECEPTACLE_PLASTIC = 'XPR';
+
+    /**
+     * Pot
+     */
+    case REC21_POT = 'XPT';
+
+    /**
+     * Tray
+     */
+    case REC21_TRAY = 'XPU';
+
+    /**
+     * Pipes, in bundle/bunch/truss
+     */
+    case REC21_PIPES_IN_BUNDLE_BUNCH_TRUSS = 'XPV';
+
+    /**
+     * Pallet
+     */
+    case REC21_PALLET = 'XPX';
+
+    /**
+     * Plates, in bundle/bunch/truss
+     */
+    case REC21_PLATES_IN_BUNDLE_BUNCH_TRUSS = 'XPY';
+
+    /**
+     * Planks, in bundle/bunch/truss
+     */
+    case REC21_PLANKS_IN_BUNDLE_BUNCH_TRUSS = 'XPZ';
+
+    /**
+     * Drum, steel, non-removable head
+     */
+    case REC21_DRUM_STEEL_NONREMOVABLE_HEAD = 'XQA';
+
+    /**
+     * Drum, steel, removable head
+     */
+    case REC21_DRUM_STEEL_REMOVABLE_HEAD = 'XQB';
+
+    /**
+     * Drum, aluminium, non-removable head
+     */
+    case REC21_DRUM_ALUMINIUM_NONREMOVABLE_HEAD = 'XQC';
+
+    /**
+     * Drum, aluminium, removable head
+     */
+    case REC21_DRUM_ALUMINIUM_REMOVABLE_HEAD = 'XQD';
+
+    /**
+     * Drum, plastic, non-removable head
+     */
+    case REC21_DRUM_PLASTIC_NONREMOVABLE_HEAD = 'XQF';
+
+    /**
+     * Drum, plastic, removable head
+     */
+    case REC21_DRUM_PLASTIC_REMOVABLE_HEAD = 'XQG';
+
+    /**
+     * Barrel, wooden, bung type
+     */
+    case REC21_BARREL_WOODEN_BUNG_TYPE = 'XQH';
+
+    /**
+     * Barrel, wooden, removable head
+     */
+    case REC21_BARREL_WOODEN_REMOVABLE_HEAD = 'XQJ';
+
+    /**
+     * Jerrican, steel, non-removable head
+     */
+    case REC21_JERRICAN_STEEL_NONREMOVABLE_HEAD = 'XQK';
+
+    /**
+     * Jerrican, steel, removable head
+     */
+    case REC21_JERRICAN_STEEL_REMOVABLE_HEAD = 'XQL';
+
+    /**
+     * Jerrican, plastic, non-removable head
+     */
+    case REC21_JERRICAN_PLASTIC_NONREMOVABLE_HEAD = 'XQM';
+
+    /**
+     * Jerrican, plastic, removable head
+     */
+    case REC21_JERRICAN_PLASTIC_REMOVABLE_HEAD = 'XQN';
+
+    /**
+     * Box, wooden, natural wood, ordinary
+     */
+    case REC21_BOX_WOODEN_NATURAL_WOOD_ORDINARY = 'XQP';
+
+    /**
+     * Box, wooden, natural wood, with sift proof walls
+     */
+    case REC21_BOX_WOODEN_NATURAL_WOOD_WITH_SIFT_PROOF_WALLS = 'XQQ';
+
+    /**
+     * Box, plastic, expanded
+     */
+    case REC21_BOX_PLASTIC_EXPANDED = 'XQR';
+
+    /**
+     * Box, plastic, solid
+     */
+    case REC21_BOX_PLASTIC_SOLID = 'XQS';
+
+    /**
+     * Rod
+     */
+    case REC21_ROD = 'XRD';
+
+    /**
+     * Ring
+     */
+    case REC21_RING = 'XRG';
+
+    /**
+     * Rack, clothing hanger
+     */
+    case REC21_RACK_CLOTHING_HANGER = 'XRJ';
+
+    /**
+     * Rack
+     */
+    case REC21_RACK = 'XRK';
+
+    /**
+     * Reel
+     */
+    case REC21_REEL = 'XRL';
+
+    /**
+     * Roll
+     */
+    case REC21_ROLL = 'XRO';
+
+    /**
+     * Rednet
+     */
+    case REC21_REDNET = 'XRT';
+
+    /**
+     * Rods, in bundle/bunch/truss
+     */
+    case REC21_RODS_IN_BUNDLE_BUNCH_TRUSS = 'XRZ';
+
+    /**
+     * Sack
+     */
+    case REC21_SACK = 'XSA';
+
+    /**
+     * Slab
+     */
+    case REC21_SLAB = 'XSB';
+
+    /**
+     * Crate, shallow
+     */
+    case REC21_CRATE_SHALLOW = 'XSC';
+
+    /**
+     * Spindle
+     */
+    case REC21_SPINDLE = 'XSD';
+
+    /**
+     * Sea-chest
+     */
+    case REC21_SEACHEST = 'XSE';
+
+    /**
+     * Sachet
+     */
+    case REC21_SACHET = 'XSH';
+
+    /**
+     * Skid
+     */
+    case REC21_SKID = 'XSI';
+
+    /**
+     * Case, skeleton
+     */
+    case REC21_CASE_SKELETON = 'XSK';
+
+    /**
+     * Slipsheet
+     */
+    case REC21_SLIPSHEET = 'XSL';
+
+    /**
+     * Sheetmetal
+     */
+    case REC21_SHEETMETAL = 'XSM';
+
+    /**
+     * Spool
+     */
+    case REC21_SPOOL = 'XSO';
+
+    /**
+     * Sheet, plastic wrapping
+     */
+    case REC21_SHEET_PLASTIC_WRAPPING = 'XSP';
+
+    /**
+     * Case, steel
+     */
+    case REC21_CASE_STEEL = 'XSS';
+
+    /**
+     * Sheet
+     */
+    case REC21_SHEET = 'XST';
+
+    /**
+     * Suitcase
+     */
+    case REC21_SUITCASE = 'XSU';
+
+    /**
+     * Envelope, steel
+     */
+    case REC21_ENVELOPE_STEEL = 'XSV';
+
+    /**
+     * Shrinkwrapped
+     */
+    case REC21_SHRINKWRAPPED = 'XSW';
+
+    /**
+     * Sleeve
+     */
+    case REC21_SLEEVE = 'XSY';
+
+    /**
+     * Sheets, in bundle/bunch/truss
+     */
+    case REC21_SHEETS_IN_BUNDLE_BUNCH_TRUSS = 'XSZ';
+
+    /**
+     * Tablet
+     */
+    case REC21_TABLET = 'XT1';
+
+    /**
+     * Tub
+     */
+    case REC21_TUB = 'XTB';
+
+    /**
+     * Tea-chest
+     */
+    case REC21_TEACHEST = 'XTC';
+
+    /**
+     * Tube, collapsible
+     */
+    case REC21_TUBE_COLLAPSIBLE = 'XTD';
+
+    /**
+     * Tyre
+     */
+    case REC21_TYRE = 'XTE';
+
+    /**
+     * Tank container, generic
+     */
+    case REC21_TANK_CONTAINER_GENERIC = 'XTG';
+
+    /**
+     * Tierce
+     */
+    case REC21_TIERCE = 'XTI';
+
+    /**
+     * Tank, rectangular
+     */
+    case REC21_TANK_RECTANGULAR = 'XTK';
+
+    /**
+     * Tub, with lid
+     */
+    case REC21_TUB_WITH_LID = 'XTL';
+
+    /**
+     * Tin
+     */
+    case REC21_TIN = 'XTN';
+
+    /**
+     * Tun
+     */
+    case REC21_TUN = 'XTO';
+
+    /**
+     * Trunk
+     */
+    case REC21_TRUNK = 'XTR';
+
+    /**
+     * Truss
+     */
+    case REC21_TRUSS = 'XTS';
+
+    /**
+     * Bag, tote
+     */
+    case REC21_BAG_TOTE = 'XTT';
+
+    /**
+     * Tube
+     */
+    case REC21_TUBE = 'XTU';
+
+    /**
+     * Tube, with nozzle
+     */
+    case REC21_TUBE_WITH_NOZZLE = 'XTV';
+
+    /**
+     * Pallet, triwall
+     */
+    case REC21_PALLET_TRIWALL = 'XTW';
+
+    /**
+     * Tank, cylindrical
+     */
+    case REC21_TANK_CYLINDRICAL = 'XTY';
+
+    /**
+     * Tubes, in bundle/bunch/truss
+     */
+    case REC21_TUBES_IN_BUNDLE_BUNCH_TRUSS = 'XTZ';
+
+    /**
+     * Uncaged
+     */
+    case REC21_UNCAGED = 'XUC';
+
+    /**
+     * Unit
+     */
+    case REC21_UNIT = 'XUN';
+
+    /**
+     * Vat
+     */
+    case REC21_VAT = 'XVA';
+
+    /**
+     * Bulk, gas (at 1031 mbar and 15Â°C)
+     */
+    case REC21_BULK_GAS_AT_1031_MBAR_AND_15C = 'XVG';
+
+    /**
+     * Vial
+     */
+    case REC21_VIAL = 'XVI';
+
+    /**
+     * Vanpack
+     */
+    case REC21_VANPACK = 'XVK';
+
+    /**
+     * Bulk, liquid
+     */
+    case REC21_BULK_LIQUID = 'XVL';
+
+    /**
+     * Bulk, solid, large particles (ânodulesâ)
+     */
+    case REC21_BULK_SOLID_LARGE_PARTICLES_NODULES = 'XVO';
+
+    /**
+     * Vacuum-packed
+     */
+    case REC21_VACUUMPACKED = 'XVP';
+
+    /**
+     * Bulk, liquefied gas (at abnormal temperature/pressure)
+     */
+    case REC21_BULK_LIQUEFIED_GAS_AT_ABNORMAL_TEMPERATURE_PRESSURE = 'XVQ';
+
+    /**
+     * Vehicle
+     */
+    case REC21_VEHICLE = 'XVN';
+
+    /**
+     * Bulk, solid, granular particles (âgrainsâ)
+     */
+    case REC21_BULK_SOLID_GRANULAR_PARTICLES_GRAINS = 'XVR';
+
+    /**
+     * Bulk, scrap metal
+     */
+    case REC21_BULK_SCRAP_METAL = 'XVS';
+
+    /**
+     * Bulk, solid, fine particles (âpowdersâ)
+     */
+    case REC21_BULK_SOLID_FINE_PARTICLES_POWDERS = 'XVY';
+
+    /**
+     * Intermediate bulk container
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER = 'XWA';
+
+    /**
+     * Wickerbottle
+     */
+    case REC21_WICKERBOTTLE = 'XWB';
+
+    /**
+     * Intermediate bulk container, steel
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_STEEL = 'XWC';
+
+    /**
+     * Intermediate bulk container, aluminium
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_ALUMINIUM = 'XWD';
+
+    /**
+     * Intermediate bulk container, metal
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_METAL = 'XWF';
+
+    /**
+     * Intermediate bulk container, steel, pressurised > 10 kpa
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_STEEL_PRESSURISED__10_KPA = 'XWG';
+
+    /**
+     * Intermediate bulk container, aluminium, pressurised > 10 kpa
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_ALUMINIUM_PRESSURISED__10_KPA = 'XWH';
+
+    /**
+     * Intermediate bulk container, metal, pressure 10 kpa
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_METAL_PRESSURE_10_KPA = 'XWJ';
+
+    /**
+     * Intermediate bulk container, steel, liquid
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_STEEL_LIQUID = 'XWK';
+
+    /**
+     * Intermediate bulk container, aluminium, liquid
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_ALUMINIUM_LIQUID = 'XWL';
+
+    /**
+     * Intermediate bulk container, metal, liquid
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_METAL_LIQUID = 'XWM';
+
+    /**
+     * Intermediate bulk container, woven plastic, without coat/liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_WOVEN_PLASTIC_WITHOUT_COAT_LINER = 'XWN';
+
+    /**
+     * Intermediate bulk container, woven plastic, coated
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_WOVEN_PLASTIC_COATED = 'XWP';
+
+    /**
+     * Intermediate bulk container, woven plastic, with liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_WOVEN_PLASTIC_WITH_LINER = 'XWQ';
+
+    /**
+     * Intermediate bulk container, woven plastic, coated and liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_WOVEN_PLASTIC_COATED_AND_LINER = 'XWR';
+
+    /**
+     * Intermediate bulk container, plastic film
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_PLASTIC_FILM = 'XWS';
+
+    /**
+     * Intermediate bulk container, textile with out coat/liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_TEXTILE_WITH_OUT_COAT_LINER = 'XWT';
+
+    /**
+     * Intermediate bulk container, natural wood, with inner liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_NATURAL_WOOD_WITH_INNER_LINER = 'XWU';
+
+    /**
+     * Intermediate bulk container, textile, coated
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_TEXTILE_COATED = 'XWV';
+
+    /**
+     * Intermediate bulk container, textile, with liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_TEXTILE_WITH_LINER = 'XWW';
+
+    /**
+     * Intermediate bulk container, textile, coated and liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_TEXTILE_COATED_AND_LINER = 'XWX';
+
+    /**
+     * Intermediate bulk container, plywood, with inner liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_PLYWOOD_WITH_INNER_LINER = 'XWY';
+
+    /**
+     * Intermediate bulk container, reconstituted wood, with inner liner
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RECONSTITUTED_WOOD_WITH_INNER_LINER = 'XWZ';
+
+    /**
+     * Bag, woven plastic, without inner coat/liner
+     */
+    case REC21_BAG_WOVEN_PLASTIC_WITHOUT_INNER_COAT_LINER = 'XXA';
+
+    /**
+     * Bag, woven plastic, sift proof
+     */
+    case REC21_BAG_WOVEN_PLASTIC_SIFT_PROOF = 'XXB';
+
+    /**
+     * Bag, woven plastic, water resistant
+     */
+    case REC21_BAG_WOVEN_PLASTIC_WATER_RESISTANT = 'XXC';
+
+    /**
+     * Bag, plastics film
+     */
+    case REC21_BAG_PLASTICS_FILM = 'XXD';
+
+    /**
+     * Bag, textile, without inner coat/liner
+     */
+    case REC21_BAG_TEXTILE_WITHOUT_INNER_COAT_LINER = 'XXF';
+
+    /**
+     * Bag, textile, sift proof
+     */
+    case REC21_BAG_TEXTILE_SIFT_PROOF = 'XXG';
+
+    /**
+     * Bag, textile, water resistant
+     */
+    case REC21_BAG_TEXTILE_WATER_RESISTANT = 'XXH';
+
+    /**
+     * Bag, paper, multi-wall
+     */
+    case REC21_BAG_PAPER_MULTIWALL = 'XXJ';
+
+    /**
+     * Bag, paper, multi-wall, water resistant
+     */
+    case REC21_BAG_PAPER_MULTIWALL_WATER_RESISTANT = 'XXK';
+
+    /**
+     * Composite packaging, plastic receptacle in steel drum
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_STEEL_DRUM = 'XYA';
+
+    /**
+     * Composite packaging, plastic receptacle in steel crate box
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_STEEL_CRATE_BOX = 'XYB';
+
+    /**
+     * Composite packaging, plastic receptacle in aluminium drum
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_ALUMINIUM_DRUM = 'XYC';
+
+    /**
+     * Composite packaging, plastic receptacle in aluminium crate
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_ALUMINIUM_CRATE = 'XYD';
+
+    /**
+     * Composite packaging, plastic receptacle in wooden box
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_WOODEN_BOX = 'XYF';
+
+    /**
+     * Composite packaging, plastic receptacle in plywood drum
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_PLYWOOD_DRUM = 'XYG';
+
+    /**
+     * Composite packaging, plastic receptacle in plywood box
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_PLYWOOD_BOX = 'XYH';
+
+    /**
+     * Composite packaging, plastic receptacle in fibre drum
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_FIBRE_DRUM = 'XYJ';
+
+    /**
+     * Composite packaging, plastic receptacle in fibreboard box
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_FIBREBOARD_BOX = 'XYK';
+
+    /**
+     * Composite packaging, plastic receptacle in plastic drum
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_PLASTIC_DRUM = 'XYL';
+
+    /**
+     * Composite packaging, plastic receptacle in solid plastic box
+     */
+    case REC21_COMPOSITE_PACKAGING_PLASTIC_RECEPTACLE_IN_SOLID_PLASTIC_BOX = 'XYM';
+
+    /**
+     * Composite packaging, glass receptacle in steel drum
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_STEEL_DRUM = 'XYN';
+
+    /**
+     * Composite packaging, glass receptacle in steel crate box
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_STEEL_CRATE_BOX = 'XYP';
+
+    /**
+     * Composite packaging, glass receptacle in aluminium drum
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_ALUMINIUM_DRUM = 'XYQ';
+
+    /**
+     * Composite packaging, glass receptacle in aluminium crate
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_ALUMINIUM_CRATE = 'XYR';
+
+    /**
+     * Composite packaging, glass receptacle in wooden box
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_WOODEN_BOX = 'XYS';
+
+    /**
+     * Composite packaging, glass receptacle in plywood drum
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_PLYWOOD_DRUM = 'XYT';
+
+    /**
+     * Composite packaging, glass receptacle in wickerwork hamper
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_WICKERWORK_HAMPER = 'XYV';
+
+    /**
+     * Composite packaging, glass receptacle in fibre drum
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_FIBRE_DRUM = 'XYW';
+
+    /**
+     * Composite packaging, glass receptacle in fibreboard box
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_FIBREBOARD_BOX = 'XYX';
+
+    /**
+     * Composite packaging, glass receptacle in expandable plastic pack
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_EXPANDABLE_PLASTIC_PACK = 'XYY';
+
+    /**
+     * Composite packaging, glass receptacle in solid plastic pack
+     */
+    case REC21_COMPOSITE_PACKAGING_GLASS_RECEPTACLE_IN_SOLID_PLASTIC_PACK = 'XYZ';
+
+    /**
+     * Intermediate bulk container, paper, multi-wall
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_PAPER_MULTIWALL = 'XZA';
+
+    /**
+     * Bag, large
+     */
+    case REC21_BAG_LARGE = 'XZB';
+
+    /**
+     * Intermediate bulk container, paper, multi-wall, water resistant
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_PAPER_MULTIWALL_WATER_RESISTANT = 'XZC';
+
+    /**
+     * Intermediate bulk container, rigid plastic, with structural equipment,
+     * solids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_WITH_STRUCTURAL_EQUIPMENT_SOLIDS = 'XZD';
+
+    /**
+     * Intermediate bulk container, rigid plastic, freestanding, solids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_FREESTANDING_SOLIDS = 'XZF';
+
+    /**
+     * Intermediate bulk container, rigid plastic, with structural equipment,
+     * pressurised
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_WITH_STRUCTURAL_EQUIPMENT_PRESSURISED = 'XZG';
+
+    /**
+     * Intermediate bulk container, rigid plastic, freestanding, pressurised
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_FREESTANDING_PRESSURISED = 'XZH';
+
+    /**
+     * Intermediate bulk container, rigid plastic, with structural equipment,
+     * liquids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_WITH_STRUCTURAL_EQUIPMENT_LIQUIDS = 'XZJ';
+
+    /**
+     * Intermediate bulk container, rigid plastic, freestanding, liquids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RIGID_PLASTIC_FREESTANDING_LIQUIDS = 'XZK';
+
+    /**
+     * Intermediate bulk container, composite, rigid plastic, solids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_RIGID_PLASTIC_SOLIDS = 'XZL';
+
+    /**
+     * Intermediate bulk container, composite, flexible plastic, solids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_FLEXIBLE_PLASTIC_SOLIDS = 'XZM';
+
+    /**
+     * Intermediate bulk container, composite, rigid plastic, pressurised
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_RIGID_PLASTIC_PRESSURISED = 'XZN';
+
+    /**
+     * Intermediate bulk container, composite, flexible plastic, pressurised
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_FLEXIBLE_PLASTIC_PRESSURISED = 'XZP';
+
+    /**
+     * Intermediate bulk container, composite, rigid plastic, liquids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_RIGID_PLASTIC_LIQUIDS = 'XZQ';
+
+    /**
+     * Intermediate bulk container, composite, flexible plastic, liquids
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE_FLEXIBLE_PLASTIC_LIQUIDS = 'XZR';
+
+    /**
+     * Intermediate bulk container, composite
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_COMPOSITE = 'XZS';
+
+    /**
+     * Intermediate bulk container, fibreboard
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_FIBREBOARD = 'XZT';
+
+    /**
+     * Intermediate bulk container, flexible
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_FLEXIBLE = 'XZU';
+
+    /**
+     * Intermediate bulk container, metal, other than steel
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_METAL_OTHER_THAN_STEEL = 'XZV';
+
+    /**
+     * Intermediate bulk container, natural wood
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_NATURAL_WOOD = 'XZW';
+
+    /**
+     * Intermediate bulk container, plywood
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_PLYWOOD = 'XZX';
+
+    /**
+     * Intermediate bulk container, reconstituted wood
+     */
+    case REC21_INTERMEDIATE_BULK_CONTAINER_RECONSTITUTED_WOOD = 'XZY';
+
+    /**
+     * Mutually defined
+     */
+    case REC21_MUTUALLY_DEFINED = 'XZZ';
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdVATExemptionReasonCode.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdVATExemptionReasonCode.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/codelistsenum/ZugferdVATExemptionReasonCode.php	(revision 8542)
@@ -0,0 +1,438 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\codelistsenum;
+
+/**
+ * Class representing CEF VATEX â VAT exemption reason code
+ * For BT-121
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   L. Ollivault
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+enum ZugferdVATExemptionReasonCode: string
+{
+
+    /**
+     * VATEX-EU-79-C
+     * Exempt based on article 79, point c of Council Directive 2006/112/EC
+     * Context of exemption: Exemptions relating to repayment of expenditures.
+     */
+    case VATEXEU79C = "VATEX-EU-79-C";
+
+    /**
+     * VATEX-EU-132
+     * Exempt based on article 132 of Council Directive 2006/112/EC
+     * Context of exemption: Exemptions for certain activities in public interest.
+     */
+    case VATEXEU132 = "VATEX-EU-132";
+
+    /**
+     * VATEX-EU-132-1A
+     * Exempt based on article 132, section 1 (a) of Council Directive 2006/112/EC
+     * Context of exemption: The supply by the public postal services of services other than passenger transport and telecommunications services, and the supply of goods incidental thereto.
+     */
+    case VATEXEU1321A = "VATEX-EU-132-1A";
+
+    /**
+     * VATEX-EU-132-1B
+     * Exempt based on article 132, section 1 (b) of Council Directive 2006/112/EC
+     * Context of exemption: Hospital and medical care and closely related activities undertaken by bodies governed by public law or, under social conditions comparable with those applicable to bodies governed by public law, by hospitals, centres for medical treatment or diagnosis and other duly recognised establishments of a similar nature.
+     */
+    case VATEXEU1321B = "VATEX-EU-132-1B";
+
+    /**
+     * VATEX-EU-132-1C
+     * Exempt based on article 132, section 1 (c) of Council Directive 2006/112/EC
+     * Context of exemption: The provision of medical care in the exercise of the medical and paramedical professions as defined by the Member State concerned.
+     */
+    case VATEXEU1321C = "VATEX-EU-132-1C";
+
+    /**
+     * VATEX-EU-132-1D
+     * Exempt based on article 132, section 1 (d) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of human organs, blood and milk.
+     */
+    case VATEXEU1321D = "VATEX-EU-132-1D";
+
+    /**
+     * VATEX-EU-132-1E
+     * Exempt based on article 132, section 1 (e) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services by dental technicians in their professional capacity and the supply of dental prostheses by dentists and dental technicians.
+     */
+    case VATEXEU1321E = "VATEX-EU-132-1E";
+
+    /**
+     * VATEX-EU-132-1F
+     * Exempt based on article 132, section 1 (f) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services by independent groups of persons, who are carrying on an activity which is exempt from VAT or in relation to which they are not taxable persons, for the purpose of rendering their members the services directly necessary for the exercise of that activity, where those groups merely claim from their members exact reimbursement of their share of the joint expenses, provided that such exemption is not likely to cause distortion of competition.
+     */
+    case VATEXEU1321F = "VATEX-EU-132-1F";
+
+    /**
+     * VATEX-EU-132-1G
+     * Exempt based on article 132, section 1 (g) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services and of goods closely linked to welfare and social security work, including those supplied by old people's homes, by bodies governed by public law or by other bodies recognised by the Member State concerned as being devoted to social wellbeing.
+     */
+    case VATEXEU1321G = "VATEX-EU-132-1G";
+
+    /**
+     * VATEX-EU-132-1H
+     * Exempt based on article 132, section 1 (h) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services and of goods closely linked to the protection of children and young persons by bodies governed by public law or by other organisations recognised by the Member State concerned as being devoted to social wellbeing.
+     */
+    case VATEXEU1321H = "VATEX-EU-132-1H";
+
+    /**
+     * VATEX-EU-132-1I
+     * Exempt based on article 132, section 1 (i) of Council Directive 2006/112/EC
+     * Context of exemption: The provision of children's or young people's education, school or university education, vocational training or retraining, including the supply of services and of goods closely related thereto, by bodies governed by public law having such as their aim or by other organisations recognised by the Member State concerned as having similar objects.
+     */
+    case VATEXEU1321I = "VATEX-EU-132-1I";
+
+    /**
+     * VATEX-EU-132-1J
+     * Exempt based on article 132, section 1 (j) of Council Directive 2006/112/EC
+     * Context of exemption: Tuition given privately by teachers and covering school or university education.
+     */
+    case VATEXEU1321J = "VATEX-EU-132-1J";
+
+    /**
+     * VATEX-EU-132-1K
+     * Exempt based on article 132, section 1 (k) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of staff by religious or philosophical institutions for the purpose of the activities referred to in points (b), (g), (h) and (i) and with a view to spiritual welfare.
+     */
+    case VATEXEU1321K = "VATEX-EU-132-1K";
+
+    /**
+     * VATEX-EU-132-1L
+     * Exempt based on article 132, section 1 (l) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services, and the supply of goods closely linked thereto, to their members in their common interest in return for a subscription fixed in accordance with their rules by non-profitmaking organisations with aims of a political, trade-union, religious, patriotic, philosophical, philanthropic or civic nature, provided that this exemption is not likely to cause distortion of competition.
+     */
+    case VATEXEU1321L = "VATEX-EU-132-1L";
+
+    /**
+     * VATEX-EU-132-1M
+     * Exempt based on article 132, section 1 (m) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of certain services closely linked to sport or physical education by non-profit-making organisations to persons taking part in sport or physical education.
+     */
+    case VATEXEU1321M = "VATEX-EU-132-1M";
+
+    /**
+     * VATEX-EU-132-1N
+     * Exempt based on article 132, section 1 (n) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of certain cultural services, and the supply of goods closely linked thereto, by bodies governed by public law or by other cultural bodies recognised by the Member State concerned.
+     */
+    case VATEXEU1321N = "VATEX-EU-132-1N";
+
+    /**
+     * VATEX-EU-132-1O
+     * Exempt based on article 132, section 1 (o) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of services and goods, by organisations whose activities are exempt pursuant to points (b), (g), (h), (i), (l), (m) and (n), in connection with fund-raising events organised exclusively for their own benefit, provided that exemption is not likely to cause distortion of competition.
+     */
+    case VATEXEU1321O = "VATEX-EU-132-1O";
+
+    /**
+     * VATEX-EU-132-1P
+     * Exempt based on article 132, section 1 (p) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of transport services for sick or injured persons in vehicles specially designed for the purpose, by duly authorised bodies.
+     */
+    case VATEXEU1321P = "VATEX-EU-132-1P";
+
+    /**
+     * VATEX-EU-132-1Q
+     * Exempt based on article 132, section 1 (q) of Council Directive 2006/112/EC
+     * Context of exemption: The activities, other than those of a commercial nature, carried out by public radio and television bodies.
+     */
+    case VATEXEU1321Q = "VATEX-EU-132-1Q";
+
+    /**
+     * VATEX-EU-143
+     * Exempt based on article 143 of Council Directive 2006/112/EC
+     * Context of exemption: Exemptions on importation.
+     */
+    case VATEXEU143 = "VATEX-EU-143";
+
+    /**
+     * VATEX-EU-143-1A
+     * Exempt based on article 143, section 1 (a) of Council Directive 2006/112/EC
+     * Context of exemption: The final importation of goods of which the supply by a taxable person would in all circumstances be exempt within their respective territory.
+     */
+    case VATEX_EU_143_1A = "VATEX-EU-143-1A";
+
+    /**
+     * VATEX-EU-143-1B
+     * Exempt based on article 143, section 1 (b) of Council Directive 2006/112/EC
+     * Context of exemption: The final importation of goods governed by Council Directives 69/169/EEC (1), 83/181/EEC (2) and 2006/79/EC (3).
+     */
+    case VATEX_EU_143_1B = "VATEX-EU-143-1B";
+
+    /**
+     * VATEX-EU-143-1C
+     * Exempt based on article 143, section 1 (c) of Council Directive 2006/112/EC
+     * Context of exemption: The final importation of goods, in free circulation from a third territory forming part of the Community customs territory, which would be entitled to exemption under point (b) if they had been imported within the meaning of the first paragraph of Article 30.
+     */
+    case VATEX_EU_143_1C = "VATEX-EU-143-1C";
+
+    /**
+     * VATEX-EU-143-1D
+     * Exempt based on article 143, section 1 (d) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of goods dispatched or transported from a third territory or a third country into a Member State other than that in which the dispatch or transport of goods ends, where the supply of such goods by the importer designated or recognised under Article 201 as liable for payment of VAT is exempt under Article 138.
+     */
+    case VATEX_EU_143_1D = "VATEX-EU-143-1D";
+
+    /**
+     * VATEX-EU-143-1E
+     * Exempt based on article 143, section 1 (e) of Council Directive 2006/112/EC
+     * Context of exemption: The reimportation, by the person who exported them, of goods in the state in which they were exported, where those goods are exempt from customs duties.
+     */
+    case VATEX_EU_143_1E = "VATEX-EU-143-1E";
+
+    /**
+     * VATEX-EU-143-1F
+     * Exempt based on article 143, section 1 (f) of Council Directive 2006/112/EC
+     * Context of exemption: The importation, under diplomatic and consular arrangements, of goods which are exempt from customs duties.
+     */
+    case VATEX_EU_143_1F = "VATEX-EU-143-1F";
+
+    /**
+     * VATEX-EU-143-1FA
+     * Exempt based on article 143, section 1 (fa) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of goods by the European Community, the European Atomic Energy Community, the European Central
+     * Bank or the European Investment Bank, or by the bodies set up by the Communities to which the Protocol of 8 April 1965 on the
+     * privileges and immunities of the European Communities applies, within the limits and under the conditions of that Protocol and the
+     * agreements for its implementation or the headquarters agreements, in so far as it does not lead to distortion of  competition;
+     */
+    case VATEX_EU_143_1FA = "VATEX-EU-143-1FA";
+
+    /**
+     * VATEX-EU-143-1G
+     * Exempt based on article 143, section 1 (g) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of goods by international bodies, other than those referred to in point (fa), recognised as such by the public authorities of the host Member State, or by members of such bodies, within the limits and under the conditions laid down by the international conventions establishing the bodies or by headquarters agreements;
+     */
+    case VATEX_EU_143_1G = "VATEX-EU-143-1G";
+
+    /**
+     * VATEX-EU-143-1H
+     * Exempt based on article 143, section 1 (h) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of goods, into Member States party to the North Atlantic Treaty, by the armed forces of other States party to that Treaty for the use of those forces or the civilian staff accompanying them or for supplying their messes or canteens where such forces take part in the common defence effort.
+     */
+    case VATEX_EU_143_1H = "VATEX-EU-143-1H";
+
+    /**
+     * VATEX-EU-143-1I
+     * Exempt based on article 143, section 1 (i) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of goods by the armed forces of the United Kingdom stationed in the island of Cyprus pursuant to the Treaty of Establishment concerning the Republic of Cyprus, dated 16 August 1960, which are for the use of those forces or the civilian staff accompanying them or for supplying their messes or canteens.
+     */
+    case VATEX_EU_143_1I = "VATEX-EU-143-1I";
+
+    /**
+     * VATEX-EU-143-1J
+     * Exempt based on article 143, section 1 (j) of Council Directive 2006/112/EC
+     * Context of exemption: The importation into ports, by sea fishing undertakings, of their catches, unprocessed or after undergoing preservation for marketing but before being supplied.
+     */
+    case VATEX_EU_143_1J = "VATEX-EU-143-1J";
+
+    /**
+     * VATEX-EU-143-1K
+     * Exempt based on article 143, section 1 (k) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of gold by central banks.
+     */
+    case VATEX_EU_143_1K = "VATEX-EU-143-1K";
+
+    /**
+     * VATEX-EU-143-1L
+     * Exempt based on article 143, section 1 (l) of Council Directive 2006/112/EC
+     * Context of exemption: The importation of gas through a natural gas system or any network connected to such a system or fed in from a vessel transporting gas into a natural gas system or any upstream pipeline network, of electricity or of heat or cooling energy through heating or cooling networks.
+     */
+    case VATEX_EU_143_1L = "VATEX-EU-143-1L";
+
+    /**
+     * VATEX-EU-148
+     * Exempt based on article 148 of Council Directive 2006/112/EC
+     * Context of exemption: Exemptions related to international transport.
+     */
+    case VATEX_EU_148 = "VATEX-EU-148";
+
+    /**
+     * VATEX-EU-148-A
+     * Exempt based on article 148, section (a) of Council Directive 2006/112/EC
+     * Context of exemption: Fuel supplies for commercial international transport vessels.
+     */
+    case VATEX_EU_148_A = "VATEX-EU-148-A";
+
+    /**
+     * VATEX-EU-148-B
+     * Exempt based on article 148, section (b) of Council Directive 2006/112/EC
+     * Context of exemption: Fuel supplies for fighting ships in international transport.
+     */
+    case VATEX_EU_148_B = "VATEX-EU-148-B";
+
+    /**
+     * VATEX-EU-148-C
+     * Exempt based on article 148, section (c) of Council Directive 2006/112/EC
+     * Context of exemption: Maintenance, modification, chartering and hiring of international transport vessels.
+     */
+    case VATEX_EU_148_C = "VATEX-EU-148-C";
+
+    /**
+     * VATEX-EU-148-D
+     * Exempt based on article 148, section (d) of Council Directive 2006/112/EC
+     * Context of exemption: Services directly linked to the exportation or importation of goods, including transportation and ancillary services, such as loading, unloading, handling, storage and warehousing.
+     */
+    case VATEX_EU_148_D = "VATEX-EU-148-D";
+
+    /**
+     * VATEX-EU-148-E
+     * Exempt based on article 148, section (e) of Council Directive 2006/112/EC
+     * Context of exemption: Services directly linked to the exportation or importation of goods, including transportation and ancillary services, such as loading, unloading, handling, storage and warehousing, supplied by intermediaries, including customs agents, and which are performed on behalf of the exporter or importer.
+     */
+    case VATEX_EU_148_E = "VATEX-EU-148-E";
+
+    /**
+     * VATEX-EU-148-F
+     * Exempt based on article 148, section (f) of Council Directive 2006/112/EC
+     * Context of exemption: Maintenance, repair, etc., of aircraft used for commercial international transport.
+     */
+    case VATEX_EU_148_F = "VATEX-EU-148-F";
+
+    /**
+     * VATEX-EU-148-G
+     * Exempt based on article 148, section (g) of Council Directive 2006/112/EC
+     * Context of exemption: Supplies of goods or services to be used or consumed on board commercial international transport vessels or aircraft, and the supply of goods or services directly connected with the supplies referred to above, up to the amount of the exemption applicable to such supplies.
+     */
+    case VATEX_EU_148_G = "VATEX-EU-148-G";
+
+    /**
+     * VATEX-EU-151
+     * Exempt based on article 151 of Council Directive 2006/112/EC
+     * Context of exemption: Exemptions for final importation of certain goods.
+     */
+    case VATEX_EU_151 = "VATEX-EU-151";
+
+    /**
+     * VATEX-EU-151-1A
+     * Exempt based on article 151, section 1 (a) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services under diplomatic and consular arrangements.
+     */
+    case VATEX_EU_151_1A = "VATEX-EU-151-1A";
+
+    /**
+     * VATEX-EU-151-1AA
+     * Exempt based on article 151, section 1 (aa) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services to the European Community, the European Atomic Energy Community,
+     * the European Central Bank or the European Investment Bank, or to the bodies set up by the Communities to which the Protocol
+     * of 8 April 1965 on the privileges and immunities of the European Communities applies, within the limits and under the
+     * conditions of that Protocol and the agreements for its implementation or the headquarters agreements, in so far as it does
+     * not lead to distortion of competition.
+     */
+    case VATEX_EU_151_1AA = "VATEX-EU-151-1AA";
+
+    /**
+     * VATEX-EU-151-1B
+     * Exempt based on article 151, section 1 (b) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services to international bodies, other than those referred to in point (aa), recognised as such by the public authorities of the host Member States, and to members of such bodies, within the limits and under the conditions laid down by the international conventions establishing the bodies or by headquarters agreements.
+     */
+    case VATEX_EU_151_1B = "VATEX-EU-151-1B";
+
+    /**
+     * VATEX-EU-151-1C
+     * Exempt based on article 151, section 1 (c) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services within a Member State which is a party to the North Atlantic Treaty, intended either for the armed forces of other States party to that Treaty for the use of those forces, or of the civilian staff accompanying them, or for supplying their messes or canteens when such forces take part in the common defence effort.
+     */
+    case VATEX_EU_151_1C = "VATEX-EU-151-1C";
+
+    /**
+     * VATEX-EU-151-1D
+     * Exempt based on article 151, section 1 (d) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services to another Member State, intended for the armed forces of any State which is a party to the North Atlantic Treaty, other than the Member State of destination itself, for the use of those forces, or of the civilian staff accompanying them, or for supplying their messes or canteens when such forces take part in the common defence effort.
+     */
+    case VATEX_EU_151_1D = "VATEX-EU-151-1D";
+
+    /**
+     * VATEX-EU-151-1E
+     * Exempt based on article 151, section 1 (e) of Council Directive 2006/112/EC
+     * Context of exemption: The supply of goods or services to the armed forces of the United Kingdom stationed in the island of Cyprus pursuant to the Treaty of Establishment concerning the Republic of Cyprus, dated 16 August 1960, which are for the use of those forces, or of the civilian staff accompanying them, or for supplying their messes or canteens.
+     */
+    case VATEX_EU_151_1E = "VATEX-EU-151-1E";
+
+    /**
+     * VATEX-EU-309
+     * Exempt based on article 309 of Council Directive 2006/112/EC
+     * Context of exemption: Travel agents performed outside of EU.
+     */
+    case VATEX_EU_309 = "VATEX-EU-309";
+
+    /**
+     * VATEX-EU-AE
+     * Reverse charge
+     * Supports EN 16931-1 rule BR-AE-10
+     * Only use with VAT category code AE
+     */
+    case VATEX_EU_AE = "VATEX-EU-AE";
+
+    /**
+     * VATEX-EU-D
+     * Intra-Community acquisition from second hand means of transport
+     * Second-hand means of transport - Indication that VAT has been paid according to the relevant transitional arrangements
+     * Only use with VAT category code E
+     */
+    case VATEX_EU_D = "VATEX-EU-D";
+
+    /**
+     * VATEX-EU-F
+     * Intra-Community acquisition of second hand goods
+     * Second-hand goods - Indication that the VAT margin scheme for second-hand goods has been applied.
+     * Only use with VAT category code E
+     */
+    case VATEX_EU_F = "VATEX-EU-F";
+
+    /**
+     * VATEX-EU-G
+     * Export outside the EU
+     * Supports EN 16931-1 rule BR-G-10
+     * Only use with VAT category code G
+     */
+    case VATEX_EU_G = "VATEX-EU-G";
+
+    /**
+     * VATEX-EU-I
+     * Intra-Community acquisition of works of art
+     * Works of art - Indication that the VAT margin scheme for works of art has been applied.
+     * Only use with VAT category code E
+     */
+    case VATEX_EU_I = "VATEX-EU-I";
+
+    /**
+     * VATEX-EU-IC
+     * Intra-Community supply
+     * Supports EN 16931-1 rule BR-IC-10
+     * Only use with VAT category code K
+     */
+    case VATEX_EU_IC = "VATEX-EU-IC";
+
+    /**
+     * VATEX-EU-J
+     * Intra-Community acquisition of collectors items and antiques
+     * Collectors' items and antiques - Indication that the VAT margin scheme for collectorâs items and antiques has been applied.
+     * Only use with VAT category code E
+     */
+    case VATEX_EU_J = "VATEX-EU-J";
+
+    /**
+     * VATEX-EU-O
+     * Not subject to VAT
+     * Supports EN 16931-1 rule BR-O-10
+     * Only use with VAT category code O
+     */
+    case VATEX_EU_O = "VATEX-EU-O";
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdBaseException.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdBaseException.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdBaseException.php	(revision 8542)
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+ namespace horstoeko\zugferd\exception;
+
+/**
+ * Class representing an exception for missing a file
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdBaseException extends \Exception
+{
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdExceptionCodes.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdExceptionCodes.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdExceptionCodes.php	(revision 8542)
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\exception;
+
+/**
+ * Class representing the internal coes for Order-X-Exceptions
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdExceptionCodes
+{
+    public const CANNOTFINDPROFILESTRING = -1101;
+
+    public const UNKNOWNPROFILE = -1102;
+
+    public const MIMETYPENOTSUPPORTED = -1103;
+
+    public const UNKNOWNDATEFORMAT = -1104;
+
+    public const NOVALIDATTACHMENTFOUNDINPDF = -1105;
+
+    public const UNKNOWNPROFILEPARAMETER = -1106;
+
+    public const UNKNOWNSYNTAX = -1107;
+
+    public const UNKNOWNMIMETYPE = -1108;
+
+    public const UNSUPPORTEDMIMETYPE = -1109;
+
+    public const NOPDFATTACHMENTFOUND = -1110;
+
+    public const FILENOTFOUND = -2000;
+
+    public const FILENOTREADABLE = -2001;
+
+    public const INVALIDARGUMENT = -3000;
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdInvalidArgumentException.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdInvalidArgumentException.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdInvalidArgumentException.php	(revision 8542)
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\exception;
+
+use Throwable;
+
+/**
+ * Class representing an exception if an argument is invalid or an argument is not of the expected type
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdInvalidArgumentException extends ZugferdBaseException
+{
+    /**
+     * Constructor
+     *
+     * @param string         $message
+     * @param Throwable|null $previous
+     */
+    public function __construct(string $message, ?Throwable $previous = null)
+    {
+        parent::__construct($message, ZugferdExceptionCodes::INVALIDARGUMENT, $previous);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdNoPdfAttachmentFoundException.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdNoPdfAttachmentFoundException.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdNoPdfAttachmentFoundException.php	(revision 8542)
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\exception;
+
+use Throwable;
+
+/**
+ * Class representing an exception when the ZugferdPdfReader has not found any
+ * valid attachment
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdNoPdfAttachmentFoundException extends ZugferdBaseException
+{
+    /**
+     * Constructor
+     *
+     * @param Throwable|null $previous
+     */
+    public function __construct(?Throwable $previous = null)
+    {
+        parent::__construct("No PDF attachment found", ZugferdExceptionCodes::NOPDFATTACHMENTFOUND, $previous);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnknownMimetype.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnknownMimetype.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnknownMimetype.php	(revision 8542)
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\exception;
+
+use Throwable;
+
+/**
+ * Class representing an exception for unknown mimetype
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdUnknownMimetype extends ZugferdBaseException
+{
+    /**
+     * Constructor
+     *
+     * @param Throwable|null $previous
+     */
+    public function __construct(?Throwable $previous = null)
+    {
+        parent::__construct("No mimetype found", ZugferdExceptionCodes::UNKNOWNMIMETYPE, $previous);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnsupportedMimetype.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnsupportedMimetype.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/exception/ZugferdUnsupportedMimetype.php	(revision 8542)
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * This file is a part of horstoeko/zugferd.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace horstoeko\zugferd\exception;
+
+use Throwable;
+
+/**
+ * Class representing an exception for unsupported mimetype
+ *
+ * @category Zugferd
+ * @package  Zugferd
+ * @author   D. Erling <horstoeko@erling.com.de>
+ * @license  https://opensource.org/licenses/MIT MIT
+ * @link     https://github.com/horstoeko/zugferd
+ */
+class ZugferdUnsupportedMimetype extends ZugferdBaseException
+{
+    /**
+     * Constructor
+     *
+     * @param Throwable|null $previous
+     */
+    public function __construct(string $mimetype, ?Throwable $previous = null)
+    {
+        parent::__construct(
+            sprintf('Mimetype %s is not supported', $mimetype),
+            ZugferdExceptionCodes::UNSUPPORTEDMIMETYPE,
+            $previous,
+        );
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL.xslt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL.xslt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL.xslt	(revision 8542)
@@ -0,0 +1,8829 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsl:stylesheet xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:saxon="http://saxon.sf.net/" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<!--Implementers: please note that overriding process-prolog or process-root is 
+    the preferred method for meta-stylesheets to use where possible. -->
+
+<xsl:param name="archiveDirParameter" />
+  <xsl:param name="archiveNameParameter" />
+  <xsl:param name="fileNameParameter" />
+  <xsl:param name="fileDirParameter" />
+  <xsl:variable name="document-uri">
+    <xsl:value-of select="document-uri(/)" />
+  </xsl:variable>
+
+<!--PHASES-->
+
+
+<!--PROLOG-->
+<xsl:output indent="yes" method="xml" omit-xml-declaration="no" standalone="yes" />
+
+<!--XSD TYPES FOR XSLT2-->
+
+
+<!--KEYS AND FUNCTIONS-->
+
+
+<!--DEFAULT RULES-->
+
+
+<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-select-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="." />
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">
+        <xsl:value-of select="name()" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>*:</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>[namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])" />
+    <xsl:text>[</xsl:text>
+    <xsl:value-of select="1+ $preceding" />
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+  <xsl:template match="@*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">@<xsl:value-of select="name()" />
+</xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@*[local-name()='</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>' and namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-2-->
+<!--This mode can be used to generate prefixed XPath for humans-->
+<xsl:template match="node() | @*" mode="schematron-get-full-path-2">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="preceding-sibling::*[name(.)=name(current())]">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+<!--MODE: SCHEMATRON-FULL-PATH-3-->
+<!--This mode can be used to generate prefixed XPath for humans 
+	(Top-level element has index)-->
+
+<xsl:template match="node() | @*" mode="schematron-get-full-path-3">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="parent::*">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-FROM-PATH -->
+<xsl:template match="/" mode="generate-id-from-path" />
+  <xsl:template match="text()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')" />
+  </xsl:template>
+  <xsl:template match="comment()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')" />
+  </xsl:template>
+  <xsl:template match="processing-instruction()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.@', name())" />
+  </xsl:template>
+  <xsl:template match="*" mode="generate-id-from-path" priority="-0.5">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:text>.</xsl:text>
+    <xsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')" />
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-2 -->
+<xsl:template match="/" mode="generate-id-2">U</xsl:template>
+  <xsl:template match="*" mode="generate-id-2" priority="2">
+    <xsl:text>U</xsl:text>
+    <xsl:number count="*" level="multiple" />
+  </xsl:template>
+  <xsl:template match="node()" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>n</xsl:text>
+    <xsl:number count="node()" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="string-length(local-name(.))" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="translate(name(),':','.')" />
+  </xsl:template>
+<!--Strip characters-->  <xsl:template match="text()" priority="-1" />
+
+<!--SCHEMA SETUP-->
+<xsl:template match="/">
+    <svrl:schematron-output schemaVersion="iso" title="Schema for Factur-X; 1.07.2; Accounting, BASIC without Lines">
+      <xsl:comment>
+        <xsl:value-of select="$archiveDirParameter" />  Â 
+		 <xsl:value-of select="$archiveNameParameter" /> Â 
+		 <xsl:value-of select="$fileNameParameter" /> Â 
+		 <xsl:value-of select="$fileDirParameter" />
+      </xsl:comment>
+      <svrl:ns-prefix-in-attribute-values prefix="rsm" uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="qdt" uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="ram" uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="udt" uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M5" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M6" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M7" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M8" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M9" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M10" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M11" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M12" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M13" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M14" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M15" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M16" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M17" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M18" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M19" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M20" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M21" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M22" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M23" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M24" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M25" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M26" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M27" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M28" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M29" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M30" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M31" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M32" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M33" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M34" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M35" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M36" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M37" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M38" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M39" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M40" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M41" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M42" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M43" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M44" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M45" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M46" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M47" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M48" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M49" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M50" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M51" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M52" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M53" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M54" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M55" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M56" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M57" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M58" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M59" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M60" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M61" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M62" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M63" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M64" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M65" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M66" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M67" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M68" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M69" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M70" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M71" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M72" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M73" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M74" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M75" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M76" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M77" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M78" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M79" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M80" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M81" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M82" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M83" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M84" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M85" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M86" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M87" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M88" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M89" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M90" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M91" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M92" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M93" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M94" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M95" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M96" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M97" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M98" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M99" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M100" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M101" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M102" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M103" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M104" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M105" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M106" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M107" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M108" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M109" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M110" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M111" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M112" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M113" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M114" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M115" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M116" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M117" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M118" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M119" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M120" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M121" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M122" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M123" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M124" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M125" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M126" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M127" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M128" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M129" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M130" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M131" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M132" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M133" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M134" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M135" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M136" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M137" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M138" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M139" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M140" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M141" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M142" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M143" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M144" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M145" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M146" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M147" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M148" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M149" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M150" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M151" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M152" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M153" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M154" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M155" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M156" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M157" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M158" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M159" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M160" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M161" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M162" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M163" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M164" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M165" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M166" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M167" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M168" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M169" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M170" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M171" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M172" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M173" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M174" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M175" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M176" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M177" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M178" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M179" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M180" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M181" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M182" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M183" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M184" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M185" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M186" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M187" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M188" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M189" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M190" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M191" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M192" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M193" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M194" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M195" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M196" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M197" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M198" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M199" select="/" />
+    </svrl:schematron-output>
+  </xsl:template>
+
+<!--SCHEMATRON PATTERNS-->
+<svrl:text>Schema for Factur-X; 1.07.2; Accounting, BASIC without Lines</svrl:text>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M5" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:BasisAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:BasisAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000047</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-45]-Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CalculatedAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CalculatedAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000048</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-46]-Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000049</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-47]-Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')">
+          <xsl:attribute name="id">FX-SCH-A-000050</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-48]-Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))">
+          <xsl:attribute name="id">FX-SCH-A-000051</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-03]-Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))">
+          <xsl:attribute name="id">FX-SCH-A-000052</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000053</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-19]-The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000054</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-20]-The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M5" priority="-1" />
+  <xsl:template match="@*|node()" mode="M5" priority="-2">
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" mode="M6" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000055</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000056</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M6" priority="-1" />
+  <xsl:template match="@*|node()" mode="M6" priority="-2">
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" mode="M7" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )">
+          <xsl:attribute name="id">FX-SCH-A-000057</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000058</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M7" priority="-1" />
+  <xsl:template match="@*|node()" mode="M7" priority="-2">
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" mode="M8" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000059</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000060</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M8" priority="-1" />
+  <xsl:template match="@*|node()" mode="M8" priority="-2">
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" mode="M9" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000061</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000062</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000063</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000064</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-05]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000065</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-21]-Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000066</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-01]-The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000067</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-02]-The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M9" priority="-1" />
+  <xsl:template match="@*|node()" mode="M9" priority="-2">
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" mode="M10" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000068</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000069</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000070</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-38]-Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000071</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-06]-Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000072</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-22]-Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000073</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-05]-The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000074</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-06]-The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M10" priority="-1" />
+  <xsl:template match="@*|node()" mode="M10" priority="-2">
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:PayeeTradeParty" mode="M11" priority="1000">
+    <svrl:fired-rule context="//ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))">
+          <xsl:attribute name="id">FX-SCH-A-000075</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-17]-The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M11" priority="-1" />
+  <xsl:template match="@*|node()" mode="M11" priority="-2">
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTaxRepresentativeTradeParty" mode="M12" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name)">
+          <xsl:attribute name="id">FX-SCH-A-000076</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-18]-The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000077</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-19]-The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress/ram:CountryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress/ram:CountryID)">
+          <xsl:attribute name="id">FX-SCH-A-000078</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-20]-The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000079</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-56]-Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M12" priority="-1" />
+  <xsl:template match="@*|node()" mode="M12" priority="-2">
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTradeParty" mode="M13" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000001</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M13" priority="-1" />
+  <xsl:template match="@*|node()" mode="M13" priority="-2">
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" mode="M14" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000002</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix âELâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M14" priority="-1" />
+  <xsl:template match="@*|node()" mode="M14" priority="-2">
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge" mode="M15" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ChargeIndicator)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ChargeIndicator)">
+          <xsl:attribute name="id">FX-SCH-A-000080</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-66]-Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M15" priority="-1" />
+  <xsl:template match="@*|node()" mode="M15" priority="-2">
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M16" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000081</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000082</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M16" priority="-1" />
+  <xsl:template match="@*|node()" mode="M16" priority="-2">
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M17" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000083</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000084</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M17" priority="-1" />
+  <xsl:template match="@*|node()" mode="M17" priority="-2">
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M18" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000085</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000086</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M18" priority="-1" />
+  <xsl:template match="@*|node()" mode="M18" priority="-2">
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M19" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000087</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000088</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M19" priority="-1" />
+  <xsl:template match="@*|node()" mode="M19" priority="-2">
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M20" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000089</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000090</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M20" priority="-1" />
+  <xsl:template match="@*|node()" mode="M20" priority="-2">
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M21" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000091</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000092</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M21" priority="-1" />
+  <xsl:template match="@*|node()" mode="M21" priority="-2">
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M22" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000093</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000094</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-06]-A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M22" priority="-1" />
+  <xsl:template match="@*|node()" mode="M22" priority="-2">
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M23" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000095</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000096</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M23" priority="-1" />
+  <xsl:template match="@*|node()" mode="M23" priority="-2">
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M24" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000097</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000098</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M24" priority="-1" />
+  <xsl:template match="@*|node()" mode="M24" priority="-2">
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M25" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000099</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000100</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M25" priority="-1" />
+  <xsl:template match="@*|node()" mode="M25" priority="-2">
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M26" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000101</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000102</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M26" priority="-1" />
+  <xsl:template match="@*|node()" mode="M26" priority="-2">
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M27" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000103</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000104</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M27" priority="-1" />
+  <xsl:template match="@*|node()" mode="M27" priority="-2">
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M28" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000105</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000106</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M28" priority="-1" />
+  <xsl:template match="@*|node()" mode="M28" priority="-2">
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M29" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000107</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000108</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M29" priority="-1" />
+  <xsl:template match="@*|node()" mode="M29" priority="-2">
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M30" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000109</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000110</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M30" priority="-1" />
+  <xsl:template match="@*|node()" mode="M30" priority="-2">
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M31" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000111</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000112</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-07]-A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M31" priority="-1" />
+  <xsl:template match="@*|node()" mode="M31" priority="-2">
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M32" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000113</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000114</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M32" priority="-1" />
+  <xsl:template match="@*|node()" mode="M32" priority="-2">
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M33" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000115</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-04]-An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000116</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M33" priority="-1" />
+  <xsl:template match="@*|node()" mode="M33" priority="-2">
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M34" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000117</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-12]-An Invoice shall have the Sum of Invoice line net amount (BT-106).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TaxBasisTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TaxBasisTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000003</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:GrandTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:GrandTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000004</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:DuePayableAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:DuePayableAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000005</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-15]-An Invoice shall have the Amount due for payment (BT-115).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000118</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-11]-Sum of allowances on document level (BT-107) = Î£ Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= &#xD;&#xA;round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100">
+          <xsl:attribute name="id">FX-SCH-A-000119</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-12]-Sum of charges on document level (BT-108) = Î£ Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100)  and not (ram:ChargeTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100)  and not (ram:AllowanceTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount))  *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) and not (ram:AllowanceTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))">
+          <xsl:attribute name="id">FX-SCH-A-000120</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-13]-Invoice total amount without VAT (BT-109) = Î£ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $Currency &#xD;&#xA;                                in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode&#xD;&#xA;                                satisfies (  &#xD;&#xA;                                  count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and  &#xD;&#xA;                                  (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or&#xD;&#xA;                                (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $Currency in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode satisfies ( count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000121</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000122</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000123</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-09]-The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000124</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-10]-The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000125</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-11]-The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000006</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000007</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000008</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000126</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-15]-The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000127</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-16]-The allowed maximum number of decimals for the Paid amount (BT-113) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000128</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-17]-The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000009</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))">
+          <xsl:attribute name="id">FX-SCH-A-000129</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-53]-If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M34" priority="-1" />
+  <xsl:template match="@*|node()" mode="M34" priority="-2">
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" mode="M35" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000130</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-14]-Invoice total VAT amount (BT-110) = Î£ VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M35" priority="-1" />
+  <xsl:template match="@*|node()" mode="M35" priority="-2">
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans" mode="M36" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TypeCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TypeCode)">
+          <xsl:attribute name="id">FX-SCH-A-000131</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-49]-A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))">
+          <xsl:attribute name="id">FX-SCH-A-000132</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-27]-Either the IBAN or a Proprietary ID (BT-84) shall be used.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M36" priority="-1" />
+  <xsl:template match="@*|node()" mode="M36" priority="-2">
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" mode="M37" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000134</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M37" priority="-1" />
+  <xsl:template match="@*|node()" mode="M37" priority="-2">
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" mode="M38" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000133</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-50]-A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M38" priority="-1" />
+  <xsl:template match="@*|node()" mode="M38" priority="-2">
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M39" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:ApplicableTradeTax" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:ApplicableTradeTax">
+          <xsl:attribute name="id">FX-SCH-A-000135</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M39" priority="-1" />
+  <xsl:template match="@*|node()" mode="M39" priority="-2">
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" mode="M40" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000136</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000137</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M40" priority="-1" />
+  <xsl:template match="@*|node()" mode="M40" priority="-2">
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" mode="M41" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000138</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-09]-The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000139</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M41" priority="-1" />
+  <xsl:template match="@*|node()" mode="M41" priority="-2">
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" mode="M42" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000140</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000141</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M42" priority="-1" />
+  <xsl:template match="@*|node()" mode="M42" priority="-2">
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" mode="M43" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000142</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000143</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000144</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
+          <xsl:attribute name="id">FX-SCH-A-000145</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-12]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M43" priority="-1" />
+  <xsl:template match="@*|node()" mode="M43" priority="-2">
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M44" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000146</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000147</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M44" priority="-1" />
+  <xsl:template match="@*|node()" mode="M44" priority="-2">
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M45" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000148</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000149</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M45" priority="-1" />
+  <xsl:template match="@*|node()" mode="M45" priority="-2">
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M46" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000150</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000151</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000152</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-11]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000153</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-13]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000154</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-14]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M46" priority="-1" />
+  <xsl:template match="@*|node()" mode="M46" priority="-2">
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice" mode="M47" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)">
+          <xsl:attribute name="id">FX-SCH-A-000155</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')">
+          <xsl:attribute name="id">FX-SCH-A-000010</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-01]-An Invoice shall have a Specification identifier (BT-24).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:ID !='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:ID !='')">
+          <xsl:attribute name="id">FX-SCH-A-000011</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-02]-An Invoice shall have an Invoice number (BT-1).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000012</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-03]-An Invoice shall have an Invoice issue date (BT-2).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:TypeCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:TypeCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000013</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-04]-An Invoice shall have an Invoice type code (BT-3).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000014</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-05]-An Invoice shall have an Invoice currency code (BT-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000015</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-06]-An Invoice shall contain the Seller name (BT-27).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000016</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-07]-An Invoice shall contain the Buyer name (BT-44).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000017</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-08]-An Invoice shall contain the Seller postal address (BG-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000018</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000156</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-10]-An Invoice shall contain the Buyer postal address (BG-8).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000157</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-11]-The Buyer postal address shall contain a Buyer country code (BT-55).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000158</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-62]-The Seller electronic address (BT-34) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000159</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-63]-The Buyer electronic address (BT-49) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M47" priority="-1" />
+  <xsl:template match="@*|node()" mode="M47" priority="-2">
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" mode="M48" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M48" priority="-1" />
+  <xsl:template match="@*|node()" mode="M48" priority="-2">
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" mode="M49" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M49" priority="-1" />
+  <xsl:template match="@*|node()" mode="M49" priority="-2">
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" mode="M50" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)=1">
+          <xsl:attribute name="id">FX-SCH-A-000160</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SubjectCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SubjectCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000161</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SubjectCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M50" priority="-1" />
+  <xsl:template match="@*|node()" mode="M50" priority="-2">
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" mode="M51" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" />
+    <xsl:variable name="codeValue4" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000162</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SubjectCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M51" priority="-1" />
+  <xsl:template match="@*|node()" mode="M51" priority="-2">
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" mode="M52" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M52" priority="-1" />
+  <xsl:template match="@*|node()" mode="M52" priority="-2">
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" mode="M53" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M53" priority="-1" />
+  <xsl:template match="@*|node()" mode="M53" priority="-2">
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" mode="M54" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue2" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M54" priority="-1" />
+  <xsl:template match="@*|node()" mode="M54" priority="-2">
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" mode="M55" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000024</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
+          <xsl:attribute name="id">FX-SCH-A-000025</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M55" priority="-1" />
+  <xsl:template match="@*|node()" mode="M55" priority="-2">
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" mode="M56" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M56" priority="-1" />
+  <xsl:template match="@*|node()" mode="M56" priority="-2">
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M57" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M57" priority="-1" />
+  <xsl:template match="@*|node()" mode="M57" priority="-2">
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" mode="M58" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M58" priority="-1" />
+  <xsl:template match="@*|node()" mode="M58" priority="-2">
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" mode="M59" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" />
+    <xsl:variable name="codeValue1" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M59" priority="-1" />
+  <xsl:template match="@*|node()" mode="M59" priority="-2">
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M60" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M60" priority="-1" />
+  <xsl:template match="@*|node()" mode="M60" priority="-2">
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" mode="M61" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SellerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SellerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000027</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SellerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BuyerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BuyerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000028</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BuyerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M61" priority="-1" />
+  <xsl:template match="@*|node()" mode="M61" priority="-2">
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" mode="M62" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M62" priority="-1" />
+  <xsl:template match="@*|node()" mode="M62" priority="-2">
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" mode="M63" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M63" priority="-1" />
+  <xsl:template match="@*|node()" mode="M63" priority="-2">
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M64" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M64" priority="-1" />
+  <xsl:template match="@*|node()" mode="M64" priority="-2">
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" mode="M65" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M65" priority="-1" />
+  <xsl:template match="@*|node()" mode="M65" priority="-2">
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" mode="M66" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M66" priority="-1" />
+  <xsl:template match="@*|node()" mode="M66" priority="-2">
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" mode="M67" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M67" priority="-1" />
+  <xsl:template match="@*|node()" mode="M67" priority="-2">
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" mode="M68" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M68" priority="-1" />
+  <xsl:template match="@*|node()" mode="M68" priority="-2">
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" mode="M69" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M69" priority="-1" />
+  <xsl:template match="@*|node()" mode="M69" priority="-2">
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M70" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M70" priority="-1" />
+  <xsl:template match="@*|node()" mode="M70" priority="-2">
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M71" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue6" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M71" priority="-1" />
+  <xsl:template match="@*|node()" mode="M71" priority="-2">
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" mode="M72" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TradingBusinessName' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M72" priority="-1" />
+  <xsl:template match="@*|node()" mode="M72" priority="-2">
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" mode="M73" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M73" priority="-1" />
+  <xsl:template match="@*|node()" mode="M73" priority="-2">
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M74" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M74" priority="-1" />
+  <xsl:template match="@*|node()" mode="M74" priority="-2">
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M75" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue9" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M75" priority="-1" />
+  <xsl:template match="@*|node()" mode="M75" priority="-2">
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" mode="M76" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M76" priority="-1" />
+  <xsl:template match="@*|node()" mode="M76" priority="-2">
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M77" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M77" priority="-1" />
+  <xsl:template match="@*|node()" mode="M77" priority="-2">
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M78" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue8" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M78" priority="-1" />
+  <xsl:template match="@*|node()" mode="M78" priority="-2">
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" mode="M79" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M79" priority="-1" />
+  <xsl:template match="@*|node()" mode="M79" priority="-2">
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" mode="M80" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M80" priority="-1" />
+  <xsl:template match="@*|node()" mode="M80" priority="-2">
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M81" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M81" priority="-1" />
+  <xsl:template match="@*|node()" mode="M81" priority="-2">
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" mode="M82" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)=1">
+          <xsl:attribute name="id">FX-SCH-A-000169</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M82" priority="-1" />
+  <xsl:template match="@*|node()" mode="M82" priority="-2">
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" mode="M83" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:GlobalID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M83" priority="-1" />
+  <xsl:template match="@*|node()" mode="M83" priority="-2">
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" mode="M84" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M84" priority="-1" />
+  <xsl:template match="@*|node()" mode="M84" priority="-2">
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" mode="M85" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M85" priority="-1" />
+  <xsl:template match="@*|node()" mode="M85" priority="-2">
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M86" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M86" priority="-1" />
+  <xsl:template match="@*|node()" mode="M86" priority="-2">
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" mode="M87" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M87" priority="-1" />
+  <xsl:template match="@*|node()" mode="M87" priority="-2">
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" mode="M88" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M88" priority="-1" />
+  <xsl:template match="@*|node()" mode="M88" priority="-2">
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M89" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M89" priority="-1" />
+  <xsl:template match="@*|node()" mode="M89" priority="-2">
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M90" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue10" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M90" priority="-1" />
+  <xsl:template match="@*|node()" mode="M90" priority="-2">
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" mode="M91" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M91" priority="-1" />
+  <xsl:template match="@*|node()" mode="M91" priority="-2">
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" mode="M92" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000033</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000034</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M92" priority="-1" />
+  <xsl:template match="@*|node()" mode="M92" priority="-2">
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" mode="M93" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M93" priority="-1" />
+  <xsl:template match="@*|node()" mode="M93" priority="-2">
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" mode="M94" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M94" priority="-1" />
+  <xsl:template match="@*|node()" mode="M94" priority="-2">
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" mode="M95" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M95" priority="-1" />
+  <xsl:template match="@*|node()" mode="M95" priority="-2">
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" mode="M96" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M96" priority="-1" />
+  <xsl:template match="@*|node()" mode="M96" priority="-2">
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M97" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M97" priority="-1" />
+  <xsl:template match="@*|node()" mode="M97" priority="-2">
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M98" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue6" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M98" priority="-1" />
+  <xsl:template match="@*|node()" mode="M98" priority="-2">
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" mode="M99" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and  not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M99" priority="-1" />
+  <xsl:template match="@*|node()" mode="M99" priority="-2">
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" mode="M100" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M100" priority="-1" />
+  <xsl:template match="@*|node()" mode="M100" priority="-2">
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" mode="M101" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M101" priority="-1" />
+  <xsl:template match="@*|node()" mode="M101" priority="-2">
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" mode="M102" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M102" priority="-1" />
+  <xsl:template match="@*|node()" mode="M102" priority="-2">
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" mode="M103" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M103" priority="-1" />
+  <xsl:template match="@*|node()" mode="M103" priority="-2">
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" mode="M104" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M104" priority="-1" />
+  <xsl:template match="@*|node()" mode="M104" priority="-2">
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M105" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M105" priority="-1" />
+  <xsl:template match="@*|node()" mode="M105" priority="-2">
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M106" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue8" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M106" priority="-1" />
+  <xsl:template match="@*|node()" mode="M106" priority="-2">
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" mode="M107" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000170</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-57]-Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M107" priority="-1" />
+  <xsl:template match="@*|node()" mode="M107" priority="-2">
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" mode="M108" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:OccurrenceDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:OccurrenceDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000171</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M108" priority="-1" />
+  <xsl:template match="@*|node()" mode="M108" priority="-2">
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" mode="M109" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M109" priority="-1" />
+  <xsl:template match="@*|node()" mode="M109" priority="-2">
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" mode="M110" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M110" priority="-1" />
+  <xsl:template match="@*|node()" mode="M110" priority="-2">
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" mode="M111" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M111" priority="-1" />
+  <xsl:template match="@*|node()" mode="M111" priority="-2">
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" mode="M112" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M112" priority="-1" />
+  <xsl:template match="@*|node()" mode="M112" priority="-2">
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M113" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M113" priority="-1" />
+  <xsl:template match="@*|node()" mode="M113" priority="-2">
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" mode="M114" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M114" priority="-1" />
+  <xsl:template match="@*|node()" mode="M114" priority="-2">
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" mode="M115" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M115" priority="-1" />
+  <xsl:template match="@*|node()" mode="M115" priority="-2">
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" mode="M116" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M116" priority="-1" />
+  <xsl:template match="@*|node()" mode="M116" priority="-2">
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" mode="M117" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M117" priority="-1" />
+  <xsl:template match="@*|node()" mode="M117" priority="-2">
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" mode="M118" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M118" priority="-1" />
+  <xsl:template match="@*|node()" mode="M118" priority="-2">
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M119" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M119" priority="-1" />
+  <xsl:template match="@*|node()" mode="M119" priority="-2">
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" mode="M120" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M120" priority="-1" />
+  <xsl:template match="@*|node()" mode="M120" priority="-2">
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M121" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M121" priority="-1" />
+  <xsl:template match="@*|node()" mode="M121" priority="-2">
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" mode="M122" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M122" priority="-1" />
+  <xsl:template match="@*|node()" mode="M122" priority="-2">
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M123" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PaymentReference)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PaymentReference)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000172</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PaymentReference' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceCurrencyCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceCurrencyCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000038</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000173</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradePaymentTerms)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradePaymentTerms)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000174</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradePaymentTerms' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000039</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000175</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M123" priority="-1" />
+  <xsl:template match="@*|node()" mode="M123" priority="-2">
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M124" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BasisAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BasisAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000177</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BasisAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M124" priority="-1" />
+  <xsl:template match="@*|node()" mode="M124" priority="-2">
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" mode="M125" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M125" priority="-1" />
+  <xsl:template match="@*|node()" mode="M125" priority="-2">
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" mode="M126" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M126" priority="-1" />
+  <xsl:template match="@*|node()" mode="M126" priority="-2">
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M127" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue14" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M127" priority="-1" />
+  <xsl:template match="@*|node()" mode="M127" priority="-2">
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M128" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+    <xsl:variable name="codeValue16" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000180</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:DueDateTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M128" priority="-1" />
+  <xsl:template match="@*|node()" mode="M128" priority="-2">
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M129" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue15" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M129" priority="-1" />
+  <xsl:template match="@*|node()" mode="M129" priority="-2">
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M130" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M130" priority="-1" />
+  <xsl:template match="@*|node()" mode="M130" priority="-2">
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M131" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M131" priority="-1" />
+  <xsl:template match="@*|node()" mode="M131" priority="-2">
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M132" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M132" priority="-1" />
+  <xsl:template match="@*|node()" mode="M132" priority="-2">
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M133" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M133" priority="-1" />
+  <xsl:template match="@*|node()" mode="M133" priority="-2">
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M134" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M134" priority="-1" />
+  <xsl:template match="@*|node()" mode="M134" priority="-2">
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" mode="M135" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M135" priority="-1" />
+  <xsl:template match="@*|node()" mode="M135" priority="-2">
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" mode="M136" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" />
+    <xsl:variable name="codeValue11" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000040</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:InvoiceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M136" priority="-1" />
+  <xsl:template match="@*|node()" mode="M136" priority="-2">
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" mode="M137" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000182</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-55]-Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M137" priority="-1" />
+  <xsl:template match="@*|node()" mode="M137" priority="-2">
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M138" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M138" priority="-1" />
+  <xsl:template match="@*|node()" mode="M138" priority="-2">
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M139" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue21" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M139" priority="-1" />
+  <xsl:template match="@*|node()" mode="M139" priority="-2">
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M140" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M140" priority="-1" />
+  <xsl:template match="@*|node()" mode="M140" priority="-2">
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" mode="M141" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M141" priority="-1" />
+  <xsl:template match="@*|node()" mode="M141" priority="-2">
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" mode="M142" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M142" priority="-1" />
+  <xsl:template match="@*|node()" mode="M142" priority="-2">
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" mode="M143" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M143" priority="-1" />
+  <xsl:template match="@*|node()" mode="M143" priority="-2">
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" mode="M144" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M144" priority="-1" />
+  <xsl:template match="@*|node()" mode="M144" priority="-2">
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" mode="M145" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M145" priority="-1" />
+  <xsl:template match="@*|node()" mode="M145" priority="-2">
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M146" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue6" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M146" priority="-1" />
+  <xsl:template match="@*|node()" mode="M146" priority="-2">
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" mode="M147" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TradingBusinessName' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M147" priority="-1" />
+  <xsl:template match="@*|node()" mode="M147" priority="-2">
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" mode="M148" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M148" priority="-1" />
+  <xsl:template match="@*|node()" mode="M148" priority="-2">
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" mode="M149" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M149" priority="-1" />
+  <xsl:template match="@*|node()" mode="M149" priority="-2">
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M150" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M150" priority="-1" />
+  <xsl:template match="@*|node()" mode="M150" priority="-2">
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M151" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M151" priority="-1" />
+  <xsl:template match="@*|node()" mode="M151" priority="-2">
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M152" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M152" priority="-1" />
+  <xsl:template match="@*|node()" mode="M152" priority="-2">
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M153" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M153" priority="-1" />
+  <xsl:template match="@*|node()" mode="M153" priority="-2">
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M154" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M154" priority="-1" />
+  <xsl:template match="@*|node()" mode="M154" priority="-2">
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M155" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M155" priority="-1" />
+  <xsl:template match="@*|node()" mode="M155" priority="-2">
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M156" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M156" priority="-1" />
+  <xsl:template match="@*|node()" mode="M156" priority="-2">
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M157" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M157" priority="-1" />
+  <xsl:template match="@*|node()" mode="M157" priority="-2">
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M158" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue14" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M158" priority="-1" />
+  <xsl:template match="@*|node()" mode="M158" priority="-2">
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M159" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M159" priority="-1" />
+  <xsl:template match="@*|node()" mode="M159" priority="-2">
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M160" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M160" priority="-1" />
+  <xsl:template match="@*|node()" mode="M160" priority="-2">
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M161" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M161" priority="-1" />
+  <xsl:template match="@*|node()" mode="M161" priority="-2">
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M162" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M162" priority="-1" />
+  <xsl:template match="@*|node()" mode="M162" priority="-2">
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M163" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue17" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M163" priority="-1" />
+  <xsl:template match="@*|node()" mode="M163" priority="-2">
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M164" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M164" priority="-1" />
+  <xsl:template match="@*|node()" mode="M164" priority="-2">
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M165" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M165" priority="-1" />
+  <xsl:template match="@*|node()" mode="M165" priority="-2">
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M166" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M166" priority="-1" />
+  <xsl:template match="@*|node()" mode="M166" priority="-2">
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M167" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M167" priority="-1" />
+  <xsl:template match="@*|node()" mode="M167" priority="-2">
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M168" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M168" priority="-1" />
+  <xsl:template match="@*|node()" mode="M168" priority="-2">
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M169" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M169" priority="-1" />
+  <xsl:template match="@*|node()" mode="M169" priority="-2">
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M170" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue14" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M170" priority="-1" />
+  <xsl:template match="@*|node()" mode="M170" priority="-2">
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M171" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M171" priority="-1" />
+  <xsl:template match="@*|node()" mode="M171" priority="-2">
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M172" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M172" priority="-1" />
+  <xsl:template match="@*|node()" mode="M172" priority="-2">
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M173" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M173" priority="-1" />
+  <xsl:template match="@*|node()" mode="M173" priority="-2">
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M174" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M174" priority="-1" />
+  <xsl:template match="@*|node()" mode="M174" priority="-2">
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M175" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue18" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M175" priority="-1" />
+  <xsl:template match="@*|node()" mode="M175" priority="-2">
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" mode="M176" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DirectDebitMandateID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DirectDebitMandateID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000188</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DirectDebitMandateID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M176" priority="-1" />
+  <xsl:template match="@*|node()" mode="M176" priority="-2">
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" mode="M177" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M177" priority="-1" />
+  <xsl:template match="@*|node()" mode="M177" priority="-2">
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" mode="M178" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M178" priority="-1" />
+  <xsl:template match="@*|node()" mode="M178" priority="-2">
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" mode="M179" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M179" priority="-1" />
+  <xsl:template match="@*|node()" mode="M179" priority="-2">
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M180" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000190</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000191</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxBasisTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxBasisTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000041</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000042</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000192</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000043</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TotalPrepaidAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TotalPrepaidAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000193</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TotalPrepaidAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DuePayableAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DuePayableAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000044</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DuePayableAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M180" priority="-1" />
+  <xsl:template match="@*|node()" mode="M180" priority="-2">
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" mode="M181" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M181" priority="-1" />
+  <xsl:template match="@*|node()" mode="M181" priority="-2">
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" mode="M182" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M182" priority="-1" />
+  <xsl:template match="@*|node()" mode="M182" priority="-2">
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" mode="M183" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M183" priority="-1" />
+  <xsl:template match="@*|node()" mode="M183" priority="-2">
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M184" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M184" priority="-1" />
+  <xsl:template match="@*|node()" mode="M184" priority="-2">
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M185" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M185" priority="-1" />
+  <xsl:template match="@*|node()" mode="M185" priority="-2">
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" mode="M186" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M186" priority="-1" />
+  <xsl:template match="@*|node()" mode="M186" priority="-2">
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" mode="M187" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M187" priority="-1" />
+  <xsl:template match="@*|node()" mode="M187" priority="-2">
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" mode="M188" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue19" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M188" priority="-1" />
+  <xsl:template match="@*|node()" mode="M188" priority="-2">
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" mode="M189" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M189" priority="-1" />
+  <xsl:template match="@*|node()" mode="M189" priority="-2">
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" mode="M190" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue20" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M190" priority="-1" />
+  <xsl:template match="@*|node()" mode="M190" priority="-2">
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" mode="M191" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M191" priority="-1" />
+  <xsl:template match="@*|node()" mode="M191" priority="-2">
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" mode="M192" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M192" priority="-1" />
+  <xsl:template match="@*|node()" mode="M192" priority="-2">
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" mode="M193" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000194</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PayeePartyCreditorFinancialAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M193" priority="-1" />
+  <xsl:template match="@*|node()" mode="M193" priority="-2">
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" mode="M194" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M194" priority="-1" />
+  <xsl:template match="@*|node()" mode="M194" priority="-2">
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" mode="M195" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M195" priority="-1" />
+  <xsl:template match="@*|node()" mode="M195" priority="-2">
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" mode="M196" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IBANID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IBANID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000195</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IBANID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M196" priority="-1" />
+  <xsl:template match="@*|node()" mode="M196" priority="-2">
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" mode="M197" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M197" priority="-1" />
+  <xsl:template match="@*|node()" mode="M197" priority="-2">
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" mode="M198" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" />
+    <xsl:variable name="codeValue12" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M198" priority="-1" />
+  <xsl:template match="@*|node()" mode="M198" priority="-2">
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" mode="M199" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" />
+    <xsl:variable name="codeValue11" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC-WL_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000196</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TaxCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M199" priority="-1" />
+  <xsl:template match="@*|node()" mode="M199" priority="-2">
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+</xsl:stylesheet>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL_codedb.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL_codedb.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC-WL_codedb.xml	(revision 8542)
@@ -0,0 +1,2215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<codedb>
+  <cl id="1">
+    <enumeration value="urn:factur-x.eu:1p0:basicwl"/>
+    <enumeration value="urn:zugferd.de:2p0:basicwl"/>
+  </cl>
+  <cl id="2">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="3">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="4">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADH"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADS"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHW"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="BAG"/>
+    <enumeration value="BAH"/>
+    <enumeration value="BAI"/>
+    <enumeration value="BAJ"/>
+    <enumeration value="BAK"/>
+    <enumeration value="BAL"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BAN"/>
+    <enumeration value="BAO"/>
+    <enumeration value="BAP"/>
+    <enumeration value="BAQ"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BAS"/>
+    <enumeration value="BAT"/>
+    <enumeration value="BAU"/>
+    <enumeration value="BAV"/>
+    <enumeration value="BAW"/>
+    <enumeration value="BAX"/>
+    <enumeration value="BAY"/>
+    <enumeration value="BAZ"/>
+    <enumeration value="BBA"/>
+    <enumeration value="BBB"/>
+    <enumeration value="BLC"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLE"/>
+    <enumeration value="BLF"/>
+    <enumeration value="BLG"/>
+    <enumeration value="BLH"/>
+    <enumeration value="BLI"/>
+    <enumeration value="BLJ"/>
+    <enumeration value="BLK"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BLM"/>
+    <enumeration value="BLN"/>
+    <enumeration value="BLO"/>
+    <enumeration value="BLP"/>
+    <enumeration value="BLQ"/>
+    <enumeration value="BLR"/>
+    <enumeration value="BLS"/>
+    <enumeration value="BLT"/>
+    <enumeration value="BLU"/>
+    <enumeration value="BLV"/>
+    <enumeration value="BLW"/>
+    <enumeration value="BLX"/>
+    <enumeration value="BLY"/>
+    <enumeration value="BLZ"/>
+    <enumeration value="BMA"/>
+    <enumeration value="BMB"/>
+    <enumeration value="BMC"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BME"/>
+    <enumeration value="BMF"/>
+    <enumeration value="BMG"/>
+    <enumeration value="BMH"/>
+    <enumeration value="CCI"/>
+    <enumeration value="CCJ"/>
+    <enumeration value="CCK"/>
+    <enumeration value="CCL"/>
+    <enumeration value="CCM"/>
+    <enumeration value="CCN"/>
+    <enumeration value="CCO"/>
+    <enumeration value="CEX"/>
+    <enumeration value="CHG"/>
+    <enumeration value="CIP"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CLR"/>
+    <enumeration value="COI"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CUS"/>
+    <enumeration value="DAR"/>
+    <enumeration value="DCL"/>
+    <enumeration value="DEL"/>
+    <enumeration value="DIN"/>
+    <enumeration value="DOC"/>
+    <enumeration value="DUT"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FBC"/>
+    <enumeration value="GBL"/>
+    <enumeration value="GEN"/>
+    <enumeration value="GS7"/>
+    <enumeration value="HAN"/>
+    <enumeration value="HAZ"/>
+    <enumeration value="ICN"/>
+    <enumeration value="IIN"/>
+    <enumeration value="IMI"/>
+    <enumeration value="IND"/>
+    <enumeration value="INS"/>
+    <enumeration value="INV"/>
+    <enumeration value="IRP"/>
+    <enumeration value="ITR"/>
+    <enumeration value="ITS"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LIN"/>
+    <enumeration value="LOI"/>
+    <enumeration value="MCO"/>
+    <enumeration value="MDH"/>
+    <enumeration value="MKS"/>
+    <enumeration value="ORI"/>
+    <enumeration value="OSI"/>
+    <enumeration value="PAC"/>
+    <enumeration value="PAI"/>
+    <enumeration value="PAY"/>
+    <enumeration value="PKG"/>
+    <enumeration value="PKT"/>
+    <enumeration value="PMD"/>
+    <enumeration value="PMT"/>
+    <enumeration value="PRD"/>
+    <enumeration value="PRF"/>
+    <enumeration value="PRI"/>
+    <enumeration value="PUR"/>
+    <enumeration value="QIN"/>
+    <enumeration value="QQD"/>
+    <enumeration value="QUT"/>
+    <enumeration value="RAH"/>
+    <enumeration value="REG"/>
+    <enumeration value="RET"/>
+    <enumeration value="REV"/>
+    <enumeration value="RQR"/>
+    <enumeration value="SAF"/>
+    <enumeration value="SIC"/>
+    <enumeration value="SIN"/>
+    <enumeration value="SLR"/>
+    <enumeration value="SPA"/>
+    <enumeration value="SPG"/>
+    <enumeration value="SPH"/>
+    <enumeration value="SPP"/>
+    <enumeration value="SPT"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SUR"/>
+    <enumeration value="TCA"/>
+    <enumeration value="TDT"/>
+    <enumeration value="TRA"/>
+    <enumeration value="TRR"/>
+    <enumeration value="TXD"/>
+    <enumeration value="WHI"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="5">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="6">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="7">
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AI"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AO"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CA"/>
+    <enumeration value="CC"/>
+    <enumeration value="CD"/>
+    <enumeration value="CF"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CI"/>
+    <enumeration value="CK"/>
+    <enumeration value="CL"/>
+    <enumeration value="CM"/>
+    <enumeration value="CN"/>
+    <enumeration value="CO"/>
+    <enumeration value="CR"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CX"/>
+    <enumeration value="CY"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DE"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DK"/>
+    <enumeration value="DM"/>
+    <enumeration value="DO"/>
+    <enumeration value="DZ"/>
+    <enumeration value="EC"/>
+    <enumeration value="EE"/>
+    <enumeration value="EG"/>
+    <enumeration value="EH"/>
+    <enumeration value="ER"/>
+    <enumeration value="ES"/>
+    <enumeration value="ET"/>
+    <enumeration value="FI"/>
+    <enumeration value="FJ"/>
+    <enumeration value="FK"/>
+    <enumeration value="FM"/>
+    <enumeration value="FO"/>
+    <enumeration value="FR"/>
+    <enumeration value="GA"/>
+    <enumeration value="GB"/>
+    <enumeration value="GD"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GG"/>
+    <enumeration value="GH"/>
+    <enumeration value="GI"/>
+    <enumeration value="GL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GN"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GR"/>
+    <enumeration value="GS"/>
+    <enumeration value="GT"/>
+    <enumeration value="GU"/>
+    <enumeration value="GW"/>
+    <enumeration value="GY"/>
+    <enumeration value="HK"/>
+    <enumeration value="HM"/>
+    <enumeration value="HN"/>
+    <enumeration value="HR"/>
+    <enumeration value="HT"/>
+    <enumeration value="HU"/>
+    <enumeration value="ID"/>
+    <enumeration value="IE"/>
+    <enumeration value="IL"/>
+    <enumeration value="IM"/>
+    <enumeration value="IN"/>
+    <enumeration value="IO"/>
+    <enumeration value="IQ"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="JE"/>
+    <enumeration value="JM"/>
+    <enumeration value="JO"/>
+    <enumeration value="JP"/>
+    <enumeration value="KE"/>
+    <enumeration value="KG"/>
+    <enumeration value="KH"/>
+    <enumeration value="KI"/>
+    <enumeration value="KM"/>
+    <enumeration value="KN"/>
+    <enumeration value="KP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KW"/>
+    <enumeration value="KY"/>
+    <enumeration value="KZ"/>
+    <enumeration value="LA"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LK"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LT"/>
+    <enumeration value="LU"/>
+    <enumeration value="LV"/>
+    <enumeration value="LY"/>
+    <enumeration value="MA"/>
+    <enumeration value="MC"/>
+    <enumeration value="MD"/>
+    <enumeration value="ME"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MK"/>
+    <enumeration value="ML"/>
+    <enumeration value="MM"/>
+    <enumeration value="MN"/>
+    <enumeration value="MO"/>
+    <enumeration value="MP"/>
+    <enumeration value="MQ"/>
+    <enumeration value="MR"/>
+    <enumeration value="MS"/>
+    <enumeration value="MT"/>
+    <enumeration value="MU"/>
+    <enumeration value="MV"/>
+    <enumeration value="MW"/>
+    <enumeration value="MX"/>
+    <enumeration value="MY"/>
+    <enumeration value="MZ"/>
+    <enumeration value="NA"/>
+    <enumeration value="NC"/>
+    <enumeration value="NE"/>
+    <enumeration value="NF"/>
+    <enumeration value="NG"/>
+    <enumeration value="NI"/>
+    <enumeration value="NL"/>
+    <enumeration value="NO"/>
+    <enumeration value="NP"/>
+    <enumeration value="NR"/>
+    <enumeration value="NU"/>
+    <enumeration value="NZ"/>
+    <enumeration value="OM"/>
+    <enumeration value="PA"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PG"/>
+    <enumeration value="PH"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="PM"/>
+    <enumeration value="PN"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PT"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="QA"/>
+    <enumeration value="RE"/>
+    <enumeration value="RO"/>
+    <enumeration value="RS"/>
+    <enumeration value="RU"/>
+    <enumeration value="RW"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SC"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SJ"/>
+    <enumeration value="SK"/>
+    <enumeration value="SL"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SO"/>
+    <enumeration value="SR"/>
+    <enumeration value="SS"/>
+    <enumeration value="ST"/>
+    <enumeration value="SV"/>
+    <enumeration value="SX"/>
+    <enumeration value="SY"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TC"/>
+    <enumeration value="TD"/>
+    <enumeration value="TF"/>
+    <enumeration value="TG"/>
+    <enumeration value="TH"/>
+    <enumeration value="TJ"/>
+    <enumeration value="TK"/>
+    <enumeration value="TL"/>
+    <enumeration value="TM"/>
+    <enumeration value="TN"/>
+    <enumeration value="TO"/>
+    <enumeration value="TR"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="TW"/>
+    <enumeration value="TZ"/>
+    <enumeration value="UA"/>
+    <enumeration value="UG"/>
+    <enumeration value="UM"/>
+    <enumeration value="US"/>
+    <enumeration value="UY"/>
+    <enumeration value="UZ"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VE"/>
+    <enumeration value="VG"/>
+    <enumeration value="VI"/>
+    <enumeration value="VN"/>
+    <enumeration value="VU"/>
+    <enumeration value="WF"/>
+    <enumeration value="WS"/>
+    <enumeration value="YE"/>
+    <enumeration value="YT"/>
+    <enumeration value="ZA"/>
+    <enumeration value="ZM"/>
+    <enumeration value="ZW"/>
+    <enumeration value="1A"/>
+    <enumeration value="XI"/>
+  </cl>
+  <cl id="8">
+    <enumeration value="0002"/>
+    <enumeration value="0007"/>
+    <enumeration value="0009"/>
+    <enumeration value="0037"/>
+    <enumeration value="0060"/>
+    <enumeration value="0088"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0106"/>
+    <enumeration value="0130"/>
+    <enumeration value="0135"/>
+    <enumeration value="0142"/>
+    <enumeration value="0147"/>
+    <enumeration value="0151"/>
+    <enumeration value="0170"/>
+    <enumeration value="0177"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0188"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0221"/>
+    <enumeration value="0225"/>
+    <enumeration value="0230"/>
+    <enumeration value="0235"/>
+    <enumeration value="9901"/>
+    <enumeration value="9910"/>
+    <enumeration value="9913"/>
+    <enumeration value="9914"/>
+    <enumeration value="9915"/>
+    <enumeration value="9918"/>
+    <enumeration value="9919"/>
+    <enumeration value="9920"/>
+    <enumeration value="9922"/>
+    <enumeration value="9923"/>
+    <enumeration value="9924"/>
+    <enumeration value="9925"/>
+    <enumeration value="9926"/>
+    <enumeration value="9927"/>
+    <enumeration value="9928"/>
+    <enumeration value="9929"/>
+    <enumeration value="9930"/>
+    <enumeration value="9931"/>
+    <enumeration value="9932"/>
+    <enumeration value="9933"/>
+    <enumeration value="9934"/>
+    <enumeration value="9935"/>
+    <enumeration value="9936"/>
+    <enumeration value="9937"/>
+    <enumeration value="9938"/>
+    <enumeration value="9939"/>
+    <enumeration value="9940"/>
+    <enumeration value="9941"/>
+    <enumeration value="9942"/>
+    <enumeration value="9943"/>
+    <enumeration value="9944"/>
+    <enumeration value="9945"/>
+    <enumeration value="9946"/>
+    <enumeration value="9947"/>
+    <enumeration value="9948"/>
+    <enumeration value="9949"/>
+    <enumeration value="9950"/>
+    <enumeration value="9951"/>
+    <enumeration value="9952"/>
+    <enumeration value="9953"/>
+    <enumeration value="9957"/>
+    <enumeration value="9959"/>
+    <enumeration value="AN"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="AU"/>
+    <enumeration value="EM"/>
+  </cl>
+  <cl id="9">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="10">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="11">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="12">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="12"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="16"/>
+    <enumeration value="17"/>
+    <enumeration value="18"/>
+    <enumeration value="19"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="26"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="29"/>
+    <enumeration value="30"/>
+    <enumeration value="31"/>
+    <enumeration value="32"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="36"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="39"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="43"/>
+    <enumeration value="44"/>
+    <enumeration value="45"/>
+    <enumeration value="46"/>
+    <enumeration value="47"/>
+    <enumeration value="48"/>
+    <enumeration value="49"/>
+    <enumeration value="50"/>
+    <enumeration value="51"/>
+    <enumeration value="52"/>
+    <enumeration value="53"/>
+    <enumeration value="54"/>
+    <enumeration value="55"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="69"/>
+    <enumeration value="70"/>
+    <enumeration value="74"/>
+    <enumeration value="75"/>
+    <enumeration value="76"/>
+    <enumeration value="77"/>
+    <enumeration value="78"/>
+    <enumeration value="91"/>
+    <enumeration value="92"/>
+    <enumeration value="93"/>
+    <enumeration value="94"/>
+    <enumeration value="95"/>
+    <enumeration value="96"/>
+    <enumeration value="97"/>
+    <enumeration value="98"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="13">
+    <enumeration value="VAT"/>
+  </cl>
+  <cl id="14">
+    <enumeration value="AE"/>
+    <enumeration value="E"/>
+    <enumeration value="G"/>
+    <enumeration value="K"/>
+    <enumeration value="L"/>
+    <enumeration value="M"/>
+    <enumeration value="O"/>
+    <enumeration value="S"/>
+    <enumeration value="Z"/>
+  </cl>
+  <cl id="15">
+    <enumeration value="VATEX-EU-132"/>
+    <enumeration value="VATEX-EU-132-1A"/>
+    <enumeration value="VATEX-EU-132-1B"/>
+    <enumeration value="VATEX-EU-132-1C"/>
+    <enumeration value="VATEX-EU-132-1D"/>
+    <enumeration value="VATEX-EU-132-1E"/>
+    <enumeration value="VATEX-EU-132-1F"/>
+    <enumeration value="VATEX-EU-132-1G"/>
+    <enumeration value="VATEX-EU-132-1H"/>
+    <enumeration value="VATEX-EU-132-1I"/>
+    <enumeration value="VATEX-EU-132-1J"/>
+    <enumeration value="VATEX-EU-132-1K"/>
+    <enumeration value="VATEX-EU-132-1L"/>
+    <enumeration value="VATEX-EU-132-1M"/>
+    <enumeration value="VATEX-EU-132-1N"/>
+    <enumeration value="VATEX-EU-132-1O"/>
+    <enumeration value="VATEX-EU-132-1P"/>
+    <enumeration value="VATEX-EU-132-1Q"/>
+    <enumeration value="VATEX-EU-143"/>
+    <enumeration value="VATEX-EU-143-1A"/>
+    <enumeration value="VATEX-EU-143-1B"/>
+    <enumeration value="VATEX-EU-143-1C"/>
+    <enumeration value="VATEX-EU-143-1D"/>
+    <enumeration value="VATEX-EU-143-1E"/>
+    <enumeration value="VATEX-EU-143-1F"/>
+    <enumeration value="VATEX-EU-143-1FA"/>
+    <enumeration value="VATEX-EU-143-1G"/>
+    <enumeration value="VATEX-EU-143-1H"/>
+    <enumeration value="VATEX-EU-143-1I"/>
+    <enumeration value="VATEX-EU-143-1J"/>
+    <enumeration value="VATEX-EU-143-1K"/>
+    <enumeration value="VATEX-EU-143-1L"/>
+    <enumeration value="VATEX-EU-144"/>
+    <enumeration value="VATEX-EU-146-1E"/>
+    <enumeration value="VATEX-EU-148"/>
+    <enumeration value="VATEX-EU-148-A"/>
+    <enumeration value="VATEX-EU-148-B"/>
+    <enumeration value="VATEX-EU-148-C"/>
+    <enumeration value="VATEX-EU-148-D"/>
+    <enumeration value="VATEX-EU-148-E"/>
+    <enumeration value="VATEX-EU-148-F"/>
+    <enumeration value="VATEX-EU-148-G"/>
+    <enumeration value="VATEX-EU-151"/>
+    <enumeration value="VATEX-EU-151-1A"/>
+    <enumeration value="VATEX-EU-151-1AA"/>
+    <enumeration value="VATEX-EU-151-1B"/>
+    <enumeration value="VATEX-EU-151-1C"/>
+    <enumeration value="VATEX-EU-151-1D"/>
+    <enumeration value="VATEX-EU-151-1E"/>
+    <enumeration value="VATEX-EU-159"/>
+    <enumeration value="VATEX-EU-309"/>
+    <enumeration value="VATEX-EU-79-C"/>
+    <enumeration value="VATEX-EU-AE"/>
+    <enumeration value="VATEX-EU-D"/>
+    <enumeration value="VATEX-EU-F"/>
+    <enumeration value="VATEX-EU-G"/>
+    <enumeration value="VATEX-EU-I"/>
+    <enumeration value="VATEX-EU-IC"/>
+    <enumeration value="VATEX-EU-J"/>
+    <enumeration value="VATEX-EU-O"/>
+    <enumeration value="VATEX-FR-CNWVAT"/>
+    <enumeration value="VATEX-FR-FRANCHISE"/>
+  </cl>
+  <cl id="16">
+    <enumeration value="5"/>
+    <enumeration value="29"/>
+    <enumeration value="72"/>
+  </cl>
+  <cl id="17">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="18">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="19">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="20">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="21">
+    <enumeration value="102"/>
+  </cl>
+</codedb>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC.xslt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC.xslt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC.xslt	(revision 8542)
@@ -0,0 +1,12161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsl:stylesheet xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:saxon="http://saxon.sf.net/" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<!--Implementers: please note that overriding process-prolog or process-root is 
+    the preferred method for meta-stylesheets to use where possible. -->
+
+<xsl:param name="archiveDirParameter" />
+  <xsl:param name="archiveNameParameter" />
+  <xsl:param name="fileNameParameter" />
+  <xsl:param name="fileDirParameter" />
+  <xsl:variable name="document-uri">
+    <xsl:value-of select="document-uri(/)" />
+  </xsl:variable>
+
+<!--PHASES-->
+
+
+<!--PROLOG-->
+<xsl:output indent="yes" method="xml" omit-xml-declaration="no" standalone="yes" />
+
+<!--XSD TYPES FOR XSLT2-->
+
+
+<!--KEYS AND FUNCTIONS-->
+
+
+<!--DEFAULT RULES-->
+
+
+<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-select-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="." />
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">
+        <xsl:value-of select="name()" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>*:</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>[namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])" />
+    <xsl:text>[</xsl:text>
+    <xsl:value-of select="1+ $preceding" />
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+  <xsl:template match="@*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">@<xsl:value-of select="name()" />
+</xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@*[local-name()='</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>' and namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-2-->
+<!--This mode can be used to generate prefixed XPath for humans-->
+<xsl:template match="node() | @*" mode="schematron-get-full-path-2">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="preceding-sibling::*[name(.)=name(current())]">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+<!--MODE: SCHEMATRON-FULL-PATH-3-->
+<!--This mode can be used to generate prefixed XPath for humans 
+	(Top-level element has index)-->
+
+<xsl:template match="node() | @*" mode="schematron-get-full-path-3">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="parent::*">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-FROM-PATH -->
+<xsl:template match="/" mode="generate-id-from-path" />
+  <xsl:template match="text()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')" />
+  </xsl:template>
+  <xsl:template match="comment()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')" />
+  </xsl:template>
+  <xsl:template match="processing-instruction()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.@', name())" />
+  </xsl:template>
+  <xsl:template match="*" mode="generate-id-from-path" priority="-0.5">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:text>.</xsl:text>
+    <xsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')" />
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-2 -->
+<xsl:template match="/" mode="generate-id-2">U</xsl:template>
+  <xsl:template match="*" mode="generate-id-2" priority="2">
+    <xsl:text>U</xsl:text>
+    <xsl:number count="*" level="multiple" />
+  </xsl:template>
+  <xsl:template match="node()" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>n</xsl:text>
+    <xsl:number count="node()" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="string-length(local-name(.))" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="translate(name(),':','.')" />
+  </xsl:template>
+<!--Strip characters-->  <xsl:template match="text()" priority="-1" />
+
+<!--SCHEMA SETUP-->
+<xsl:template match="/">
+    <svrl:schematron-output schemaVersion="iso" title="Schema for Factur-X; 1.07.2; EN16931-COMPLIANT-BASIC">
+      <xsl:comment>
+        <xsl:value-of select="$archiveDirParameter" />  Â 
+		 <xsl:value-of select="$archiveNameParameter" /> Â 
+		 <xsl:value-of select="$fileNameParameter" /> Â 
+		 <xsl:value-of select="$fileDirParameter" />
+      </xsl:comment>
+      <svrl:ns-prefix-in-attribute-values prefix="rsm" uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="qdt" uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="ram" uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="udt" uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M5" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M6" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M7" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M8" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M9" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M10" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M11" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M12" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M13" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M14" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M15" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M16" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M17" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M18" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M19" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M20" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M21" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M22" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M23" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M24" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M25" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M26" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M27" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M28" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M29" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M30" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M31" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M32" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M33" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M34" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M35" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M36" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M37" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M38" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M39" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M40" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M41" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M42" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M43" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M44" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M45" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M46" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M47" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M48" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M49" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M50" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M51" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M52" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M53" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M54" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M55" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M56" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M57" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M58" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M59" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M60" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M61" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M62" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M63" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M64" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M65" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M66" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M67" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M68" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M69" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M70" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M71" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M72" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M73" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M74" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M75" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M76" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M77" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M78" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M79" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M80" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M81" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M82" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M83" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M84" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M85" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M86" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M87" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M88" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M89" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M90" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M91" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M92" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M93" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M94" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M95" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M96" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M97" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M98" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M99" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M100" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M101" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M102" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M103" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M104" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M105" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M106" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M107" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M108" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M109" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M110" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M111" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M112" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M113" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M114" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M115" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M116" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M117" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M118" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M119" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M120" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M121" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M122" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M123" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M124" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M125" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M126" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M127" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M128" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M129" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M130" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M131" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M132" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M133" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M134" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M135" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M136" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M137" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M138" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M139" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M140" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M141" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M142" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M143" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M144" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M145" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M146" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M147" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M148" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M149" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M150" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M151" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M152" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M153" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M154" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M155" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M156" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M157" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M158" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M159" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M160" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M161" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M162" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M163" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M164" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M165" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M166" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M167" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M168" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M169" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M170" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M171" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M172" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M173" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M174" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M175" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M176" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M177" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M178" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M179" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M180" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M181" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M182" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M183" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M184" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M185" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M186" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M187" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M188" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M189" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M190" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M191" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M192" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M193" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M194" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M195" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M196" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M197" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M198" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M199" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M200" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M201" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M202" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M203" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M204" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M205" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M206" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M207" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M208" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M209" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M210" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M211" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M212" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M213" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M214" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M215" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M216" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M217" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M218" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M219" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M220" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M221" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M222" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M223" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M224" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M225" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M226" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M227" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M228" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M229" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M230" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M231" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M232" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M233" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M234" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M235" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M236" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M237" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M238" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M239" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M240" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M241" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M242" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M243" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M244" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M245" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M246" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M247" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M248" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M249" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M250" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M251" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M252" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M253" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M254" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M255" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M256" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M257" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M258" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M259" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M260" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M261" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M262" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M263" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M264" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M265" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M266" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M267" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M268" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M269" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M270" select="/" />
+    </svrl:schematron-output>
+  </xsl:template>
+
+<!--SCHEMATRON PATTERNS-->
+<svrl:text>Schema for Factur-X; 1.07.2; EN16931-COMPLIANT-BASIC</svrl:text>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M5" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:BasisAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:BasisAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000047</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-45]-Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CalculatedAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CalculatedAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000048</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-46]-Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000049</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-47]-Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')">
+          <xsl:attribute name="id">FX-SCH-A-000050</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-48]-Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))">
+          <xsl:attribute name="id">FX-SCH-A-000051</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-03]-Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))">
+          <xsl:attribute name="id">FX-SCH-A-000052</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000053</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-19]-The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000054</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-20]-The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M5" priority="-1" />
+  <xsl:template match="@*|node()" mode="M5" priority="-2">
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" mode="M6" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000197</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Zero rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000055</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000056</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M6" priority="-1" />
+  <xsl:template match="@*|node()" mode="M6" priority="-2">
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" mode="M7" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )">
+          <xsl:attribute name="id">FX-SCH-A-000057</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000058</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000198</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M7" priority="-1" />
+  <xsl:template match="@*|node()" mode="M7" priority="-2">
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" mode="M8" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000059</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000060</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M8" priority="-1" />
+  <xsl:template match="@*|node()" mode="M8" priority="-2">
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" mode="M9" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000061</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000062</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000063</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000064</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-05]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000065</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-21]-Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000066</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-01]-The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000067</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-02]-The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M9" priority="-1" />
+  <xsl:template match="@*|node()" mode="M9" priority="-2">
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" mode="M10" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000068</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000069</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000070</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-38]-Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000071</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-06]-Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000072</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-22]-Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000073</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-05]-The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000074</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-06]-The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M10" priority="-1" />
+  <xsl:template match="@*|node()" mode="M10" priority="-2">
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableProductCharacteristic" mode="M11" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableProductCharacteristic" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Description) and (ram:Value)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Description) and (ram:Value)">
+          <xsl:attribute name="id">FX-SCH-A-000199</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-54]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M11" priority="-1" />
+  <xsl:template match="@*|node()" mode="M11" priority="-2">
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:IncludedSupplyChainTradeLineItem" mode="M12" priority="1000">
+    <svrl:fired-rule context="//ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000200</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-21]-Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)">
+          <xsl:attribute name="id">FX-SCH-A-000201</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)">
+          <xsl:attribute name="id">FX-SCH-A-000202</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-23]-An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000203</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-24]-Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000204</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-25]-Each Invoice line (BG-25) shall contain the Item name (BT-153).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000205</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-26]-Each Invoice line (BG-25) shall contain the Item net price (BT-146).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000206</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-27]-The Item net price (BT-146) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000207</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-28]-The Item gross price (BT-148) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)">
+          <xsl:attribute name="id">FX-SCH-A-000208</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-64]-The Item standard identifier (BT-157) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)">
+          <xsl:attribute name="id">FX-SCH-A-000209</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-65]-The Item classification identifier (BT-158) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000210</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000211</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-23]-The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M12" priority="-1" />
+  <xsl:template match="@*|node()" mode="M12" priority="-2">
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:PayeeTradeParty" mode="M13" priority="1000">
+    <svrl:fired-rule context="//ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))">
+          <xsl:attribute name="id">FX-SCH-A-000075</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-17]-The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M13" priority="-1" />
+  <xsl:template match="@*|node()" mode="M13" priority="-2">
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTaxRepresentativeTradeParty" mode="M14" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name)">
+          <xsl:attribute name="id">FX-SCH-A-000076</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-18]-The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000077</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-19]-The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress/ram:CountryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress/ram:CountryID)">
+          <xsl:attribute name="id">FX-SCH-A-000078</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-20]-The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000079</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-56]-Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M14" priority="-1" />
+  <xsl:template match="@*|node()" mode="M14" priority="-2">
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTradeParty" mode="M15" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000001</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M15" priority="-1" />
+  <xsl:template match="@*|node()" mode="M15" priority="-2">
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" mode="M16" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000212</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-30]-If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000213</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-20]-If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M16" priority="-1" />
+  <xsl:template match="@*|node()" mode="M16" priority="-2">
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" mode="M17" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000214</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-42]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M17" priority="-1" />
+  <xsl:template match="@*|node()" mode="M17" priority="-2">
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" mode="M18" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000215</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-41]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000216</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-07]-Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000217</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-23]-Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000218</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-24]-The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000219</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-25]-The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M18" priority="-1" />
+  <xsl:template match="@*|node()" mode="M18" priority="-2">
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" mode="M19" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000220</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-43]-Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000221</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-44]-Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000222</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-08]-Invoice line charge reason code (BT-145) and Invoice line charge reason (BT-144) shall indicate the same type of charge reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000223</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000224</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-27]-The allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000225</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-28]-The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M19" priority="-1" />
+  <xsl:template match="@*|node()" mode="M19" priority="-2">
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" mode="M20" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000002</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix âELâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M20" priority="-1" />
+  <xsl:template match="@*|node()" mode="M20" priority="-2">
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge" mode="M21" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ChargeIndicator)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ChargeIndicator)">
+          <xsl:attribute name="id">FX-SCH-A-000080</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-66]-Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M21" priority="-1" />
+  <xsl:template match="@*|node()" mode="M21" priority="-2">
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M22" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000081</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000082</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M22" priority="-1" />
+  <xsl:template match="@*|node()" mode="M22" priority="-2">
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M23" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000083</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000084</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M23" priority="-1" />
+  <xsl:template match="@*|node()" mode="M23" priority="-2">
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M24" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000085</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000086</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M24" priority="-1" />
+  <xsl:template match="@*|node()" mode="M24" priority="-2">
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M25" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000087</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000088</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M25" priority="-1" />
+  <xsl:template match="@*|node()" mode="M25" priority="-2">
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M26" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000089</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000090</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M26" priority="-1" />
+  <xsl:template match="@*|node()" mode="M26" priority="-2">
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M27" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000091</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000092</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M27" priority="-1" />
+  <xsl:template match="@*|node()" mode="M27" priority="-2">
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M28" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000093</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000094</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-06]-A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M28" priority="-1" />
+  <xsl:template match="@*|node()" mode="M28" priority="-2">
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M29" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000095</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000096</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M29" priority="-1" />
+  <xsl:template match="@*|node()" mode="M29" priority="-2">
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M30" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000097</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000098</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M30" priority="-1" />
+  <xsl:template match="@*|node()" mode="M30" priority="-2">
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M31" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000099</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000100</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M31" priority="-1" />
+  <xsl:template match="@*|node()" mode="M31" priority="-2">
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M32" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000101</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000102</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M32" priority="-1" />
+  <xsl:template match="@*|node()" mode="M32" priority="-2">
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M33" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000103</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000104</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M33" priority="-1" />
+  <xsl:template match="@*|node()" mode="M33" priority="-2">
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M34" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000105</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000106</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M34" priority="-1" />
+  <xsl:template match="@*|node()" mode="M34" priority="-2">
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M35" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000107</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000108</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M35" priority="-1" />
+  <xsl:template match="@*|node()" mode="M35" priority="-2">
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M36" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000109</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000110</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M36" priority="-1" />
+  <xsl:template match="@*|node()" mode="M36" priority="-2">
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M37" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000111</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000112</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-07]-A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M37" priority="-1" />
+  <xsl:template match="@*|node()" mode="M37" priority="-2">
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M38" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000113</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000114</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M38" priority="-1" />
+  <xsl:template match="@*|node()" mode="M38" priority="-2">
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M39" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000115</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-04]-An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000116</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M39" priority="-1" />
+  <xsl:template match="@*|node()" mode="M39" priority="-2">
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M40" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)">
+          <xsl:attribute name="id">FX-SCH-A-000226</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-10]-Sum of Invoice line net amount (BT-106) = Î£ Invoice line net amount (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000117</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-12]-An Invoice shall have the Sum of Invoice line net amount (BT-106).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TaxBasisTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TaxBasisTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000003</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:GrandTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:GrandTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000004</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:DuePayableAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:DuePayableAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000005</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-15]-An Invoice shall have the Amount due for payment (BT-115).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000118</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-11]-Sum of allowances on document level (BT-107) = Î£ Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= &#xD;&#xA;round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100">
+          <xsl:attribute name="id">FX-SCH-A-000119</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-12]-Sum of charges on document level (BT-108) = Î£ Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100)  and not (ram:ChargeTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100)  and not (ram:AllowanceTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount))  *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) and not (ram:AllowanceTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))">
+          <xsl:attribute name="id">FX-SCH-A-000120</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-13]-Invoice total amount without VAT (BT-109) = Î£ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $Currency &#xD;&#xA;                                in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode&#xD;&#xA;                                satisfies (  &#xD;&#xA;                                  count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and  &#xD;&#xA;                                  (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or&#xD;&#xA;                                (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $Currency in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode satisfies ( count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000121</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000122</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000123</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-09]-The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000124</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-10]-The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000125</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-11]-The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000006</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000007</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000008</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000126</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-15]-The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000127</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-16]-The allowed maximum number of decimals for the Paid amount (BT-113) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000128</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-17]-The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000009</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))">
+          <xsl:attribute name="id">FX-SCH-A-000129</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-53]-If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M40" priority="-1" />
+  <xsl:template match="@*|node()" mode="M40" priority="-2">
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" mode="M41" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000130</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-14]-Invoice total VAT amount (BT-110) = Î£ VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M41" priority="-1" />
+  <xsl:template match="@*|node()" mode="M41" priority="-2">
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans" mode="M42" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TypeCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TypeCode)">
+          <xsl:attribute name="id">FX-SCH-A-000131</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-49]-A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))">
+          <xsl:attribute name="id">FX-SCH-A-000132</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-27]-Either the IBAN or a Proprietary ID (BT-84) shall be used.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M42" priority="-1" />
+  <xsl:template match="@*|node()" mode="M42" priority="-2">
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" mode="M43" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000134</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M43" priority="-1" />
+  <xsl:template match="@*|node()" mode="M43" priority="-2">
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" mode="M44" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000133</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-50]-A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M44" priority="-1" />
+  <xsl:template match="@*|node()" mode="M44" priority="-2">
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M45" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:ApplicableTradeTax" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:ApplicableTradeTax">
+          <xsl:attribute name="id">FX-SCH-A-000135</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M45" priority="-1" />
+  <xsl:template match="@*|node()" mode="M45" priority="-2">
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" mode="M46" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000227</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Reverse charge".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000136</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000137</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M46" priority="-1" />
+  <xsl:template match="@*|node()" mode="M46" priority="-2">
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" mode="M47" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000228</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Exempt from VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Exempt from VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000138</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-09]-The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000139</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M47" priority="-1" />
+  <xsl:template match="@*|node()" mode="M47" priority="-2">
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" mode="M48" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000229</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Export outside the EU".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000140</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000141</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M48" priority="-1" />
+  <xsl:template match="@*|node()" mode="M48" priority="-2">
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" mode="M49" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000230</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Intra-community supply".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000142</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000143</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000144</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
+          <xsl:attribute name="id">FX-SCH-A-000145</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-12]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M49" priority="-1" />
+  <xsl:template match="@*|node()" mode="M49" priority="-2">
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M50" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000231</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IGIC", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IGIC" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000146</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000147</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M50" priority="-1" />
+  <xsl:template match="@*|node()" mode="M50" priority="-2">
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M51" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000232</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IPSI", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IPSI" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000148</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000149</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M51" priority="-1" />
+  <xsl:template match="@*|node()" mode="M51" priority="-2">
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M52" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000233</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is " Not subject to VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000150</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000151</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000152</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-11]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000234</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-12]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000153</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-13]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000154</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-14]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M52" priority="-1" />
+  <xsl:template match="@*|node()" mode="M52" priority="-2">
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" mode="M53" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000235</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000236</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M53" priority="-1" />
+  <xsl:template match="@*|node()" mode="M53" priority="-2">
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" mode="M54" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000237</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000238</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M54" priority="-1" />
+  <xsl:template match="@*|node()" mode="M54" priority="-2">
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" mode="M55" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000239</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000240</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M55" priority="-1" />
+  <xsl:template match="@*|node()" mode="M55" priority="-2">
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" mode="M56" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000241</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000242</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M56" priority="-1" />
+  <xsl:template match="@*|node()" mode="M56" priority="-2">
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M57" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000243</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000244</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M57" priority="-1" />
+  <xsl:template match="@*|node()" mode="M57" priority="-2">
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M58" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000245</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000246</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M58" priority="-1" />
+  <xsl:template match="@*|node()" mode="M58" priority="-2">
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M59" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000247</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-46).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000248</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-05]-An Invoice line (BG-25) where the VAT category code (BT-151) is "Not subject to VAT" shall not contain an Invoiced item VAT rate (BT-152).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M59" priority="-1" />
+  <xsl:template match="@*|node()" mode="M59" priority="-2">
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" mode="M60" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000249</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000250</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M60" priority="-1" />
+  <xsl:template match="@*|node()" mode="M60" priority="-2">
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" mode="M61" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000251</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-02]-An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000252</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Zero rated" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M61" priority="-1" />
+  <xsl:template match="@*|node()" mode="M61" priority="-2">
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice" mode="M62" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:IncludedSupplyChainTradeLineItem" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:IncludedSupplyChainTradeLineItem">
+          <xsl:attribute name="id">FX-SCH-A-000253</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-16]-An Invoice shall have at least one Invoice line (BG-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)">
+          <xsl:attribute name="id">FX-SCH-A-000155</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')">
+          <xsl:attribute name="id">FX-SCH-A-000010</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-01]-An Invoice shall have a Specification identifier (BT-24).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:ID !='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:ID !='')">
+          <xsl:attribute name="id">FX-SCH-A-000011</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-02]-An Invoice shall have an Invoice number (BT-1).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000012</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-03]-An Invoice shall have an Invoice issue date (BT-2).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:TypeCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:TypeCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000013</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-04]-An Invoice shall have an Invoice type code (BT-3).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000014</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-05]-An Invoice shall have an Invoice currency code (BT-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000015</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-06]-An Invoice shall contain the Seller name (BT-27).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000016</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-07]-An Invoice shall contain the Buyer name (BT-44).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000017</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-08]-An Invoice shall contain the Seller postal address (BG-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000018</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000156</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-10]-An Invoice shall contain the Buyer postal address (BG-8).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000157</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-11]-The Buyer postal address shall contain a Buyer country code (BT-55).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000158</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-62]-The Seller electronic address (BT-34) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000159</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-63]-The Buyer electronic address (BT-49) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and     ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))">
+          <xsl:attribute name="id">FX-SCH-A-000254</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))">
+          <xsl:attribute name="id">FX-SCH-A-000255</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))">
+          <xsl:attribute name="id">FX-SCH-A-000256</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âExempt from VATâ shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))">
+          <xsl:attribute name="id">FX-SCH-A-000257</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))">
+          <xsl:attribute name="id">FX-SCH-A-000258</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))">
+          <xsl:attribute name="id">FX-SCH-A-000259</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( &#xD;&#xA;    count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and &#xD;&#xA;    (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or&#xD;&#xA;    exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))">
+          <xsl:attribute name="id">FX-SCH-A-000260</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))">
+          <xsl:attribute name="id">FX-SCH-A-000261</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))">
+          <xsl:attribute name="id">FX-SCH-A-000262</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000263</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-01]-An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is âSplit paymentâ shall be a domestic Italian invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000264</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-02]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âSplit payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or  a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âStandard ratedâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M62" priority="-1" />
+  <xsl:template match="@*|node()" mode="M62" priority="-2">
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" mode="M63" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M63" priority="-1" />
+  <xsl:template match="@*|node()" mode="M63" priority="-2">
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" mode="M64" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M64" priority="-1" />
+  <xsl:template match="@*|node()" mode="M64" priority="-2">
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" mode="M65" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)=1">
+          <xsl:attribute name="id">FX-SCH-A-000160</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SubjectCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SubjectCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000161</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SubjectCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M65" priority="-1" />
+  <xsl:template match="@*|node()" mode="M65" priority="-2">
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" mode="M66" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" />
+    <xsl:variable name="codeValue4" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000162</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SubjectCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M66" priority="-1" />
+  <xsl:template match="@*|node()" mode="M66" priority="-2">
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" mode="M67" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M67" priority="-1" />
+  <xsl:template match="@*|node()" mode="M67" priority="-2">
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" mode="M68" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M68" priority="-1" />
+  <xsl:template match="@*|node()" mode="M68" priority="-2">
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" mode="M69" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue2" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M69" priority="-1" />
+  <xsl:template match="@*|node()" mode="M69" priority="-2">
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" mode="M70" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000024</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
+          <xsl:attribute name="id">FX-SCH-A-000025</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M70" priority="-1" />
+  <xsl:template match="@*|node()" mode="M70" priority="-2">
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" mode="M71" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M71" priority="-1" />
+  <xsl:template match="@*|node()" mode="M71" priority="-2">
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M72" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M72" priority="-1" />
+  <xsl:template match="@*|node()" mode="M72" priority="-2">
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" mode="M73" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M73" priority="-1" />
+  <xsl:template match="@*|node()" mode="M73" priority="-2">
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" mode="M74" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" />
+    <xsl:variable name="codeValue1" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M74" priority="-1" />
+  <xsl:template match="@*|node()" mode="M74" priority="-2">
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M75" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M75" priority="-1" />
+  <xsl:template match="@*|node()" mode="M75" priority="-2">
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" mode="M76" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedSupplyChainTradeLineItem)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedSupplyChainTradeLineItem)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000265</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedSupplyChainTradeLineItem' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M76" priority="-1" />
+  <xsl:template match="@*|node()" mode="M76" priority="-2">
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" mode="M77" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SellerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SellerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000027</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SellerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BuyerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BuyerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000028</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BuyerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M77" priority="-1" />
+  <xsl:template match="@*|node()" mode="M77" priority="-2">
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" mode="M78" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M78" priority="-1" />
+  <xsl:template match="@*|node()" mode="M78" priority="-2">
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" mode="M79" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M79" priority="-1" />
+  <xsl:template match="@*|node()" mode="M79" priority="-2">
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M80" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M80" priority="-1" />
+  <xsl:template match="@*|node()" mode="M80" priority="-2">
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" mode="M81" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M81" priority="-1" />
+  <xsl:template match="@*|node()" mode="M81" priority="-2">
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" mode="M82" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M82" priority="-1" />
+  <xsl:template match="@*|node()" mode="M82" priority="-2">
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" mode="M83" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue11" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M83" priority="-1" />
+  <xsl:template match="@*|node()" mode="M83" priority="-2">
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" mode="M84" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M84" priority="-1" />
+  <xsl:template match="@*|node()" mode="M84" priority="-2">
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" mode="M85" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M85" priority="-1" />
+  <xsl:template match="@*|node()" mode="M85" priority="-2">
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M86" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M86" priority="-1" />
+  <xsl:template match="@*|node()" mode="M86" priority="-2">
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M87" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue12" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M87" priority="-1" />
+  <xsl:template match="@*|node()" mode="M87" priority="-2">
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" mode="M88" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TradingBusinessName' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M88" priority="-1" />
+  <xsl:template match="@*|node()" mode="M88" priority="-2">
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" mode="M89" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M89" priority="-1" />
+  <xsl:template match="@*|node()" mode="M89" priority="-2">
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M90" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M90" priority="-1" />
+  <xsl:template match="@*|node()" mode="M90" priority="-2">
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M91" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue15" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M91" priority="-1" />
+  <xsl:template match="@*|node()" mode="M91" priority="-2">
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" mode="M92" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M92" priority="-1" />
+  <xsl:template match="@*|node()" mode="M92" priority="-2">
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M93" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M93" priority="-1" />
+  <xsl:template match="@*|node()" mode="M93" priority="-2">
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M94" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue14" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M94" priority="-1" />
+  <xsl:template match="@*|node()" mode="M94" priority="-2">
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" mode="M95" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M95" priority="-1" />
+  <xsl:template match="@*|node()" mode="M95" priority="-2">
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" mode="M96" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M96" priority="-1" />
+  <xsl:template match="@*|node()" mode="M96" priority="-2">
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M97" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M97" priority="-1" />
+  <xsl:template match="@*|node()" mode="M97" priority="-2">
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" mode="M98" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)=1">
+          <xsl:attribute name="id">FX-SCH-A-000169</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M98" priority="-1" />
+  <xsl:template match="@*|node()" mode="M98" priority="-2">
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" mode="M99" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:GlobalID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M99" priority="-1" />
+  <xsl:template match="@*|node()" mode="M99" priority="-2">
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" mode="M100" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M100" priority="-1" />
+  <xsl:template match="@*|node()" mode="M100" priority="-2">
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" mode="M101" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M101" priority="-1" />
+  <xsl:template match="@*|node()" mode="M101" priority="-2">
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M102" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M102" priority="-1" />
+  <xsl:template match="@*|node()" mode="M102" priority="-2">
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" mode="M103" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M103" priority="-1" />
+  <xsl:template match="@*|node()" mode="M103" priority="-2">
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" mode="M104" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M104" priority="-1" />
+  <xsl:template match="@*|node()" mode="M104" priority="-2">
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M105" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M105" priority="-1" />
+  <xsl:template match="@*|node()" mode="M105" priority="-2">
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M106" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue16" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M106" priority="-1" />
+  <xsl:template match="@*|node()" mode="M106" priority="-2">
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" mode="M107" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M107" priority="-1" />
+  <xsl:template match="@*|node()" mode="M107" priority="-2">
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" mode="M108" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000033</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000034</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M108" priority="-1" />
+  <xsl:template match="@*|node()" mode="M108" priority="-2">
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" mode="M109" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M109" priority="-1" />
+  <xsl:template match="@*|node()" mode="M109" priority="-2">
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" mode="M110" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue11" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M110" priority="-1" />
+  <xsl:template match="@*|node()" mode="M110" priority="-2">
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" mode="M111" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M111" priority="-1" />
+  <xsl:template match="@*|node()" mode="M111" priority="-2">
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" mode="M112" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M112" priority="-1" />
+  <xsl:template match="@*|node()" mode="M112" priority="-2">
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M113" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M113" priority="-1" />
+  <xsl:template match="@*|node()" mode="M113" priority="-2">
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M114" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue12" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M114" priority="-1" />
+  <xsl:template match="@*|node()" mode="M114" priority="-2">
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" mode="M115" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and  not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M115" priority="-1" />
+  <xsl:template match="@*|node()" mode="M115" priority="-2">
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" mode="M116" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M116" priority="-1" />
+  <xsl:template match="@*|node()" mode="M116" priority="-2">
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" mode="M117" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M117" priority="-1" />
+  <xsl:template match="@*|node()" mode="M117" priority="-2">
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" mode="M118" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M118" priority="-1" />
+  <xsl:template match="@*|node()" mode="M118" priority="-2">
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" mode="M119" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M119" priority="-1" />
+  <xsl:template match="@*|node()" mode="M119" priority="-2">
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" mode="M120" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M120" priority="-1" />
+  <xsl:template match="@*|node()" mode="M120" priority="-2">
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M121" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M121" priority="-1" />
+  <xsl:template match="@*|node()" mode="M121" priority="-2">
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M122" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue14" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M122" priority="-1" />
+  <xsl:template match="@*|node()" mode="M122" priority="-2">
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" mode="M123" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000170</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-57]-Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M123" priority="-1" />
+  <xsl:template match="@*|node()" mode="M123" priority="-2">
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" mode="M124" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:OccurrenceDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:OccurrenceDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000171</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M124" priority="-1" />
+  <xsl:template match="@*|node()" mode="M124" priority="-2">
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" mode="M125" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M125" priority="-1" />
+  <xsl:template match="@*|node()" mode="M125" priority="-2">
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" mode="M126" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M126" priority="-1" />
+  <xsl:template match="@*|node()" mode="M126" priority="-2">
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" mode="M127" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M127" priority="-1" />
+  <xsl:template match="@*|node()" mode="M127" priority="-2">
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" mode="M128" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M128" priority="-1" />
+  <xsl:template match="@*|node()" mode="M128" priority="-2">
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M129" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M129" priority="-1" />
+  <xsl:template match="@*|node()" mode="M129" priority="-2">
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" mode="M130" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M130" priority="-1" />
+  <xsl:template match="@*|node()" mode="M130" priority="-2">
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" mode="M131" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M131" priority="-1" />
+  <xsl:template match="@*|node()" mode="M131" priority="-2">
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" mode="M132" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue11" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M132" priority="-1" />
+  <xsl:template match="@*|node()" mode="M132" priority="-2">
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" mode="M133" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M133" priority="-1" />
+  <xsl:template match="@*|node()" mode="M133" priority="-2">
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" mode="M134" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M134" priority="-1" />
+  <xsl:template match="@*|node()" mode="M134" priority="-2">
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M135" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M135" priority="-1" />
+  <xsl:template match="@*|node()" mode="M135" priority="-2">
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" mode="M136" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M136" priority="-1" />
+  <xsl:template match="@*|node()" mode="M136" priority="-2">
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M137" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M137" priority="-1" />
+  <xsl:template match="@*|node()" mode="M137" priority="-2">
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" mode="M138" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M138" priority="-1" />
+  <xsl:template match="@*|node()" mode="M138" priority="-2">
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M139" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PaymentReference)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PaymentReference)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000172</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PaymentReference' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceCurrencyCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceCurrencyCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000038</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000173</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradePaymentTerms)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradePaymentTerms)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000174</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradePaymentTerms' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000039</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000175</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M139" priority="-1" />
+  <xsl:template match="@*|node()" mode="M139" priority="-2">
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M140" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BasisAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BasisAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000177</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BasisAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M140" priority="-1" />
+  <xsl:template match="@*|node()" mode="M140" priority="-2">
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" mode="M141" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M141" priority="-1" />
+  <xsl:template match="@*|node()" mode="M141" priority="-2">
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" mode="M142" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M142" priority="-1" />
+  <xsl:template match="@*|node()" mode="M142" priority="-2">
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M143" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue8" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M143" priority="-1" />
+  <xsl:template match="@*|node()" mode="M143" priority="-2">
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M144" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000180</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:DueDateTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M144" priority="-1" />
+  <xsl:template match="@*|node()" mode="M144" priority="-2">
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M145" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M145" priority="-1" />
+  <xsl:template match="@*|node()" mode="M145" priority="-2">
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M146" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M146" priority="-1" />
+  <xsl:template match="@*|node()" mode="M146" priority="-2">
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M147" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M147" priority="-1" />
+  <xsl:template match="@*|node()" mode="M147" priority="-2">
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M148" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M148" priority="-1" />
+  <xsl:template match="@*|node()" mode="M148" priority="-2">
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M149" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M149" priority="-1" />
+  <xsl:template match="@*|node()" mode="M149" priority="-2">
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M150" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M150" priority="-1" />
+  <xsl:template match="@*|node()" mode="M150" priority="-2">
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" mode="M151" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M151" priority="-1" />
+  <xsl:template match="@*|node()" mode="M151" priority="-2">
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" mode="M152" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" />
+    <xsl:variable name="codeValue17" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000040</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:InvoiceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M152" priority="-1" />
+  <xsl:template match="@*|node()" mode="M152" priority="-2">
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" mode="M153" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000182</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-55]-Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M153" priority="-1" />
+  <xsl:template match="@*|node()" mode="M153" priority="-2">
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M154" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M154" priority="-1" />
+  <xsl:template match="@*|node()" mode="M154" priority="-2">
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M155" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue25" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M155" priority="-1" />
+  <xsl:template match="@*|node()" mode="M155" priority="-2">
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M156" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M156" priority="-1" />
+  <xsl:template match="@*|node()" mode="M156" priority="-2">
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" mode="M157" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M157" priority="-1" />
+  <xsl:template match="@*|node()" mode="M157" priority="-2">
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" mode="M158" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M158" priority="-1" />
+  <xsl:template match="@*|node()" mode="M158" priority="-2">
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" mode="M159" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue11" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M159" priority="-1" />
+  <xsl:template match="@*|node()" mode="M159" priority="-2">
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" mode="M160" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M160" priority="-1" />
+  <xsl:template match="@*|node()" mode="M160" priority="-2">
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" mode="M161" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M161" priority="-1" />
+  <xsl:template match="@*|node()" mode="M161" priority="-2">
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M162" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue12" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M162" priority="-1" />
+  <xsl:template match="@*|node()" mode="M162" priority="-2">
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" mode="M163" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TradingBusinessName' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M163" priority="-1" />
+  <xsl:template match="@*|node()" mode="M163" priority="-2">
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" mode="M164" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M164" priority="-1" />
+  <xsl:template match="@*|node()" mode="M164" priority="-2">
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" mode="M165" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M165" priority="-1" />
+  <xsl:template match="@*|node()" mode="M165" priority="-2">
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M166" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M166" priority="-1" />
+  <xsl:template match="@*|node()" mode="M166" priority="-2">
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M167" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M167" priority="-1" />
+  <xsl:template match="@*|node()" mode="M167" priority="-2">
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M168" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M168" priority="-1" />
+  <xsl:template match="@*|node()" mode="M168" priority="-2">
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M169" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M169" priority="-1" />
+  <xsl:template match="@*|node()" mode="M169" priority="-2">
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M170" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M170" priority="-1" />
+  <xsl:template match="@*|node()" mode="M170" priority="-2">
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M171" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M171" priority="-1" />
+  <xsl:template match="@*|node()" mode="M171" priority="-2">
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M172" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M172" priority="-1" />
+  <xsl:template match="@*|node()" mode="M172" priority="-2">
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M173" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M173" priority="-1" />
+  <xsl:template match="@*|node()" mode="M173" priority="-2">
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M174" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue8" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M174" priority="-1" />
+  <xsl:template match="@*|node()" mode="M174" priority="-2">
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M175" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M175" priority="-1" />
+  <xsl:template match="@*|node()" mode="M175" priority="-2">
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M176" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M176" priority="-1" />
+  <xsl:template match="@*|node()" mode="M176" priority="-2">
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M177" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M177" priority="-1" />
+  <xsl:template match="@*|node()" mode="M177" priority="-2">
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M178" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M178" priority="-1" />
+  <xsl:template match="@*|node()" mode="M178" priority="-2">
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M179" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue21" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M179" priority="-1" />
+  <xsl:template match="@*|node()" mode="M179" priority="-2">
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M180" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M180" priority="-1" />
+  <xsl:template match="@*|node()" mode="M180" priority="-2">
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M181" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M181" priority="-1" />
+  <xsl:template match="@*|node()" mode="M181" priority="-2">
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M182" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M182" priority="-1" />
+  <xsl:template match="@*|node()" mode="M182" priority="-2">
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M183" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M183" priority="-1" />
+  <xsl:template match="@*|node()" mode="M183" priority="-2">
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M184" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M184" priority="-1" />
+  <xsl:template match="@*|node()" mode="M184" priority="-2">
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M185" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M185" priority="-1" />
+  <xsl:template match="@*|node()" mode="M185" priority="-2">
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M186" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue8" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M186" priority="-1" />
+  <xsl:template match="@*|node()" mode="M186" priority="-2">
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M187" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M187" priority="-1" />
+  <xsl:template match="@*|node()" mode="M187" priority="-2">
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M188" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M188" priority="-1" />
+  <xsl:template match="@*|node()" mode="M188" priority="-2">
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M189" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M189" priority="-1" />
+  <xsl:template match="@*|node()" mode="M189" priority="-2">
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M190" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M190" priority="-1" />
+  <xsl:template match="@*|node()" mode="M190" priority="-2">
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M191" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue22" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M191" priority="-1" />
+  <xsl:template match="@*|node()" mode="M191" priority="-2">
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" mode="M192" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DirectDebitMandateID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DirectDebitMandateID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000188</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DirectDebitMandateID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M192" priority="-1" />
+  <xsl:template match="@*|node()" mode="M192" priority="-2">
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" mode="M193" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M193" priority="-1" />
+  <xsl:template match="@*|node()" mode="M193" priority="-2">
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" mode="M194" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M194" priority="-1" />
+  <xsl:template match="@*|node()" mode="M194" priority="-2">
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" mode="M195" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M195" priority="-1" />
+  <xsl:template match="@*|node()" mode="M195" priority="-2">
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M196" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000190</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000191</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxBasisTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxBasisTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000041</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000042</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000192</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000043</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TotalPrepaidAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TotalPrepaidAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000193</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TotalPrepaidAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DuePayableAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DuePayableAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000044</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DuePayableAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M196" priority="-1" />
+  <xsl:template match="@*|node()" mode="M196" priority="-2">
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" mode="M197" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M197" priority="-1" />
+  <xsl:template match="@*|node()" mode="M197" priority="-2">
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" mode="M198" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M198" priority="-1" />
+  <xsl:template match="@*|node()" mode="M198" priority="-2">
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" mode="M199" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M199" priority="-1" />
+  <xsl:template match="@*|node()" mode="M199" priority="-2">
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M200" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M200" priority="-1" />
+  <xsl:template match="@*|node()" mode="M200" priority="-2">
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M201" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M201" priority="-1" />
+  <xsl:template match="@*|node()" mode="M201" priority="-2">
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" mode="M202" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M202" priority="-1" />
+  <xsl:template match="@*|node()" mode="M202" priority="-2">
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" mode="M203" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M203" priority="-1" />
+  <xsl:template match="@*|node()" mode="M203" priority="-2">
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" mode="M204" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue23" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M204" priority="-1" />
+  <xsl:template match="@*|node()" mode="M204" priority="-2">
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" mode="M205" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M205" priority="-1" />
+  <xsl:template match="@*|node()" mode="M205" priority="-2">
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" mode="M206" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue24" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M206" priority="-1" />
+  <xsl:template match="@*|node()" mode="M206" priority="-2">
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" mode="M207" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M207" priority="-1" />
+  <xsl:template match="@*|node()" mode="M207" priority="-2">
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" mode="M208" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M208" priority="-1" />
+  <xsl:template match="@*|node()" mode="M208" priority="-2">
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" mode="M209" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000194</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PayeePartyCreditorFinancialAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M209" priority="-1" />
+  <xsl:template match="@*|node()" mode="M209" priority="-2">
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" mode="M210" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M210" priority="-1" />
+  <xsl:template match="@*|node()" mode="M210" priority="-2">
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" mode="M211" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M211" priority="-1" />
+  <xsl:template match="@*|node()" mode="M211" priority="-2">
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" mode="M212" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IBANID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IBANID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000195</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IBANID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M212" priority="-1" />
+  <xsl:template match="@*|node()" mode="M212" priority="-2">
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" mode="M213" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M213" priority="-1" />
+  <xsl:template match="@*|node()" mode="M213" priority="-2">
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" mode="M214" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" />
+    <xsl:variable name="codeValue18" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M214" priority="-1" />
+  <xsl:template match="@*|node()" mode="M214" priority="-2">
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" mode="M215" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" />
+    <xsl:variable name="codeValue17" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000196</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TaxCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M215" priority="-1" />
+  <xsl:template match="@*|node()" mode="M215" priority="-2">
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" mode="M216" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AssociatedDocumentLineDocument)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AssociatedDocumentLineDocument)=1">
+          <xsl:attribute name="id">FX-SCH-A-000266</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AssociatedDocumentLineDocument' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeProduct)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeProduct)=1">
+          <xsl:attribute name="id">FX-SCH-A-000267</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeProduct' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeAgreement)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeAgreement)=1">
+          <xsl:attribute name="id">FX-SCH-A-000268</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeAgreement' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeDelivery)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeDelivery)=1">
+          <xsl:attribute name="id">FX-SCH-A-000269</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeDelivery' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M216" priority="-1" />
+  <xsl:template match="@*|node()" mode="M216" priority="-2">
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" mode="M217" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000270</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedNote)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedNote)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000271</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedNote' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M217" priority="-1" />
+  <xsl:template match="@*|node()" mode="M217" priority="-2">
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" mode="M218" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)=1">
+          <xsl:attribute name="id">FX-SCH-A-000160</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M218" priority="-1" />
+  <xsl:template match="@*|node()" mode="M218" priority="-2">
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" mode="M219" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SubjectCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M219" priority="-1" />
+  <xsl:template match="@*|node()" mode="M219" priority="-2">
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" mode="M220" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M220" priority="-1" />
+  <xsl:template match="@*|node()" mode="M220" priority="-2">
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" mode="M221" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:NetPriceProductTradePrice)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:NetPriceProductTradePrice)=1">
+          <xsl:attribute name="id">FX-SCH-A-000272</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:NetPriceProductTradePrice' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M221" priority="-1" />
+  <xsl:template match="@*|node()" mode="M221" priority="-2">
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" mode="M222" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000274</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator="false"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M222" priority="-1" />
+  <xsl:template match="@*|node()" mode="M222" priority="-2">
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M223" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M223" priority="-1" />
+  <xsl:template match="@*|node()" mode="M223" priority="-2">
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M224" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M224" priority="-1" />
+  <xsl:template match="@*|node()" mode="M224" priority="-2">
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M225" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M225" priority="-1" />
+  <xsl:template match="@*|node()" mode="M225" priority="-2">
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" mode="M226" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M226" priority="-1" />
+  <xsl:template match="@*|node()" mode="M226" priority="-2">
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" mode="M227" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculationPercent' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M227" priority="-1" />
+  <xsl:template match="@*|node()" mode="M227" priority="-2">
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M228" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M228" priority="-1" />
+  <xsl:template match="@*|node()" mode="M228" priority="-2">
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:Reason" mode="M229" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:Reason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Reason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M229" priority="-1" />
+  <xsl:template match="@*|node()" mode="M229" priority="-2">
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M230" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M230" priority="-1" />
+  <xsl:template match="@*|node()" mode="M230" priority="-2">
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M231" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue6" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M231" priority="-1" />
+  <xsl:template match="@*|node()" mode="M231" priority="-2">
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M232" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M232" priority="-1" />
+  <xsl:template match="@*|node()" mode="M232" priority="-2">
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" mode="M233" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M233" priority="-1" />
+  <xsl:template match="@*|node()" mode="M233" priority="-2">
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" mode="M234" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AppliedTradeAllowanceCharge' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M234" priority="-1" />
+  <xsl:template match="@*|node()" mode="M234" priority="-2">
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M235" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue6" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M235" priority="-1" />
+  <xsl:template match="@*|node()" mode="M235" priority="-2">
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M236" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M236" priority="-1" />
+  <xsl:template match="@*|node()" mode="M236" priority="-2">
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" mode="M237" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BilledQuantity)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BilledQuantity)=1">
+          <xsl:attribute name="id">FX-SCH-A-000276</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BilledQuantity' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M237" priority="-1" />
+  <xsl:template match="@*|node()" mode="M237" priority="-2">
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" mode="M238" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M238" priority="-1" />
+  <xsl:template match="@*|node()" mode="M238" priority="-2">
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" mode="M239" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" />
+    <xsl:variable name="codeValue6" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M239" priority="-1" />
+  <xsl:template match="@*|node()" mode="M239" priority="-2">
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" mode="M240" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000278</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000279</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementLineMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M240" priority="-1" />
+  <xsl:template match="@*|node()" mode="M240" priority="-2">
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" mode="M241" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M241" priority="-1" />
+  <xsl:template match="@*|node()" mode="M241" priority="-2">
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" mode="M242" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M242" priority="-1" />
+  <xsl:template match="@*|node()" mode="M242" priority="-2">
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount" mode="M243" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M243" priority="-1" />
+  <xsl:template match="@*|node()" mode="M243" priority="-2">
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M244" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue8" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M244" priority="-1" />
+  <xsl:template match="@*|node()" mode="M244" priority="-2">
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M245" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M245" priority="-1" />
+  <xsl:template match="@*|node()" mode="M245" priority="-2">
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason" mode="M246" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M246" priority="-1" />
+  <xsl:template match="@*|node()" mode="M246" priority="-2">
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M247" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M247" priority="-1" />
+  <xsl:template match="@*|node()" mode="M247" priority="-2">
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M248" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M248" priority="-1" />
+  <xsl:template match="@*|node()" mode="M248" priority="-2">
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M249" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M249" priority="-1" />
+  <xsl:template match="@*|node()" mode="M249" priority="-2">
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M250" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M250" priority="-1" />
+  <xsl:template match="@*|node()" mode="M250" priority="-2">
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M251" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M251" priority="-1" />
+  <xsl:template match="@*|node()" mode="M251" priority="-2">
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M252" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M252" priority="-1" />
+  <xsl:template match="@*|node()" mode="M252" priority="-2">
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M253" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M253" priority="-1" />
+  <xsl:template match="@*|node()" mode="M253" priority="-2">
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M254" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M254" priority="-1" />
+  <xsl:template match="@*|node()" mode="M254" priority="-2">
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M255" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M255" priority="-1" />
+  <xsl:template match="@*|node()" mode="M255" priority="-2">
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" mode="M256" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M256" priority="-1" />
+  <xsl:template match="@*|node()" mode="M256" priority="-2">
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" mode="M257" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculationPercent' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M257" priority="-1" />
+  <xsl:template match="@*|node()" mode="M257" priority="-2">
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M258" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M258" priority="-1" />
+  <xsl:template match="@*|node()" mode="M258" priority="-2">
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M259" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M259" priority="-1" />
+  <xsl:template match="@*|node()" mode="M259" priority="-2">
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M260" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M260" priority="-1" />
+  <xsl:template match="@*|node()" mode="M260" priority="-2">
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M261" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M261" priority="-1" />
+  <xsl:template match="@*|node()" mode="M261" priority="-2">
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount" mode="M262" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M262" priority="-1" />
+  <xsl:template match="@*|node()" mode="M262" priority="-2">
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CalculationPercent" mode="M263" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CalculationPercent" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculationPercent' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M263" priority="-1" />
+  <xsl:template match="@*|node()" mode="M263" priority="-2">
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M264" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M264" priority="-1" />
+  <xsl:template match="@*|node()" mode="M264" priority="-2">
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M265" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue10" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M265" priority="-1" />
+  <xsl:template match="@*|node()" mode="M265" priority="-2">
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" mode="M266" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M266" priority="-1" />
+  <xsl:template match="@*|node()" mode="M266" priority="-2">
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M267" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M267" priority="-1" />
+  <xsl:template match="@*|node()" mode="M267" priority="-2">
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" mode="M268" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M268" priority="-1" />
+  <xsl:template match="@*|node()" mode="M268" priority="-2">
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" mode="M269" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M269" priority="-1" />
+  <xsl:template match="@*|node()" mode="M269" priority="-2">
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" mode="M270" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_BASIC_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M270" priority="-1" />
+  <xsl:template match="@*|node()" mode="M270" priority="-2">
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+</xsl:stylesheet>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC_codedb.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC_codedb.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_BASIC_codedb.xml	(revision 8542)
@@ -0,0 +1,4815 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<codedb>
+  <cl id="1">
+    <enumeration value="urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic"/>
+    <enumeration value="urn:cen.eu:en16931:2017#compliant#urn:zugferd.de:2p0:basic"/>
+  </cl>
+  <cl id="2">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="3">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="4">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADH"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADS"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHW"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="BAG"/>
+    <enumeration value="BAH"/>
+    <enumeration value="BAI"/>
+    <enumeration value="BAJ"/>
+    <enumeration value="BAK"/>
+    <enumeration value="BAL"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BAN"/>
+    <enumeration value="BAO"/>
+    <enumeration value="BAP"/>
+    <enumeration value="BAQ"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BAS"/>
+    <enumeration value="BAT"/>
+    <enumeration value="BAU"/>
+    <enumeration value="BAV"/>
+    <enumeration value="BAW"/>
+    <enumeration value="BAX"/>
+    <enumeration value="BAY"/>
+    <enumeration value="BAZ"/>
+    <enumeration value="BBA"/>
+    <enumeration value="BBB"/>
+    <enumeration value="BLC"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLE"/>
+    <enumeration value="BLF"/>
+    <enumeration value="BLG"/>
+    <enumeration value="BLH"/>
+    <enumeration value="BLI"/>
+    <enumeration value="BLJ"/>
+    <enumeration value="BLK"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BLM"/>
+    <enumeration value="BLN"/>
+    <enumeration value="BLO"/>
+    <enumeration value="BLP"/>
+    <enumeration value="BLQ"/>
+    <enumeration value="BLR"/>
+    <enumeration value="BLS"/>
+    <enumeration value="BLT"/>
+    <enumeration value="BLU"/>
+    <enumeration value="BLV"/>
+    <enumeration value="BLW"/>
+    <enumeration value="BLX"/>
+    <enumeration value="BLY"/>
+    <enumeration value="BLZ"/>
+    <enumeration value="BMA"/>
+    <enumeration value="BMB"/>
+    <enumeration value="BMC"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BME"/>
+    <enumeration value="BMF"/>
+    <enumeration value="BMG"/>
+    <enumeration value="BMH"/>
+    <enumeration value="CCI"/>
+    <enumeration value="CCJ"/>
+    <enumeration value="CCK"/>
+    <enumeration value="CCL"/>
+    <enumeration value="CCM"/>
+    <enumeration value="CCN"/>
+    <enumeration value="CCO"/>
+    <enumeration value="CEX"/>
+    <enumeration value="CHG"/>
+    <enumeration value="CIP"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CLR"/>
+    <enumeration value="COI"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CUS"/>
+    <enumeration value="DAR"/>
+    <enumeration value="DCL"/>
+    <enumeration value="DEL"/>
+    <enumeration value="DIN"/>
+    <enumeration value="DOC"/>
+    <enumeration value="DUT"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FBC"/>
+    <enumeration value="GBL"/>
+    <enumeration value="GEN"/>
+    <enumeration value="GS7"/>
+    <enumeration value="HAN"/>
+    <enumeration value="HAZ"/>
+    <enumeration value="ICN"/>
+    <enumeration value="IIN"/>
+    <enumeration value="IMI"/>
+    <enumeration value="IND"/>
+    <enumeration value="INS"/>
+    <enumeration value="INV"/>
+    <enumeration value="IRP"/>
+    <enumeration value="ITR"/>
+    <enumeration value="ITS"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LIN"/>
+    <enumeration value="LOI"/>
+    <enumeration value="MCO"/>
+    <enumeration value="MDH"/>
+    <enumeration value="MKS"/>
+    <enumeration value="ORI"/>
+    <enumeration value="OSI"/>
+    <enumeration value="PAC"/>
+    <enumeration value="PAI"/>
+    <enumeration value="PAY"/>
+    <enumeration value="PKG"/>
+    <enumeration value="PKT"/>
+    <enumeration value="PMD"/>
+    <enumeration value="PMT"/>
+    <enumeration value="PRD"/>
+    <enumeration value="PRF"/>
+    <enumeration value="PRI"/>
+    <enumeration value="PUR"/>
+    <enumeration value="QIN"/>
+    <enumeration value="QQD"/>
+    <enumeration value="QUT"/>
+    <enumeration value="RAH"/>
+    <enumeration value="REG"/>
+    <enumeration value="RET"/>
+    <enumeration value="REV"/>
+    <enumeration value="RQR"/>
+    <enumeration value="SAF"/>
+    <enumeration value="SIC"/>
+    <enumeration value="SIN"/>
+    <enumeration value="SLR"/>
+    <enumeration value="SPA"/>
+    <enumeration value="SPG"/>
+    <enumeration value="SPH"/>
+    <enumeration value="SPP"/>
+    <enumeration value="SPT"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SUR"/>
+    <enumeration value="TCA"/>
+    <enumeration value="TDT"/>
+    <enumeration value="TRA"/>
+    <enumeration value="TRR"/>
+    <enumeration value="TXD"/>
+    <enumeration value="WHI"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="5">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="6">
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="74"/>
+    <enumeration value="77"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="85"/>
+    <enumeration value="87"/>
+    <enumeration value="89"/>
+    <enumeration value="91"/>
+    <enumeration value="1I"/>
+    <enumeration value="2A"/>
+    <enumeration value="2B"/>
+    <enumeration value="2C"/>
+    <enumeration value="2G"/>
+    <enumeration value="2H"/>
+    <enumeration value="2I"/>
+    <enumeration value="2J"/>
+    <enumeration value="2K"/>
+    <enumeration value="2L"/>
+    <enumeration value="2M"/>
+    <enumeration value="2N"/>
+    <enumeration value="2P"/>
+    <enumeration value="2Q"/>
+    <enumeration value="2R"/>
+    <enumeration value="2U"/>
+    <enumeration value="2X"/>
+    <enumeration value="2Y"/>
+    <enumeration value="2Z"/>
+    <enumeration value="3B"/>
+    <enumeration value="3C"/>
+    <enumeration value="4C"/>
+    <enumeration value="4G"/>
+    <enumeration value="4H"/>
+    <enumeration value="4K"/>
+    <enumeration value="4L"/>
+    <enumeration value="4M"/>
+    <enumeration value="4N"/>
+    <enumeration value="4O"/>
+    <enumeration value="4P"/>
+    <enumeration value="4Q"/>
+    <enumeration value="4R"/>
+    <enumeration value="4T"/>
+    <enumeration value="4U"/>
+    <enumeration value="4W"/>
+    <enumeration value="4X"/>
+    <enumeration value="5A"/>
+    <enumeration value="5B"/>
+    <enumeration value="5E"/>
+    <enumeration value="5J"/>
+    <enumeration value="A10"/>
+    <enumeration value="A11"/>
+    <enumeration value="A12"/>
+    <enumeration value="A13"/>
+    <enumeration value="A14"/>
+    <enumeration value="A15"/>
+    <enumeration value="A16"/>
+    <enumeration value="A17"/>
+    <enumeration value="A18"/>
+    <enumeration value="A19"/>
+    <enumeration value="A2"/>
+    <enumeration value="A20"/>
+    <enumeration value="A21"/>
+    <enumeration value="A22"/>
+    <enumeration value="A23"/>
+    <enumeration value="A24"/>
+    <enumeration value="A26"/>
+    <enumeration value="A27"/>
+    <enumeration value="A28"/>
+    <enumeration value="A29"/>
+    <enumeration value="A3"/>
+    <enumeration value="A30"/>
+    <enumeration value="A31"/>
+    <enumeration value="A32"/>
+    <enumeration value="A33"/>
+    <enumeration value="A34"/>
+    <enumeration value="A35"/>
+    <enumeration value="A36"/>
+    <enumeration value="A37"/>
+    <enumeration value="A38"/>
+    <enumeration value="A39"/>
+    <enumeration value="A4"/>
+    <enumeration value="A40"/>
+    <enumeration value="A41"/>
+    <enumeration value="A42"/>
+    <enumeration value="A43"/>
+    <enumeration value="A44"/>
+    <enumeration value="A45"/>
+    <enumeration value="A47"/>
+    <enumeration value="A48"/>
+    <enumeration value="A49"/>
+    <enumeration value="A5"/>
+    <enumeration value="A53"/>
+    <enumeration value="A54"/>
+    <enumeration value="A55"/>
+    <enumeration value="A56"/>
+    <enumeration value="A59"/>
+    <enumeration value="A6"/>
+    <enumeration value="A68"/>
+    <enumeration value="A69"/>
+    <enumeration value="A7"/>
+    <enumeration value="A70"/>
+    <enumeration value="A71"/>
+    <enumeration value="A73"/>
+    <enumeration value="A74"/>
+    <enumeration value="A75"/>
+    <enumeration value="A76"/>
+    <enumeration value="A8"/>
+    <enumeration value="A84"/>
+    <enumeration value="A85"/>
+    <enumeration value="A86"/>
+    <enumeration value="A87"/>
+    <enumeration value="A88"/>
+    <enumeration value="A89"/>
+    <enumeration value="A9"/>
+    <enumeration value="A90"/>
+    <enumeration value="A91"/>
+    <enumeration value="A93"/>
+    <enumeration value="A94"/>
+    <enumeration value="A95"/>
+    <enumeration value="A96"/>
+    <enumeration value="A97"/>
+    <enumeration value="A98"/>
+    <enumeration value="A99"/>
+    <enumeration value="AA"/>
+    <enumeration value="AB"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACT"/>
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AH"/>
+    <enumeration value="AI"/>
+    <enumeration value="AK"/>
+    <enumeration value="AL"/>
+    <enumeration value="AMH"/>
+    <enumeration value="AMP"/>
+    <enumeration value="ANN"/>
+    <enumeration value="APZ"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="ASM"/>
+    <enumeration value="ASU"/>
+    <enumeration value="ATM"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AY"/>
+    <enumeration value="AZ"/>
+    <enumeration value="B1"/>
+    <enumeration value="B10"/>
+    <enumeration value="B11"/>
+    <enumeration value="B12"/>
+    <enumeration value="B13"/>
+    <enumeration value="B14"/>
+    <enumeration value="B15"/>
+    <enumeration value="B16"/>
+    <enumeration value="B17"/>
+    <enumeration value="B18"/>
+    <enumeration value="B19"/>
+    <enumeration value="B20"/>
+    <enumeration value="B21"/>
+    <enumeration value="B22"/>
+    <enumeration value="B23"/>
+    <enumeration value="B24"/>
+    <enumeration value="B25"/>
+    <enumeration value="B26"/>
+    <enumeration value="B27"/>
+    <enumeration value="B28"/>
+    <enumeration value="B29"/>
+    <enumeration value="B3"/>
+    <enumeration value="B30"/>
+    <enumeration value="B31"/>
+    <enumeration value="B32"/>
+    <enumeration value="B33"/>
+    <enumeration value="B34"/>
+    <enumeration value="B35"/>
+    <enumeration value="B4"/>
+    <enumeration value="B41"/>
+    <enumeration value="B42"/>
+    <enumeration value="B43"/>
+    <enumeration value="B44"/>
+    <enumeration value="B45"/>
+    <enumeration value="B46"/>
+    <enumeration value="B47"/>
+    <enumeration value="B48"/>
+    <enumeration value="B49"/>
+    <enumeration value="B50"/>
+    <enumeration value="B52"/>
+    <enumeration value="B53"/>
+    <enumeration value="B54"/>
+    <enumeration value="B55"/>
+    <enumeration value="B56"/>
+    <enumeration value="B57"/>
+    <enumeration value="B58"/>
+    <enumeration value="B59"/>
+    <enumeration value="B60"/>
+    <enumeration value="B61"/>
+    <enumeration value="B62"/>
+    <enumeration value="B63"/>
+    <enumeration value="B64"/>
+    <enumeration value="B66"/>
+    <enumeration value="B67"/>
+    <enumeration value="B68"/>
+    <enumeration value="B69"/>
+    <enumeration value="B7"/>
+    <enumeration value="B70"/>
+    <enumeration value="B71"/>
+    <enumeration value="B72"/>
+    <enumeration value="B73"/>
+    <enumeration value="B74"/>
+    <enumeration value="B75"/>
+    <enumeration value="B76"/>
+    <enumeration value="B77"/>
+    <enumeration value="B78"/>
+    <enumeration value="B79"/>
+    <enumeration value="B8"/>
+    <enumeration value="B80"/>
+    <enumeration value="B81"/>
+    <enumeration value="B82"/>
+    <enumeration value="B83"/>
+    <enumeration value="B84"/>
+    <enumeration value="B85"/>
+    <enumeration value="B86"/>
+    <enumeration value="B87"/>
+    <enumeration value="B88"/>
+    <enumeration value="B89"/>
+    <enumeration value="B90"/>
+    <enumeration value="B91"/>
+    <enumeration value="B92"/>
+    <enumeration value="B93"/>
+    <enumeration value="B94"/>
+    <enumeration value="B95"/>
+    <enumeration value="B96"/>
+    <enumeration value="B97"/>
+    <enumeration value="B98"/>
+    <enumeration value="B99"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BB"/>
+    <enumeration value="BFT"/>
+    <enumeration value="BHP"/>
+    <enumeration value="BIL"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BP"/>
+    <enumeration value="BPM"/>
+    <enumeration value="BQL"/>
+    <enumeration value="BTU"/>
+    <enumeration value="BUA"/>
+    <enumeration value="BUI"/>
+    <enumeration value="C0"/>
+    <enumeration value="C10"/>
+    <enumeration value="C11"/>
+    <enumeration value="C12"/>
+    <enumeration value="C13"/>
+    <enumeration value="C14"/>
+    <enumeration value="C15"/>
+    <enumeration value="C16"/>
+    <enumeration value="C17"/>
+    <enumeration value="C18"/>
+    <enumeration value="C19"/>
+    <enumeration value="C20"/>
+    <enumeration value="C21"/>
+    <enumeration value="C22"/>
+    <enumeration value="C23"/>
+    <enumeration value="C24"/>
+    <enumeration value="C25"/>
+    <enumeration value="C26"/>
+    <enumeration value="C27"/>
+    <enumeration value="C28"/>
+    <enumeration value="C29"/>
+    <enumeration value="C3"/>
+    <enumeration value="C30"/>
+    <enumeration value="C31"/>
+    <enumeration value="C32"/>
+    <enumeration value="C33"/>
+    <enumeration value="C34"/>
+    <enumeration value="C35"/>
+    <enumeration value="C36"/>
+    <enumeration value="C37"/>
+    <enumeration value="C38"/>
+    <enumeration value="C39"/>
+    <enumeration value="C40"/>
+    <enumeration value="C41"/>
+    <enumeration value="C42"/>
+    <enumeration value="C43"/>
+    <enumeration value="C44"/>
+    <enumeration value="C45"/>
+    <enumeration value="C46"/>
+    <enumeration value="C47"/>
+    <enumeration value="C48"/>
+    <enumeration value="C49"/>
+    <enumeration value="C50"/>
+    <enumeration value="C51"/>
+    <enumeration value="C52"/>
+    <enumeration value="C53"/>
+    <enumeration value="C54"/>
+    <enumeration value="C55"/>
+    <enumeration value="C56"/>
+    <enumeration value="C57"/>
+    <enumeration value="C58"/>
+    <enumeration value="C59"/>
+    <enumeration value="C60"/>
+    <enumeration value="C61"/>
+    <enumeration value="C62"/>
+    <enumeration value="C63"/>
+    <enumeration value="C64"/>
+    <enumeration value="C65"/>
+    <enumeration value="C66"/>
+    <enumeration value="C67"/>
+    <enumeration value="C68"/>
+    <enumeration value="C69"/>
+    <enumeration value="C7"/>
+    <enumeration value="C70"/>
+    <enumeration value="C71"/>
+    <enumeration value="C72"/>
+    <enumeration value="C73"/>
+    <enumeration value="C74"/>
+    <enumeration value="C75"/>
+    <enumeration value="C76"/>
+    <enumeration value="C78"/>
+    <enumeration value="C79"/>
+    <enumeration value="C8"/>
+    <enumeration value="C80"/>
+    <enumeration value="C81"/>
+    <enumeration value="C82"/>
+    <enumeration value="C83"/>
+    <enumeration value="C84"/>
+    <enumeration value="C85"/>
+    <enumeration value="C86"/>
+    <enumeration value="C87"/>
+    <enumeration value="C88"/>
+    <enumeration value="C89"/>
+    <enumeration value="C9"/>
+    <enumeration value="C90"/>
+    <enumeration value="C91"/>
+    <enumeration value="C92"/>
+    <enumeration value="C93"/>
+    <enumeration value="C94"/>
+    <enumeration value="C95"/>
+    <enumeration value="C96"/>
+    <enumeration value="C97"/>
+    <enumeration value="C99"/>
+    <enumeration value="CCT"/>
+    <enumeration value="CDL"/>
+    <enumeration value="CEL"/>
+    <enumeration value="CEN"/>
+    <enumeration value="CG"/>
+    <enumeration value="CGM"/>
+    <enumeration value="CKG"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLT"/>
+    <enumeration value="CMK"/>
+    <enumeration value="CMQ"/>
+    <enumeration value="CMT"/>
+    <enumeration value="CNP"/>
+    <enumeration value="CNT"/>
+    <enumeration value="COU"/>
+    <enumeration value="CTG"/>
+    <enumeration value="CTM"/>
+    <enumeration value="CTN"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CWA"/>
+    <enumeration value="CWI"/>
+    <enumeration value="D03"/>
+    <enumeration value="D04"/>
+    <enumeration value="D1"/>
+    <enumeration value="D10"/>
+    <enumeration value="D11"/>
+    <enumeration value="D12"/>
+    <enumeration value="D13"/>
+    <enumeration value="D15"/>
+    <enumeration value="D16"/>
+    <enumeration value="D17"/>
+    <enumeration value="D18"/>
+    <enumeration value="D19"/>
+    <enumeration value="D2"/>
+    <enumeration value="D20"/>
+    <enumeration value="D21"/>
+    <enumeration value="D22"/>
+    <enumeration value="D23"/>
+    <enumeration value="D24"/>
+    <enumeration value="D25"/>
+    <enumeration value="D26"/>
+    <enumeration value="D27"/>
+    <enumeration value="D29"/>
+    <enumeration value="D30"/>
+    <enumeration value="D31"/>
+    <enumeration value="D32"/>
+    <enumeration value="D33"/>
+    <enumeration value="D34"/>
+    <enumeration value="D36"/>
+    <enumeration value="D41"/>
+    <enumeration value="D42"/>
+    <enumeration value="D43"/>
+    <enumeration value="D44"/>
+    <enumeration value="D45"/>
+    <enumeration value="D46"/>
+    <enumeration value="D47"/>
+    <enumeration value="D48"/>
+    <enumeration value="D49"/>
+    <enumeration value="D5"/>
+    <enumeration value="D50"/>
+    <enumeration value="D51"/>
+    <enumeration value="D52"/>
+    <enumeration value="D53"/>
+    <enumeration value="D54"/>
+    <enumeration value="D55"/>
+    <enumeration value="D56"/>
+    <enumeration value="D57"/>
+    <enumeration value="D58"/>
+    <enumeration value="D59"/>
+    <enumeration value="D6"/>
+    <enumeration value="D60"/>
+    <enumeration value="D61"/>
+    <enumeration value="D62"/>
+    <enumeration value="D63"/>
+    <enumeration value="D65"/>
+    <enumeration value="D68"/>
+    <enumeration value="D69"/>
+    <enumeration value="D73"/>
+    <enumeration value="D74"/>
+    <enumeration value="D77"/>
+    <enumeration value="D78"/>
+    <enumeration value="D80"/>
+    <enumeration value="D81"/>
+    <enumeration value="D82"/>
+    <enumeration value="D83"/>
+    <enumeration value="D85"/>
+    <enumeration value="D86"/>
+    <enumeration value="D87"/>
+    <enumeration value="D88"/>
+    <enumeration value="D89"/>
+    <enumeration value="D91"/>
+    <enumeration value="D93"/>
+    <enumeration value="D94"/>
+    <enumeration value="D95"/>
+    <enumeration value="DAA"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAY"/>
+    <enumeration value="DB"/>
+    <enumeration value="DBM"/>
+    <enumeration value="DBW"/>
+    <enumeration value="DD"/>
+    <enumeration value="DEC"/>
+    <enumeration value="DG"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DLT"/>
+    <enumeration value="DMA"/>
+    <enumeration value="DMK"/>
+    <enumeration value="DMO"/>
+    <enumeration value="DMQ"/>
+    <enumeration value="DMT"/>
+    <enumeration value="DN"/>
+    <enumeration value="DPC"/>
+    <enumeration value="DPR"/>
+    <enumeration value="DPT"/>
+    <enumeration value="DRA"/>
+    <enumeration value="DRI"/>
+    <enumeration value="DRL"/>
+    <enumeration value="DT"/>
+    <enumeration value="DTN"/>
+    <enumeration value="DWT"/>
+    <enumeration value="DZN"/>
+    <enumeration value="DZP"/>
+    <enumeration value="E01"/>
+    <enumeration value="E07"/>
+    <enumeration value="E08"/>
+    <enumeration value="E09"/>
+    <enumeration value="E10"/>
+    <enumeration value="E12"/>
+    <enumeration value="E14"/>
+    <enumeration value="E15"/>
+    <enumeration value="E16"/>
+    <enumeration value="E17"/>
+    <enumeration value="E18"/>
+    <enumeration value="E19"/>
+    <enumeration value="E20"/>
+    <enumeration value="E21"/>
+    <enumeration value="E22"/>
+    <enumeration value="E23"/>
+    <enumeration value="E25"/>
+    <enumeration value="E27"/>
+    <enumeration value="E28"/>
+    <enumeration value="E30"/>
+    <enumeration value="E31"/>
+    <enumeration value="E32"/>
+    <enumeration value="E33"/>
+    <enumeration value="E34"/>
+    <enumeration value="E35"/>
+    <enumeration value="E36"/>
+    <enumeration value="E37"/>
+    <enumeration value="E38"/>
+    <enumeration value="E39"/>
+    <enumeration value="E4"/>
+    <enumeration value="E40"/>
+    <enumeration value="E41"/>
+    <enumeration value="E42"/>
+    <enumeration value="E43"/>
+    <enumeration value="E44"/>
+    <enumeration value="E45"/>
+    <enumeration value="E46"/>
+    <enumeration value="E47"/>
+    <enumeration value="E48"/>
+    <enumeration value="E49"/>
+    <enumeration value="E50"/>
+    <enumeration value="E51"/>
+    <enumeration value="E52"/>
+    <enumeration value="E53"/>
+    <enumeration value="E54"/>
+    <enumeration value="E55"/>
+    <enumeration value="E56"/>
+    <enumeration value="E57"/>
+    <enumeration value="E58"/>
+    <enumeration value="E59"/>
+    <enumeration value="E60"/>
+    <enumeration value="E61"/>
+    <enumeration value="E62"/>
+    <enumeration value="E63"/>
+    <enumeration value="E64"/>
+    <enumeration value="E65"/>
+    <enumeration value="E66"/>
+    <enumeration value="E67"/>
+    <enumeration value="E68"/>
+    <enumeration value="E69"/>
+    <enumeration value="E70"/>
+    <enumeration value="E71"/>
+    <enumeration value="E72"/>
+    <enumeration value="E73"/>
+    <enumeration value="E74"/>
+    <enumeration value="E75"/>
+    <enumeration value="E76"/>
+    <enumeration value="E77"/>
+    <enumeration value="E78"/>
+    <enumeration value="E79"/>
+    <enumeration value="E80"/>
+    <enumeration value="E81"/>
+    <enumeration value="E82"/>
+    <enumeration value="E83"/>
+    <enumeration value="E84"/>
+    <enumeration value="E85"/>
+    <enumeration value="E86"/>
+    <enumeration value="E87"/>
+    <enumeration value="E88"/>
+    <enumeration value="E89"/>
+    <enumeration value="E90"/>
+    <enumeration value="E91"/>
+    <enumeration value="E92"/>
+    <enumeration value="E93"/>
+    <enumeration value="E94"/>
+    <enumeration value="E95"/>
+    <enumeration value="E96"/>
+    <enumeration value="E97"/>
+    <enumeration value="E98"/>
+    <enumeration value="E99"/>
+    <enumeration value="EA"/>
+    <enumeration value="EB"/>
+    <enumeration value="EQ"/>
+    <enumeration value="F01"/>
+    <enumeration value="F02"/>
+    <enumeration value="F03"/>
+    <enumeration value="F04"/>
+    <enumeration value="F05"/>
+    <enumeration value="F06"/>
+    <enumeration value="F07"/>
+    <enumeration value="F08"/>
+    <enumeration value="F10"/>
+    <enumeration value="F11"/>
+    <enumeration value="F12"/>
+    <enumeration value="F13"/>
+    <enumeration value="F14"/>
+    <enumeration value="F15"/>
+    <enumeration value="F16"/>
+    <enumeration value="F17"/>
+    <enumeration value="F18"/>
+    <enumeration value="F19"/>
+    <enumeration value="F20"/>
+    <enumeration value="F21"/>
+    <enumeration value="F22"/>
+    <enumeration value="F23"/>
+    <enumeration value="F24"/>
+    <enumeration value="F25"/>
+    <enumeration value="F26"/>
+    <enumeration value="F27"/>
+    <enumeration value="F28"/>
+    <enumeration value="F29"/>
+    <enumeration value="F30"/>
+    <enumeration value="F31"/>
+    <enumeration value="F32"/>
+    <enumeration value="F33"/>
+    <enumeration value="F34"/>
+    <enumeration value="F35"/>
+    <enumeration value="F36"/>
+    <enumeration value="F37"/>
+    <enumeration value="F38"/>
+    <enumeration value="F39"/>
+    <enumeration value="F40"/>
+    <enumeration value="F41"/>
+    <enumeration value="F42"/>
+    <enumeration value="F43"/>
+    <enumeration value="F44"/>
+    <enumeration value="F45"/>
+    <enumeration value="F46"/>
+    <enumeration value="F47"/>
+    <enumeration value="F48"/>
+    <enumeration value="F49"/>
+    <enumeration value="F50"/>
+    <enumeration value="F51"/>
+    <enumeration value="F52"/>
+    <enumeration value="F53"/>
+    <enumeration value="F54"/>
+    <enumeration value="F55"/>
+    <enumeration value="F56"/>
+    <enumeration value="F57"/>
+    <enumeration value="F58"/>
+    <enumeration value="F59"/>
+    <enumeration value="F60"/>
+    <enumeration value="F61"/>
+    <enumeration value="F62"/>
+    <enumeration value="F63"/>
+    <enumeration value="F64"/>
+    <enumeration value="F65"/>
+    <enumeration value="F66"/>
+    <enumeration value="F67"/>
+    <enumeration value="F68"/>
+    <enumeration value="F69"/>
+    <enumeration value="F70"/>
+    <enumeration value="F71"/>
+    <enumeration value="F72"/>
+    <enumeration value="F73"/>
+    <enumeration value="F74"/>
+    <enumeration value="F75"/>
+    <enumeration value="F76"/>
+    <enumeration value="F77"/>
+    <enumeration value="F78"/>
+    <enumeration value="F79"/>
+    <enumeration value="F80"/>
+    <enumeration value="F81"/>
+    <enumeration value="F82"/>
+    <enumeration value="F83"/>
+    <enumeration value="F84"/>
+    <enumeration value="F85"/>
+    <enumeration value="F86"/>
+    <enumeration value="F87"/>
+    <enumeration value="F88"/>
+    <enumeration value="F89"/>
+    <enumeration value="F90"/>
+    <enumeration value="F91"/>
+    <enumeration value="F92"/>
+    <enumeration value="F93"/>
+    <enumeration value="F94"/>
+    <enumeration value="F95"/>
+    <enumeration value="F96"/>
+    <enumeration value="F97"/>
+    <enumeration value="F98"/>
+    <enumeration value="F99"/>
+    <enumeration value="FAH"/>
+    <enumeration value="FAR"/>
+    <enumeration value="FBM"/>
+    <enumeration value="FC"/>
+    <enumeration value="FF"/>
+    <enumeration value="FH"/>
+    <enumeration value="FIT"/>
+    <enumeration value="FL"/>
+    <enumeration value="FNU"/>
+    <enumeration value="FOT"/>
+    <enumeration value="FP"/>
+    <enumeration value="FR"/>
+    <enumeration value="FS"/>
+    <enumeration value="FTK"/>
+    <enumeration value="FTQ"/>
+    <enumeration value="G01"/>
+    <enumeration value="G04"/>
+    <enumeration value="G05"/>
+    <enumeration value="G06"/>
+    <enumeration value="G08"/>
+    <enumeration value="G09"/>
+    <enumeration value="G10"/>
+    <enumeration value="G11"/>
+    <enumeration value="G12"/>
+    <enumeration value="G13"/>
+    <enumeration value="G14"/>
+    <enumeration value="G15"/>
+    <enumeration value="G16"/>
+    <enumeration value="G17"/>
+    <enumeration value="G18"/>
+    <enumeration value="G19"/>
+    <enumeration value="G2"/>
+    <enumeration value="G20"/>
+    <enumeration value="G21"/>
+    <enumeration value="G23"/>
+    <enumeration value="G24"/>
+    <enumeration value="G25"/>
+    <enumeration value="G26"/>
+    <enumeration value="G27"/>
+    <enumeration value="G28"/>
+    <enumeration value="G29"/>
+    <enumeration value="G3"/>
+    <enumeration value="G30"/>
+    <enumeration value="G31"/>
+    <enumeration value="G32"/>
+    <enumeration value="G33"/>
+    <enumeration value="G34"/>
+    <enumeration value="G35"/>
+    <enumeration value="G36"/>
+    <enumeration value="G37"/>
+    <enumeration value="G38"/>
+    <enumeration value="G39"/>
+    <enumeration value="G40"/>
+    <enumeration value="G41"/>
+    <enumeration value="G42"/>
+    <enumeration value="G43"/>
+    <enumeration value="G44"/>
+    <enumeration value="G45"/>
+    <enumeration value="G46"/>
+    <enumeration value="G47"/>
+    <enumeration value="G48"/>
+    <enumeration value="G49"/>
+    <enumeration value="G50"/>
+    <enumeration value="G51"/>
+    <enumeration value="G52"/>
+    <enumeration value="G53"/>
+    <enumeration value="G54"/>
+    <enumeration value="G55"/>
+    <enumeration value="G56"/>
+    <enumeration value="G57"/>
+    <enumeration value="G58"/>
+    <enumeration value="G59"/>
+    <enumeration value="G60"/>
+    <enumeration value="G61"/>
+    <enumeration value="G62"/>
+    <enumeration value="G63"/>
+    <enumeration value="G64"/>
+    <enumeration value="G65"/>
+    <enumeration value="G66"/>
+    <enumeration value="G67"/>
+    <enumeration value="G68"/>
+    <enumeration value="G69"/>
+    <enumeration value="G70"/>
+    <enumeration value="G71"/>
+    <enumeration value="G72"/>
+    <enumeration value="G73"/>
+    <enumeration value="G74"/>
+    <enumeration value="G75"/>
+    <enumeration value="G76"/>
+    <enumeration value="G77"/>
+    <enumeration value="G78"/>
+    <enumeration value="G79"/>
+    <enumeration value="G80"/>
+    <enumeration value="G81"/>
+    <enumeration value="G82"/>
+    <enumeration value="G83"/>
+    <enumeration value="G84"/>
+    <enumeration value="G85"/>
+    <enumeration value="G86"/>
+    <enumeration value="G87"/>
+    <enumeration value="G88"/>
+    <enumeration value="G89"/>
+    <enumeration value="G90"/>
+    <enumeration value="G91"/>
+    <enumeration value="G92"/>
+    <enumeration value="G93"/>
+    <enumeration value="G94"/>
+    <enumeration value="G95"/>
+    <enumeration value="G96"/>
+    <enumeration value="G97"/>
+    <enumeration value="G98"/>
+    <enumeration value="G99"/>
+    <enumeration value="GB"/>
+    <enumeration value="GBQ"/>
+    <enumeration value="GDW"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GFI"/>
+    <enumeration value="GGR"/>
+    <enumeration value="GIA"/>
+    <enumeration value="GIC"/>
+    <enumeration value="GII"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GJ"/>
+    <enumeration value="GL"/>
+    <enumeration value="GLD"/>
+    <enumeration value="GLI"/>
+    <enumeration value="GLL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GO"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GRM"/>
+    <enumeration value="GRN"/>
+    <enumeration value="GRO"/>
+    <enumeration value="GV"/>
+    <enumeration value="GWH"/>
+    <enumeration value="H03"/>
+    <enumeration value="H04"/>
+    <enumeration value="H05"/>
+    <enumeration value="H06"/>
+    <enumeration value="H07"/>
+    <enumeration value="H08"/>
+    <enumeration value="H09"/>
+    <enumeration value="H10"/>
+    <enumeration value="H11"/>
+    <enumeration value="H12"/>
+    <enumeration value="H13"/>
+    <enumeration value="H14"/>
+    <enumeration value="H15"/>
+    <enumeration value="H16"/>
+    <enumeration value="H18"/>
+    <enumeration value="H19"/>
+    <enumeration value="H20"/>
+    <enumeration value="H21"/>
+    <enumeration value="H22"/>
+    <enumeration value="H23"/>
+    <enumeration value="H24"/>
+    <enumeration value="H25"/>
+    <enumeration value="H26"/>
+    <enumeration value="H27"/>
+    <enumeration value="H28"/>
+    <enumeration value="H29"/>
+    <enumeration value="H30"/>
+    <enumeration value="H31"/>
+    <enumeration value="H32"/>
+    <enumeration value="H33"/>
+    <enumeration value="H34"/>
+    <enumeration value="H35"/>
+    <enumeration value="H36"/>
+    <enumeration value="H37"/>
+    <enumeration value="H38"/>
+    <enumeration value="H39"/>
+    <enumeration value="H40"/>
+    <enumeration value="H41"/>
+    <enumeration value="H42"/>
+    <enumeration value="H43"/>
+    <enumeration value="H44"/>
+    <enumeration value="H45"/>
+    <enumeration value="H46"/>
+    <enumeration value="H47"/>
+    <enumeration value="H48"/>
+    <enumeration value="H49"/>
+    <enumeration value="H50"/>
+    <enumeration value="H51"/>
+    <enumeration value="H52"/>
+    <enumeration value="H53"/>
+    <enumeration value="H54"/>
+    <enumeration value="H55"/>
+    <enumeration value="H56"/>
+    <enumeration value="H57"/>
+    <enumeration value="H58"/>
+    <enumeration value="H59"/>
+    <enumeration value="H60"/>
+    <enumeration value="H61"/>
+    <enumeration value="H62"/>
+    <enumeration value="H63"/>
+    <enumeration value="H64"/>
+    <enumeration value="H65"/>
+    <enumeration value="H66"/>
+    <enumeration value="H67"/>
+    <enumeration value="H68"/>
+    <enumeration value="H69"/>
+    <enumeration value="H70"/>
+    <enumeration value="H71"/>
+    <enumeration value="H72"/>
+    <enumeration value="H73"/>
+    <enumeration value="H74"/>
+    <enumeration value="H75"/>
+    <enumeration value="H76"/>
+    <enumeration value="H77"/>
+    <enumeration value="H79"/>
+    <enumeration value="H80"/>
+    <enumeration value="H81"/>
+    <enumeration value="H82"/>
+    <enumeration value="H83"/>
+    <enumeration value="H84"/>
+    <enumeration value="H85"/>
+    <enumeration value="H87"/>
+    <enumeration value="H88"/>
+    <enumeration value="H89"/>
+    <enumeration value="H90"/>
+    <enumeration value="H91"/>
+    <enumeration value="H92"/>
+    <enumeration value="H93"/>
+    <enumeration value="H94"/>
+    <enumeration value="H95"/>
+    <enumeration value="H96"/>
+    <enumeration value="H98"/>
+    <enumeration value="H99"/>
+    <enumeration value="HA"/>
+    <enumeration value="HAD"/>
+    <enumeration value="HBA"/>
+    <enumeration value="HBX"/>
+    <enumeration value="HC"/>
+    <enumeration value="HDW"/>
+    <enumeration value="HEA"/>
+    <enumeration value="HGM"/>
+    <enumeration value="HH"/>
+    <enumeration value="HIU"/>
+    <enumeration value="HKM"/>
+    <enumeration value="HLT"/>
+    <enumeration value="HM"/>
+    <enumeration value="HMO"/>
+    <enumeration value="HMQ"/>
+    <enumeration value="HMT"/>
+    <enumeration value="HPA"/>
+    <enumeration value="HTZ"/>
+    <enumeration value="HUR"/>
+    <enumeration value="HWE"/>
+    <enumeration value="IA"/>
+    <enumeration value="IE"/>
+    <enumeration value="INH"/>
+    <enumeration value="INK"/>
+    <enumeration value="INQ"/>
+    <enumeration value="ISD"/>
+    <enumeration value="IU"/>
+    <enumeration value="IUG"/>
+    <enumeration value="IV"/>
+    <enumeration value="J10"/>
+    <enumeration value="J12"/>
+    <enumeration value="J13"/>
+    <enumeration value="J14"/>
+    <enumeration value="J15"/>
+    <enumeration value="J16"/>
+    <enumeration value="J17"/>
+    <enumeration value="J18"/>
+    <enumeration value="J19"/>
+    <enumeration value="J2"/>
+    <enumeration value="J20"/>
+    <enumeration value="J21"/>
+    <enumeration value="J22"/>
+    <enumeration value="J23"/>
+    <enumeration value="J24"/>
+    <enumeration value="J25"/>
+    <enumeration value="J26"/>
+    <enumeration value="J27"/>
+    <enumeration value="J28"/>
+    <enumeration value="J29"/>
+    <enumeration value="J30"/>
+    <enumeration value="J31"/>
+    <enumeration value="J32"/>
+    <enumeration value="J33"/>
+    <enumeration value="J34"/>
+    <enumeration value="J35"/>
+    <enumeration value="J36"/>
+    <enumeration value="J38"/>
+    <enumeration value="J39"/>
+    <enumeration value="J40"/>
+    <enumeration value="J41"/>
+    <enumeration value="J42"/>
+    <enumeration value="J43"/>
+    <enumeration value="J44"/>
+    <enumeration value="J45"/>
+    <enumeration value="J46"/>
+    <enumeration value="J47"/>
+    <enumeration value="J48"/>
+    <enumeration value="J49"/>
+    <enumeration value="J50"/>
+    <enumeration value="J51"/>
+    <enumeration value="J52"/>
+    <enumeration value="J53"/>
+    <enumeration value="J54"/>
+    <enumeration value="J55"/>
+    <enumeration value="J56"/>
+    <enumeration value="J57"/>
+    <enumeration value="J58"/>
+    <enumeration value="J59"/>
+    <enumeration value="J60"/>
+    <enumeration value="J61"/>
+    <enumeration value="J62"/>
+    <enumeration value="J63"/>
+    <enumeration value="J64"/>
+    <enumeration value="J65"/>
+    <enumeration value="J66"/>
+    <enumeration value="J67"/>
+    <enumeration value="J68"/>
+    <enumeration value="J69"/>
+    <enumeration value="J70"/>
+    <enumeration value="J71"/>
+    <enumeration value="J72"/>
+    <enumeration value="J73"/>
+    <enumeration value="J74"/>
+    <enumeration value="J75"/>
+    <enumeration value="J76"/>
+    <enumeration value="J78"/>
+    <enumeration value="J79"/>
+    <enumeration value="J81"/>
+    <enumeration value="J82"/>
+    <enumeration value="J83"/>
+    <enumeration value="J84"/>
+    <enumeration value="J85"/>
+    <enumeration value="J87"/>
+    <enumeration value="J90"/>
+    <enumeration value="J91"/>
+    <enumeration value="J92"/>
+    <enumeration value="J93"/>
+    <enumeration value="J95"/>
+    <enumeration value="J96"/>
+    <enumeration value="J97"/>
+    <enumeration value="J98"/>
+    <enumeration value="J99"/>
+    <enumeration value="JE"/>
+    <enumeration value="JK"/>
+    <enumeration value="JM"/>
+    <enumeration value="JNT"/>
+    <enumeration value="JOU"/>
+    <enumeration value="JPS"/>
+    <enumeration value="JWL"/>
+    <enumeration value="K1"/>
+    <enumeration value="K10"/>
+    <enumeration value="K11"/>
+    <enumeration value="K12"/>
+    <enumeration value="K13"/>
+    <enumeration value="K14"/>
+    <enumeration value="K15"/>
+    <enumeration value="K16"/>
+    <enumeration value="K17"/>
+    <enumeration value="K18"/>
+    <enumeration value="K19"/>
+    <enumeration value="K2"/>
+    <enumeration value="K20"/>
+    <enumeration value="K21"/>
+    <enumeration value="K22"/>
+    <enumeration value="K23"/>
+    <enumeration value="K26"/>
+    <enumeration value="K27"/>
+    <enumeration value="K28"/>
+    <enumeration value="K3"/>
+    <enumeration value="K30"/>
+    <enumeration value="K31"/>
+    <enumeration value="K32"/>
+    <enumeration value="K33"/>
+    <enumeration value="K34"/>
+    <enumeration value="K35"/>
+    <enumeration value="K36"/>
+    <enumeration value="K37"/>
+    <enumeration value="K38"/>
+    <enumeration value="K39"/>
+    <enumeration value="K40"/>
+    <enumeration value="K41"/>
+    <enumeration value="K42"/>
+    <enumeration value="K43"/>
+    <enumeration value="K45"/>
+    <enumeration value="K46"/>
+    <enumeration value="K47"/>
+    <enumeration value="K48"/>
+    <enumeration value="K49"/>
+    <enumeration value="K50"/>
+    <enumeration value="K51"/>
+    <enumeration value="K52"/>
+    <enumeration value="K53"/>
+    <enumeration value="K54"/>
+    <enumeration value="K55"/>
+    <enumeration value="K58"/>
+    <enumeration value="K59"/>
+    <enumeration value="K6"/>
+    <enumeration value="K60"/>
+    <enumeration value="K61"/>
+    <enumeration value="K62"/>
+    <enumeration value="K63"/>
+    <enumeration value="K64"/>
+    <enumeration value="K65"/>
+    <enumeration value="K66"/>
+    <enumeration value="K67"/>
+    <enumeration value="K68"/>
+    <enumeration value="K69"/>
+    <enumeration value="K70"/>
+    <enumeration value="K71"/>
+    <enumeration value="K73"/>
+    <enumeration value="K74"/>
+    <enumeration value="K75"/>
+    <enumeration value="K76"/>
+    <enumeration value="K77"/>
+    <enumeration value="K78"/>
+    <enumeration value="K79"/>
+    <enumeration value="K80"/>
+    <enumeration value="K81"/>
+    <enumeration value="K82"/>
+    <enumeration value="K83"/>
+    <enumeration value="K84"/>
+    <enumeration value="K85"/>
+    <enumeration value="K86"/>
+    <enumeration value="K87"/>
+    <enumeration value="K88"/>
+    <enumeration value="K89"/>
+    <enumeration value="K90"/>
+    <enumeration value="K91"/>
+    <enumeration value="K92"/>
+    <enumeration value="K93"/>
+    <enumeration value="K94"/>
+    <enumeration value="K95"/>
+    <enumeration value="K96"/>
+    <enumeration value="K97"/>
+    <enumeration value="K98"/>
+    <enumeration value="K99"/>
+    <enumeration value="KA"/>
+    <enumeration value="KAT"/>
+    <enumeration value="KB"/>
+    <enumeration value="KBA"/>
+    <enumeration value="KCC"/>
+    <enumeration value="KDW"/>
+    <enumeration value="KEL"/>
+    <enumeration value="KGM"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHY"/>
+    <enumeration value="KHZ"/>
+    <enumeration value="KI"/>
+    <enumeration value="KIC"/>
+    <enumeration value="KIP"/>
+    <enumeration value="KJ"/>
+    <enumeration value="KJO"/>
+    <enumeration value="KL"/>
+    <enumeration value="KLK"/>
+    <enumeration value="KLX"/>
+    <enumeration value="KMA"/>
+    <enumeration value="KMH"/>
+    <enumeration value="KMK"/>
+    <enumeration value="KMQ"/>
+    <enumeration value="KMT"/>
+    <enumeration value="KNI"/>
+    <enumeration value="KNM"/>
+    <enumeration value="KNS"/>
+    <enumeration value="KNT"/>
+    <enumeration value="KO"/>
+    <enumeration value="KPA"/>
+    <enumeration value="KPH"/>
+    <enumeration value="KPO"/>
+    <enumeration value="KPP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KSD"/>
+    <enumeration value="KSH"/>
+    <enumeration value="KT"/>
+    <enumeration value="KTN"/>
+    <enumeration value="KUR"/>
+    <enumeration value="KVA"/>
+    <enumeration value="KVR"/>
+    <enumeration value="KVT"/>
+    <enumeration value="KW"/>
+    <enumeration value="KWH"/>
+    <enumeration value="KWN"/>
+    <enumeration value="KWO"/>
+    <enumeration value="KWS"/>
+    <enumeration value="KWT"/>
+    <enumeration value="KWY"/>
+    <enumeration value="KX"/>
+    <enumeration value="L10"/>
+    <enumeration value="L11"/>
+    <enumeration value="L12"/>
+    <enumeration value="L13"/>
+    <enumeration value="L14"/>
+    <enumeration value="L15"/>
+    <enumeration value="L16"/>
+    <enumeration value="L17"/>
+    <enumeration value="L18"/>
+    <enumeration value="L19"/>
+    <enumeration value="L2"/>
+    <enumeration value="L20"/>
+    <enumeration value="L21"/>
+    <enumeration value="L23"/>
+    <enumeration value="L24"/>
+    <enumeration value="L25"/>
+    <enumeration value="L26"/>
+    <enumeration value="L27"/>
+    <enumeration value="L28"/>
+    <enumeration value="L29"/>
+    <enumeration value="L30"/>
+    <enumeration value="L31"/>
+    <enumeration value="L32"/>
+    <enumeration value="L33"/>
+    <enumeration value="L34"/>
+    <enumeration value="L35"/>
+    <enumeration value="L36"/>
+    <enumeration value="L37"/>
+    <enumeration value="L38"/>
+    <enumeration value="L39"/>
+    <enumeration value="L40"/>
+    <enumeration value="L41"/>
+    <enumeration value="L42"/>
+    <enumeration value="L43"/>
+    <enumeration value="L44"/>
+    <enumeration value="L45"/>
+    <enumeration value="L46"/>
+    <enumeration value="L47"/>
+    <enumeration value="L48"/>
+    <enumeration value="L49"/>
+    <enumeration value="L50"/>
+    <enumeration value="L51"/>
+    <enumeration value="L52"/>
+    <enumeration value="L53"/>
+    <enumeration value="L54"/>
+    <enumeration value="L55"/>
+    <enumeration value="L56"/>
+    <enumeration value="L57"/>
+    <enumeration value="L58"/>
+    <enumeration value="L59"/>
+    <enumeration value="L60"/>
+    <enumeration value="L63"/>
+    <enumeration value="L64"/>
+    <enumeration value="L65"/>
+    <enumeration value="L66"/>
+    <enumeration value="L67"/>
+    <enumeration value="L68"/>
+    <enumeration value="L69"/>
+    <enumeration value="L70"/>
+    <enumeration value="L71"/>
+    <enumeration value="L72"/>
+    <enumeration value="L73"/>
+    <enumeration value="L74"/>
+    <enumeration value="L75"/>
+    <enumeration value="L76"/>
+    <enumeration value="L77"/>
+    <enumeration value="L78"/>
+    <enumeration value="L79"/>
+    <enumeration value="L80"/>
+    <enumeration value="L81"/>
+    <enumeration value="L82"/>
+    <enumeration value="L83"/>
+    <enumeration value="L84"/>
+    <enumeration value="L85"/>
+    <enumeration value="L86"/>
+    <enumeration value="L87"/>
+    <enumeration value="L88"/>
+    <enumeration value="L89"/>
+    <enumeration value="L90"/>
+    <enumeration value="L91"/>
+    <enumeration value="L92"/>
+    <enumeration value="L93"/>
+    <enumeration value="L94"/>
+    <enumeration value="L95"/>
+    <enumeration value="L96"/>
+    <enumeration value="L98"/>
+    <enumeration value="L99"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAC"/>
+    <enumeration value="LBR"/>
+    <enumeration value="LBT"/>
+    <enumeration value="LD"/>
+    <enumeration value="LEF"/>
+    <enumeration value="LF"/>
+    <enumeration value="LH"/>
+    <enumeration value="LK"/>
+    <enumeration value="LM"/>
+    <enumeration value="LN"/>
+    <enumeration value="LO"/>
+    <enumeration value="LP"/>
+    <enumeration value="LPA"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LTN"/>
+    <enumeration value="LTR"/>
+    <enumeration value="LUB"/>
+    <enumeration value="LUM"/>
+    <enumeration value="LUX"/>
+    <enumeration value="LY"/>
+    <enumeration value="M1"/>
+    <enumeration value="M10"/>
+    <enumeration value="M11"/>
+    <enumeration value="M12"/>
+    <enumeration value="M13"/>
+    <enumeration value="M14"/>
+    <enumeration value="M15"/>
+    <enumeration value="M16"/>
+    <enumeration value="M17"/>
+    <enumeration value="M18"/>
+    <enumeration value="M19"/>
+    <enumeration value="M20"/>
+    <enumeration value="M21"/>
+    <enumeration value="M22"/>
+    <enumeration value="M23"/>
+    <enumeration value="M24"/>
+    <enumeration value="M25"/>
+    <enumeration value="M26"/>
+    <enumeration value="M27"/>
+    <enumeration value="M29"/>
+    <enumeration value="M30"/>
+    <enumeration value="M31"/>
+    <enumeration value="M32"/>
+    <enumeration value="M33"/>
+    <enumeration value="M34"/>
+    <enumeration value="M35"/>
+    <enumeration value="M36"/>
+    <enumeration value="M37"/>
+    <enumeration value="M38"/>
+    <enumeration value="M39"/>
+    <enumeration value="M4"/>
+    <enumeration value="M40"/>
+    <enumeration value="M41"/>
+    <enumeration value="M42"/>
+    <enumeration value="M43"/>
+    <enumeration value="M44"/>
+    <enumeration value="M45"/>
+    <enumeration value="M46"/>
+    <enumeration value="M47"/>
+    <enumeration value="M48"/>
+    <enumeration value="M49"/>
+    <enumeration value="M5"/>
+    <enumeration value="M50"/>
+    <enumeration value="M51"/>
+    <enumeration value="M52"/>
+    <enumeration value="M53"/>
+    <enumeration value="M55"/>
+    <enumeration value="M56"/>
+    <enumeration value="M57"/>
+    <enumeration value="M58"/>
+    <enumeration value="M59"/>
+    <enumeration value="M60"/>
+    <enumeration value="M61"/>
+    <enumeration value="M62"/>
+    <enumeration value="M63"/>
+    <enumeration value="M64"/>
+    <enumeration value="M65"/>
+    <enumeration value="M66"/>
+    <enumeration value="M67"/>
+    <enumeration value="M68"/>
+    <enumeration value="M69"/>
+    <enumeration value="M7"/>
+    <enumeration value="M70"/>
+    <enumeration value="M71"/>
+    <enumeration value="M72"/>
+    <enumeration value="M73"/>
+    <enumeration value="M74"/>
+    <enumeration value="M75"/>
+    <enumeration value="M76"/>
+    <enumeration value="M77"/>
+    <enumeration value="M78"/>
+    <enumeration value="M79"/>
+    <enumeration value="M80"/>
+    <enumeration value="M81"/>
+    <enumeration value="M82"/>
+    <enumeration value="M83"/>
+    <enumeration value="M84"/>
+    <enumeration value="M85"/>
+    <enumeration value="M86"/>
+    <enumeration value="M87"/>
+    <enumeration value="M88"/>
+    <enumeration value="M89"/>
+    <enumeration value="M9"/>
+    <enumeration value="M90"/>
+    <enumeration value="M91"/>
+    <enumeration value="M92"/>
+    <enumeration value="M93"/>
+    <enumeration value="M94"/>
+    <enumeration value="M95"/>
+    <enumeration value="M96"/>
+    <enumeration value="M97"/>
+    <enumeration value="M98"/>
+    <enumeration value="M99"/>
+    <enumeration value="MAH"/>
+    <enumeration value="MAL"/>
+    <enumeration value="MAM"/>
+    <enumeration value="MAR"/>
+    <enumeration value="MAW"/>
+    <enumeration value="MBE"/>
+    <enumeration value="MBF"/>
+    <enumeration value="MBR"/>
+    <enumeration value="MC"/>
+    <enumeration value="MCU"/>
+    <enumeration value="MD"/>
+    <enumeration value="MGM"/>
+    <enumeration value="MHZ"/>
+    <enumeration value="MIK"/>
+    <enumeration value="MIL"/>
+    <enumeration value="MIN"/>
+    <enumeration value="MIO"/>
+    <enumeration value="MIU"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MKM"/>
+    <enumeration value="MKW"/>
+    <enumeration value="MLD"/>
+    <enumeration value="MLT"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MMQ"/>
+    <enumeration value="MMT"/>
+    <enumeration value="MND"/>
+    <enumeration value="MNJ"/>
+    <enumeration value="MON"/>
+    <enumeration value="MPA"/>
+    <enumeration value="MQD"/>
+    <enumeration value="MQH"/>
+    <enumeration value="MQM"/>
+    <enumeration value="MQS"/>
+    <enumeration value="MQW"/>
+    <enumeration value="MRD"/>
+    <enumeration value="MRM"/>
+    <enumeration value="MRW"/>
+    <enumeration value="MSK"/>
+    <enumeration value="MTK"/>
+    <enumeration value="MTQ"/>
+    <enumeration value="MTR"/>
+    <enumeration value="MTS"/>
+    <enumeration value="MTZ"/>
+    <enumeration value="MVA"/>
+    <enumeration value="MWH"/>
+    <enumeration value="N1"/>
+    <enumeration value="N10"/>
+    <enumeration value="N11"/>
+    <enumeration value="N12"/>
+    <enumeration value="N13"/>
+    <enumeration value="N14"/>
+    <enumeration value="N15"/>
+    <enumeration value="N16"/>
+    <enumeration value="N17"/>
+    <enumeration value="N18"/>
+    <enumeration value="N19"/>
+    <enumeration value="N20"/>
+    <enumeration value="N21"/>
+    <enumeration value="N22"/>
+    <enumeration value="N23"/>
+    <enumeration value="N24"/>
+    <enumeration value="N25"/>
+    <enumeration value="N26"/>
+    <enumeration value="N27"/>
+    <enumeration value="N28"/>
+    <enumeration value="N29"/>
+    <enumeration value="N3"/>
+    <enumeration value="N30"/>
+    <enumeration value="N31"/>
+    <enumeration value="N32"/>
+    <enumeration value="N33"/>
+    <enumeration value="N34"/>
+    <enumeration value="N35"/>
+    <enumeration value="N36"/>
+    <enumeration value="N37"/>
+    <enumeration value="N38"/>
+    <enumeration value="N39"/>
+    <enumeration value="N40"/>
+    <enumeration value="N41"/>
+    <enumeration value="N42"/>
+    <enumeration value="N43"/>
+    <enumeration value="N44"/>
+    <enumeration value="N45"/>
+    <enumeration value="N46"/>
+    <enumeration value="N47"/>
+    <enumeration value="N48"/>
+    <enumeration value="N49"/>
+    <enumeration value="N50"/>
+    <enumeration value="N51"/>
+    <enumeration value="N52"/>
+    <enumeration value="N53"/>
+    <enumeration value="N54"/>
+    <enumeration value="N55"/>
+    <enumeration value="N56"/>
+    <enumeration value="N57"/>
+    <enumeration value="N58"/>
+    <enumeration value="N59"/>
+    <enumeration value="N60"/>
+    <enumeration value="N61"/>
+    <enumeration value="N62"/>
+    <enumeration value="N63"/>
+    <enumeration value="N64"/>
+    <enumeration value="N65"/>
+    <enumeration value="N66"/>
+    <enumeration value="N67"/>
+    <enumeration value="N68"/>
+    <enumeration value="N69"/>
+    <enumeration value="N70"/>
+    <enumeration value="N71"/>
+    <enumeration value="N72"/>
+    <enumeration value="N73"/>
+    <enumeration value="N74"/>
+    <enumeration value="N75"/>
+    <enumeration value="N76"/>
+    <enumeration value="N77"/>
+    <enumeration value="N78"/>
+    <enumeration value="N79"/>
+    <enumeration value="N80"/>
+    <enumeration value="N81"/>
+    <enumeration value="N82"/>
+    <enumeration value="N83"/>
+    <enumeration value="N84"/>
+    <enumeration value="N85"/>
+    <enumeration value="N86"/>
+    <enumeration value="N87"/>
+    <enumeration value="N88"/>
+    <enumeration value="N89"/>
+    <enumeration value="N90"/>
+    <enumeration value="N91"/>
+    <enumeration value="N92"/>
+    <enumeration value="N93"/>
+    <enumeration value="N94"/>
+    <enumeration value="N95"/>
+    <enumeration value="N96"/>
+    <enumeration value="N97"/>
+    <enumeration value="N98"/>
+    <enumeration value="N99"/>
+    <enumeration value="NA"/>
+    <enumeration value="NAR"/>
+    <enumeration value="NCL"/>
+    <enumeration value="NEW"/>
+    <enumeration value="NF"/>
+    <enumeration value="NIL"/>
+    <enumeration value="NIU"/>
+    <enumeration value="NL"/>
+    <enumeration value="NM3"/>
+    <enumeration value="NMI"/>
+    <enumeration value="NMP"/>
+    <enumeration value="NPT"/>
+    <enumeration value="NT"/>
+    <enumeration value="NTU"/>
+    <enumeration value="NU"/>
+    <enumeration value="NX"/>
+    <enumeration value="OA"/>
+    <enumeration value="ODE"/>
+    <enumeration value="ODG"/>
+    <enumeration value="ODK"/>
+    <enumeration value="ODM"/>
+    <enumeration value="OHM"/>
+    <enumeration value="ON"/>
+    <enumeration value="ONZ"/>
+    <enumeration value="OPM"/>
+    <enumeration value="OT"/>
+    <enumeration value="OZA"/>
+    <enumeration value="OZI"/>
+    <enumeration value="P1"/>
+    <enumeration value="P10"/>
+    <enumeration value="P11"/>
+    <enumeration value="P12"/>
+    <enumeration value="P13"/>
+    <enumeration value="P14"/>
+    <enumeration value="P15"/>
+    <enumeration value="P16"/>
+    <enumeration value="P17"/>
+    <enumeration value="P18"/>
+    <enumeration value="P19"/>
+    <enumeration value="P2"/>
+    <enumeration value="P20"/>
+    <enumeration value="P21"/>
+    <enumeration value="P22"/>
+    <enumeration value="P23"/>
+    <enumeration value="P24"/>
+    <enumeration value="P25"/>
+    <enumeration value="P26"/>
+    <enumeration value="P27"/>
+    <enumeration value="P28"/>
+    <enumeration value="P29"/>
+    <enumeration value="P30"/>
+    <enumeration value="P31"/>
+    <enumeration value="P32"/>
+    <enumeration value="P33"/>
+    <enumeration value="P34"/>
+    <enumeration value="P35"/>
+    <enumeration value="P36"/>
+    <enumeration value="P37"/>
+    <enumeration value="P38"/>
+    <enumeration value="P39"/>
+    <enumeration value="P40"/>
+    <enumeration value="P41"/>
+    <enumeration value="P42"/>
+    <enumeration value="P43"/>
+    <enumeration value="P44"/>
+    <enumeration value="P45"/>
+    <enumeration value="P46"/>
+    <enumeration value="P47"/>
+    <enumeration value="P48"/>
+    <enumeration value="P49"/>
+    <enumeration value="P5"/>
+    <enumeration value="P50"/>
+    <enumeration value="P51"/>
+    <enumeration value="P52"/>
+    <enumeration value="P53"/>
+    <enumeration value="P54"/>
+    <enumeration value="P55"/>
+    <enumeration value="P56"/>
+    <enumeration value="P57"/>
+    <enumeration value="P58"/>
+    <enumeration value="P59"/>
+    <enumeration value="P60"/>
+    <enumeration value="P61"/>
+    <enumeration value="P62"/>
+    <enumeration value="P63"/>
+    <enumeration value="P64"/>
+    <enumeration value="P65"/>
+    <enumeration value="P66"/>
+    <enumeration value="P67"/>
+    <enumeration value="P68"/>
+    <enumeration value="P69"/>
+    <enumeration value="P70"/>
+    <enumeration value="P71"/>
+    <enumeration value="P72"/>
+    <enumeration value="P73"/>
+    <enumeration value="P74"/>
+    <enumeration value="P75"/>
+    <enumeration value="P76"/>
+    <enumeration value="P77"/>
+    <enumeration value="P78"/>
+    <enumeration value="P79"/>
+    <enumeration value="P80"/>
+    <enumeration value="P81"/>
+    <enumeration value="P82"/>
+    <enumeration value="P83"/>
+    <enumeration value="P84"/>
+    <enumeration value="P85"/>
+    <enumeration value="P86"/>
+    <enumeration value="P87"/>
+    <enumeration value="P88"/>
+    <enumeration value="P89"/>
+    <enumeration value="P90"/>
+    <enumeration value="P91"/>
+    <enumeration value="P92"/>
+    <enumeration value="P93"/>
+    <enumeration value="P94"/>
+    <enumeration value="P95"/>
+    <enumeration value="P96"/>
+    <enumeration value="P97"/>
+    <enumeration value="P98"/>
+    <enumeration value="P99"/>
+    <enumeration value="PAL"/>
+    <enumeration value="PD"/>
+    <enumeration value="PFL"/>
+    <enumeration value="PGL"/>
+    <enumeration value="PI"/>
+    <enumeration value="PLA"/>
+    <enumeration value="PO"/>
+    <enumeration value="PQ"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PTD"/>
+    <enumeration value="PTI"/>
+    <enumeration value="PTL"/>
+    <enumeration value="PTN"/>
+    <enumeration value="Q10"/>
+    <enumeration value="Q11"/>
+    <enumeration value="Q12"/>
+    <enumeration value="Q13"/>
+    <enumeration value="Q14"/>
+    <enumeration value="Q15"/>
+    <enumeration value="Q16"/>
+    <enumeration value="Q17"/>
+    <enumeration value="Q18"/>
+    <enumeration value="Q19"/>
+    <enumeration value="Q20"/>
+    <enumeration value="Q21"/>
+    <enumeration value="Q22"/>
+    <enumeration value="Q23"/>
+    <enumeration value="Q24"/>
+    <enumeration value="Q25"/>
+    <enumeration value="Q26"/>
+    <enumeration value="Q27"/>
+    <enumeration value="Q28"/>
+    <enumeration value="Q29"/>
+    <enumeration value="Q3"/>
+    <enumeration value="Q30"/>
+    <enumeration value="Q31"/>
+    <enumeration value="Q32"/>
+    <enumeration value="Q33"/>
+    <enumeration value="Q34"/>
+    <enumeration value="Q35"/>
+    <enumeration value="Q36"/>
+    <enumeration value="Q37"/>
+    <enumeration value="Q38"/>
+    <enumeration value="Q39"/>
+    <enumeration value="Q40"/>
+    <enumeration value="Q41"/>
+    <enumeration value="Q42"/>
+    <enumeration value="QA"/>
+    <enumeration value="QAN"/>
+    <enumeration value="QB"/>
+    <enumeration value="QR"/>
+    <enumeration value="QTD"/>
+    <enumeration value="QTI"/>
+    <enumeration value="QTL"/>
+    <enumeration value="QTR"/>
+    <enumeration value="R1"/>
+    <enumeration value="R9"/>
+    <enumeration value="RH"/>
+    <enumeration value="RM"/>
+    <enumeration value="ROM"/>
+    <enumeration value="RP"/>
+    <enumeration value="RPM"/>
+    <enumeration value="RPS"/>
+    <enumeration value="RT"/>
+    <enumeration value="S3"/>
+    <enumeration value="S4"/>
+    <enumeration value="SAN"/>
+    <enumeration value="SCO"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SEC"/>
+    <enumeration value="SET"/>
+    <enumeration value="SG"/>
+    <enumeration value="SIE"/>
+    <enumeration value="SM3"/>
+    <enumeration value="SMI"/>
+    <enumeration value="SQ"/>
+    <enumeration value="SQR"/>
+    <enumeration value="SR"/>
+    <enumeration value="STC"/>
+    <enumeration value="STI"/>
+    <enumeration value="STK"/>
+    <enumeration value="STL"/>
+    <enumeration value="STN"/>
+    <enumeration value="STW"/>
+    <enumeration value="SW"/>
+    <enumeration value="SX"/>
+    <enumeration value="SYR"/>
+    <enumeration value="T0"/>
+    <enumeration value="T3"/>
+    <enumeration value="TAH"/>
+    <enumeration value="TAN"/>
+    <enumeration value="TI"/>
+    <enumeration value="TIC"/>
+    <enumeration value="TIP"/>
+    <enumeration value="TKM"/>
+    <enumeration value="TMS"/>
+    <enumeration value="TNE"/>
+    <enumeration value="TP"/>
+    <enumeration value="TPI"/>
+    <enumeration value="TPR"/>
+    <enumeration value="TQD"/>
+    <enumeration value="TRL"/>
+    <enumeration value="TST"/>
+    <enumeration value="TTS"/>
+    <enumeration value="U1"/>
+    <enumeration value="U2"/>
+    <enumeration value="UB"/>
+    <enumeration value="UC"/>
+    <enumeration value="VA"/>
+    <enumeration value="VLT"/>
+    <enumeration value="VP"/>
+    <enumeration value="W2"/>
+    <enumeration value="WA"/>
+    <enumeration value="WB"/>
+    <enumeration value="WCD"/>
+    <enumeration value="WE"/>
+    <enumeration value="WEB"/>
+    <enumeration value="WEE"/>
+    <enumeration value="WG"/>
+    <enumeration value="WHR"/>
+    <enumeration value="WM"/>
+    <enumeration value="WSD"/>
+    <enumeration value="WTT"/>
+    <enumeration value="X1"/>
+    <enumeration value="X1A"/>
+    <enumeration value="X1B"/>
+    <enumeration value="X1D"/>
+    <enumeration value="X1F"/>
+    <enumeration value="X1G"/>
+    <enumeration value="X1W"/>
+    <enumeration value="X2C"/>
+    <enumeration value="X3A"/>
+    <enumeration value="X3H"/>
+    <enumeration value="X43"/>
+    <enumeration value="X44"/>
+    <enumeration value="X4A"/>
+    <enumeration value="X4B"/>
+    <enumeration value="X4C"/>
+    <enumeration value="X4D"/>
+    <enumeration value="X4F"/>
+    <enumeration value="X4G"/>
+    <enumeration value="X4H"/>
+    <enumeration value="X5H"/>
+    <enumeration value="X5L"/>
+    <enumeration value="X5M"/>
+    <enumeration value="X6H"/>
+    <enumeration value="X6P"/>
+    <enumeration value="X7A"/>
+    <enumeration value="X7B"/>
+    <enumeration value="X8A"/>
+    <enumeration value="X8B"/>
+    <enumeration value="X8C"/>
+    <enumeration value="XAA"/>
+    <enumeration value="XAB"/>
+    <enumeration value="XAC"/>
+    <enumeration value="XAD"/>
+    <enumeration value="XAE"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAH"/>
+    <enumeration value="XAI"/>
+    <enumeration value="XAJ"/>
+    <enumeration value="XAL"/>
+    <enumeration value="XAM"/>
+    <enumeration value="XAP"/>
+    <enumeration value="XAT"/>
+    <enumeration value="XAV"/>
+    <enumeration value="XB4"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XBE"/>
+    <enumeration value="XBF"/>
+    <enumeration value="XBG"/>
+    <enumeration value="XBH"/>
+    <enumeration value="XBI"/>
+    <enumeration value="XBJ"/>
+    <enumeration value="XBK"/>
+    <enumeration value="XBL"/>
+    <enumeration value="XBM"/>
+    <enumeration value="XBN"/>
+    <enumeration value="XBO"/>
+    <enumeration value="XBP"/>
+    <enumeration value="XBQ"/>
+    <enumeration value="XBR"/>
+    <enumeration value="XBS"/>
+    <enumeration value="XBT"/>
+    <enumeration value="XBU"/>
+    <enumeration value="XBV"/>
+    <enumeration value="XBW"/>
+    <enumeration value="XBX"/>
+    <enumeration value="XBY"/>
+    <enumeration value="XBZ"/>
+    <enumeration value="XCA"/>
+    <enumeration value="XCB"/>
+    <enumeration value="XCC"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XCE"/>
+    <enumeration value="XCF"/>
+    <enumeration value="XCG"/>
+    <enumeration value="XCH"/>
+    <enumeration value="XCI"/>
+    <enumeration value="XCJ"/>
+    <enumeration value="XCK"/>
+    <enumeration value="XCL"/>
+    <enumeration value="XCM"/>
+    <enumeration value="XCN"/>
+    <enumeration value="XCO"/>
+    <enumeration value="XCP"/>
+    <enumeration value="XCQ"/>
+    <enumeration value="XCR"/>
+    <enumeration value="XCS"/>
+    <enumeration value="XCT"/>
+    <enumeration value="XCU"/>
+    <enumeration value="XCV"/>
+    <enumeration value="XCW"/>
+    <enumeration value="XCX"/>
+    <enumeration value="XCY"/>
+    <enumeration value="XCZ"/>
+    <enumeration value="XDA"/>
+    <enumeration value="XDB"/>
+    <enumeration value="XDC"/>
+    <enumeration value="XDG"/>
+    <enumeration value="XDH"/>
+    <enumeration value="XDI"/>
+    <enumeration value="XDJ"/>
+    <enumeration value="XDK"/>
+    <enumeration value="XDL"/>
+    <enumeration value="XDM"/>
+    <enumeration value="XDN"/>
+    <enumeration value="XDP"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XDS"/>
+    <enumeration value="XDT"/>
+    <enumeration value="XDU"/>
+    <enumeration value="XDV"/>
+    <enumeration value="XDW"/>
+    <enumeration value="XDX"/>
+    <enumeration value="XDY"/>
+    <enumeration value="XEC"/>
+    <enumeration value="XED"/>
+    <enumeration value="XEE"/>
+    <enumeration value="XEF"/>
+    <enumeration value="XEG"/>
+    <enumeration value="XEH"/>
+    <enumeration value="XEI"/>
+    <enumeration value="XEN"/>
+    <enumeration value="XFB"/>
+    <enumeration value="XFC"/>
+    <enumeration value="XFD"/>
+    <enumeration value="XFE"/>
+    <enumeration value="XFI"/>
+    <enumeration value="XFL"/>
+    <enumeration value="XFO"/>
+    <enumeration value="XFP"/>
+    <enumeration value="XFR"/>
+    <enumeration value="XFT"/>
+    <enumeration value="XFW"/>
+    <enumeration value="XFX"/>
+    <enumeration value="XGB"/>
+    <enumeration value="XGI"/>
+    <enumeration value="XGL"/>
+    <enumeration value="XGR"/>
+    <enumeration value="XGU"/>
+    <enumeration value="XGY"/>
+    <enumeration value="XGZ"/>
+    <enumeration value="XHA"/>
+    <enumeration value="XHB"/>
+    <enumeration value="XHC"/>
+    <enumeration value="XHG"/>
+    <enumeration value="XHN"/>
+    <enumeration value="XHR"/>
+    <enumeration value="XIA"/>
+    <enumeration value="XIB"/>
+    <enumeration value="XIC"/>
+    <enumeration value="XID"/>
+    <enumeration value="XIE"/>
+    <enumeration value="XIF"/>
+    <enumeration value="XIG"/>
+    <enumeration value="XIH"/>
+    <enumeration value="XIK"/>
+    <enumeration value="XIL"/>
+    <enumeration value="XIN"/>
+    <enumeration value="XIZ"/>
+    <enumeration value="XJB"/>
+    <enumeration value="XJC"/>
+    <enumeration value="XJG"/>
+    <enumeration value="XJR"/>
+    <enumeration value="XJT"/>
+    <enumeration value="XJY"/>
+    <enumeration value="XKG"/>
+    <enumeration value="XKI"/>
+    <enumeration value="XLE"/>
+    <enumeration value="XLG"/>
+    <enumeration value="XLT"/>
+    <enumeration value="XLU"/>
+    <enumeration value="XLV"/>
+    <enumeration value="XLZ"/>
+    <enumeration value="XMA"/>
+    <enumeration value="XMB"/>
+    <enumeration value="XMC"/>
+    <enumeration value="XME"/>
+    <enumeration value="XMR"/>
+    <enumeration value="XMS"/>
+    <enumeration value="XMT"/>
+    <enumeration value="XMW"/>
+    <enumeration value="XMX"/>
+    <enumeration value="XNA"/>
+    <enumeration value="XNE"/>
+    <enumeration value="XNF"/>
+    <enumeration value="XNG"/>
+    <enumeration value="XNS"/>
+    <enumeration value="XNT"/>
+    <enumeration value="XNU"/>
+    <enumeration value="XNV"/>
+    <enumeration value="XO1"/>
+    <enumeration value="XO2"/>
+    <enumeration value="XO3"/>
+    <enumeration value="XO4"/>
+    <enumeration value="XO5"/>
+    <enumeration value="XO6"/>
+    <enumeration value="XO7"/>
+    <enumeration value="XO8"/>
+    <enumeration value="XO9"/>
+    <enumeration value="XOA"/>
+    <enumeration value="XOB"/>
+    <enumeration value="XOC"/>
+    <enumeration value="XOD"/>
+    <enumeration value="XOE"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XOG"/>
+    <enumeration value="XOH"/>
+    <enumeration value="XOI"/>
+    <enumeration value="XOJ"/>
+    <enumeration value="XOK"/>
+    <enumeration value="XOL"/>
+    <enumeration value="XOM"/>
+    <enumeration value="XON"/>
+    <enumeration value="XOP"/>
+    <enumeration value="XOQ"/>
+    <enumeration value="XOR"/>
+    <enumeration value="XOS"/>
+    <enumeration value="XOT"/>
+    <enumeration value="XOU"/>
+    <enumeration value="XOV"/>
+    <enumeration value="XOW"/>
+    <enumeration value="XOX"/>
+    <enumeration value="XOY"/>
+    <enumeration value="XOZ"/>
+    <enumeration value="XP1"/>
+    <enumeration value="XP2"/>
+    <enumeration value="XP3"/>
+    <enumeration value="XP4"/>
+    <enumeration value="XPA"/>
+    <enumeration value="XPB"/>
+    <enumeration value="XPC"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPE"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPG"/>
+    <enumeration value="XPH"/>
+    <enumeration value="XPI"/>
+    <enumeration value="XPJ"/>
+    <enumeration value="XPK"/>
+    <enumeration value="XPL"/>
+    <enumeration value="XPN"/>
+    <enumeration value="XPO"/>
+    <enumeration value="XPP"/>
+    <enumeration value="XPR"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XPU"/>
+    <enumeration value="XPV"/>
+    <enumeration value="XPX"/>
+    <enumeration value="XPY"/>
+    <enumeration value="XPZ"/>
+    <enumeration value="XQA"/>
+    <enumeration value="XQB"/>
+    <enumeration value="XQC"/>
+    <enumeration value="XQD"/>
+    <enumeration value="XQF"/>
+    <enumeration value="XQG"/>
+    <enumeration value="XQH"/>
+    <enumeration value="XQJ"/>
+    <enumeration value="XQK"/>
+    <enumeration value="XQL"/>
+    <enumeration value="XQM"/>
+    <enumeration value="XQN"/>
+    <enumeration value="XQP"/>
+    <enumeration value="XQQ"/>
+    <enumeration value="XQR"/>
+    <enumeration value="XQS"/>
+    <enumeration value="XRD"/>
+    <enumeration value="XRG"/>
+    <enumeration value="XRJ"/>
+    <enumeration value="XRK"/>
+    <enumeration value="XRL"/>
+    <enumeration value="XRO"/>
+    <enumeration value="XRT"/>
+    <enumeration value="XRZ"/>
+    <enumeration value="XSA"/>
+    <enumeration value="XSB"/>
+    <enumeration value="XSC"/>
+    <enumeration value="XSD"/>
+    <enumeration value="XSE"/>
+    <enumeration value="XSH"/>
+    <enumeration value="XSI"/>
+    <enumeration value="XSK"/>
+    <enumeration value="XSL"/>
+    <enumeration value="XSM"/>
+    <enumeration value="XSO"/>
+    <enumeration value="XSP"/>
+    <enumeration value="XSS"/>
+    <enumeration value="XST"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XSV"/>
+    <enumeration value="XSW"/>
+    <enumeration value="XSX"/>
+    <enumeration value="XSY"/>
+    <enumeration value="XSZ"/>
+    <enumeration value="XT1"/>
+    <enumeration value="XTB"/>
+    <enumeration value="XTC"/>
+    <enumeration value="XTD"/>
+    <enumeration value="XTE"/>
+    <enumeration value="XTG"/>
+    <enumeration value="XTI"/>
+    <enumeration value="XTK"/>
+    <enumeration value="XTL"/>
+    <enumeration value="XTN"/>
+    <enumeration value="XTO"/>
+    <enumeration value="XTR"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XTT"/>
+    <enumeration value="XTU"/>
+    <enumeration value="XTV"/>
+    <enumeration value="XTW"/>
+    <enumeration value="XTY"/>
+    <enumeration value="XTZ"/>
+    <enumeration value="XUC"/>
+    <enumeration value="XUN"/>
+    <enumeration value="XVA"/>
+    <enumeration value="XVG"/>
+    <enumeration value="XVI"/>
+    <enumeration value="XVK"/>
+    <enumeration value="XVL"/>
+    <enumeration value="XVN"/>
+    <enumeration value="XVO"/>
+    <enumeration value="XVP"/>
+    <enumeration value="XVQ"/>
+    <enumeration value="XVR"/>
+    <enumeration value="XVS"/>
+    <enumeration value="XVY"/>
+    <enumeration value="XWA"/>
+    <enumeration value="XWB"/>
+    <enumeration value="XWC"/>
+    <enumeration value="XWD"/>
+    <enumeration value="XWF"/>
+    <enumeration value="XWG"/>
+    <enumeration value="XWH"/>
+    <enumeration value="XWJ"/>
+    <enumeration value="XWK"/>
+    <enumeration value="XWL"/>
+    <enumeration value="XWM"/>
+    <enumeration value="XWN"/>
+    <enumeration value="XWP"/>
+    <enumeration value="XWQ"/>
+    <enumeration value="XWR"/>
+    <enumeration value="XWS"/>
+    <enumeration value="XWT"/>
+    <enumeration value="XWU"/>
+    <enumeration value="XWV"/>
+    <enumeration value="XWW"/>
+    <enumeration value="XWX"/>
+    <enumeration value="XWY"/>
+    <enumeration value="XWZ"/>
+    <enumeration value="XXA"/>
+    <enumeration value="XXB"/>
+    <enumeration value="XXC"/>
+    <enumeration value="XXD"/>
+    <enumeration value="XXF"/>
+    <enumeration value="XXG"/>
+    <enumeration value="XXH"/>
+    <enumeration value="XXJ"/>
+    <enumeration value="XXK"/>
+    <enumeration value="XYA"/>
+    <enumeration value="XYB"/>
+    <enumeration value="XYC"/>
+    <enumeration value="XYD"/>
+    <enumeration value="XYF"/>
+    <enumeration value="XYG"/>
+    <enumeration value="XYH"/>
+    <enumeration value="XYJ"/>
+    <enumeration value="XYK"/>
+    <enumeration value="XYL"/>
+    <enumeration value="XYM"/>
+    <enumeration value="XYN"/>
+    <enumeration value="XYP"/>
+    <enumeration value="XYQ"/>
+    <enumeration value="XYR"/>
+    <enumeration value="XYS"/>
+    <enumeration value="XYT"/>
+    <enumeration value="XYV"/>
+    <enumeration value="XYW"/>
+    <enumeration value="XYX"/>
+    <enumeration value="XYY"/>
+    <enumeration value="XYZ"/>
+    <enumeration value="XZA"/>
+    <enumeration value="XZB"/>
+    <enumeration value="XZC"/>
+    <enumeration value="XZD"/>
+    <enumeration value="XZF"/>
+    <enumeration value="XZG"/>
+    <enumeration value="XZH"/>
+    <enumeration value="XZJ"/>
+    <enumeration value="XZK"/>
+    <enumeration value="XZL"/>
+    <enumeration value="XZM"/>
+    <enumeration value="XZN"/>
+    <enumeration value="XZP"/>
+    <enumeration value="XZQ"/>
+    <enumeration value="XZR"/>
+    <enumeration value="XZS"/>
+    <enumeration value="XZT"/>
+    <enumeration value="XZU"/>
+    <enumeration value="XZV"/>
+    <enumeration value="XZW"/>
+    <enumeration value="XZX"/>
+    <enumeration value="XZY"/>
+    <enumeration value="XZZ"/>
+    <enumeration value="YDK"/>
+    <enumeration value="YDQ"/>
+    <enumeration value="YRD"/>
+    <enumeration value="Z11"/>
+    <enumeration value="Z9"/>
+    <enumeration value="ZP"/>
+    <enumeration value="ZZ"/>
+  </cl>
+  <cl id="7">
+    <enumeration value="VAT"/>
+  </cl>
+  <cl id="8">
+    <enumeration value="AE"/>
+    <enumeration value="E"/>
+    <enumeration value="G"/>
+    <enumeration value="K"/>
+    <enumeration value="L"/>
+    <enumeration value="M"/>
+    <enumeration value="O"/>
+    <enumeration value="S"/>
+    <enumeration value="Z"/>
+  </cl>
+  <cl id="9">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="10">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="11">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="12">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="13">
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AI"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AO"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CA"/>
+    <enumeration value="CC"/>
+    <enumeration value="CD"/>
+    <enumeration value="CF"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CI"/>
+    <enumeration value="CK"/>
+    <enumeration value="CL"/>
+    <enumeration value="CM"/>
+    <enumeration value="CN"/>
+    <enumeration value="CO"/>
+    <enumeration value="CR"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CX"/>
+    <enumeration value="CY"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DE"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DK"/>
+    <enumeration value="DM"/>
+    <enumeration value="DO"/>
+    <enumeration value="DZ"/>
+    <enumeration value="EC"/>
+    <enumeration value="EE"/>
+    <enumeration value="EG"/>
+    <enumeration value="EH"/>
+    <enumeration value="ER"/>
+    <enumeration value="ES"/>
+    <enumeration value="ET"/>
+    <enumeration value="FI"/>
+    <enumeration value="FJ"/>
+    <enumeration value="FK"/>
+    <enumeration value="FM"/>
+    <enumeration value="FO"/>
+    <enumeration value="FR"/>
+    <enumeration value="GA"/>
+    <enumeration value="GB"/>
+    <enumeration value="GD"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GG"/>
+    <enumeration value="GH"/>
+    <enumeration value="GI"/>
+    <enumeration value="GL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GN"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GR"/>
+    <enumeration value="GS"/>
+    <enumeration value="GT"/>
+    <enumeration value="GU"/>
+    <enumeration value="GW"/>
+    <enumeration value="GY"/>
+    <enumeration value="HK"/>
+    <enumeration value="HM"/>
+    <enumeration value="HN"/>
+    <enumeration value="HR"/>
+    <enumeration value="HT"/>
+    <enumeration value="HU"/>
+    <enumeration value="ID"/>
+    <enumeration value="IE"/>
+    <enumeration value="IL"/>
+    <enumeration value="IM"/>
+    <enumeration value="IN"/>
+    <enumeration value="IO"/>
+    <enumeration value="IQ"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="JE"/>
+    <enumeration value="JM"/>
+    <enumeration value="JO"/>
+    <enumeration value="JP"/>
+    <enumeration value="KE"/>
+    <enumeration value="KG"/>
+    <enumeration value="KH"/>
+    <enumeration value="KI"/>
+    <enumeration value="KM"/>
+    <enumeration value="KN"/>
+    <enumeration value="KP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KW"/>
+    <enumeration value="KY"/>
+    <enumeration value="KZ"/>
+    <enumeration value="LA"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LK"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LT"/>
+    <enumeration value="LU"/>
+    <enumeration value="LV"/>
+    <enumeration value="LY"/>
+    <enumeration value="MA"/>
+    <enumeration value="MC"/>
+    <enumeration value="MD"/>
+    <enumeration value="ME"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MK"/>
+    <enumeration value="ML"/>
+    <enumeration value="MM"/>
+    <enumeration value="MN"/>
+    <enumeration value="MO"/>
+    <enumeration value="MP"/>
+    <enumeration value="MQ"/>
+    <enumeration value="MR"/>
+    <enumeration value="MS"/>
+    <enumeration value="MT"/>
+    <enumeration value="MU"/>
+    <enumeration value="MV"/>
+    <enumeration value="MW"/>
+    <enumeration value="MX"/>
+    <enumeration value="MY"/>
+    <enumeration value="MZ"/>
+    <enumeration value="NA"/>
+    <enumeration value="NC"/>
+    <enumeration value="NE"/>
+    <enumeration value="NF"/>
+    <enumeration value="NG"/>
+    <enumeration value="NI"/>
+    <enumeration value="NL"/>
+    <enumeration value="NO"/>
+    <enumeration value="NP"/>
+    <enumeration value="NR"/>
+    <enumeration value="NU"/>
+    <enumeration value="NZ"/>
+    <enumeration value="OM"/>
+    <enumeration value="PA"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PG"/>
+    <enumeration value="PH"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="PM"/>
+    <enumeration value="PN"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PT"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="QA"/>
+    <enumeration value="RE"/>
+    <enumeration value="RO"/>
+    <enumeration value="RS"/>
+    <enumeration value="RU"/>
+    <enumeration value="RW"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SC"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SJ"/>
+    <enumeration value="SK"/>
+    <enumeration value="SL"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SO"/>
+    <enumeration value="SR"/>
+    <enumeration value="SS"/>
+    <enumeration value="ST"/>
+    <enumeration value="SV"/>
+    <enumeration value="SX"/>
+    <enumeration value="SY"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TC"/>
+    <enumeration value="TD"/>
+    <enumeration value="TF"/>
+    <enumeration value="TG"/>
+    <enumeration value="TH"/>
+    <enumeration value="TJ"/>
+    <enumeration value="TK"/>
+    <enumeration value="TL"/>
+    <enumeration value="TM"/>
+    <enumeration value="TN"/>
+    <enumeration value="TO"/>
+    <enumeration value="TR"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="TW"/>
+    <enumeration value="TZ"/>
+    <enumeration value="UA"/>
+    <enumeration value="UG"/>
+    <enumeration value="UM"/>
+    <enumeration value="US"/>
+    <enumeration value="UY"/>
+    <enumeration value="UZ"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VE"/>
+    <enumeration value="VG"/>
+    <enumeration value="VI"/>
+    <enumeration value="VN"/>
+    <enumeration value="VU"/>
+    <enumeration value="WF"/>
+    <enumeration value="WS"/>
+    <enumeration value="YE"/>
+    <enumeration value="YT"/>
+    <enumeration value="ZA"/>
+    <enumeration value="ZM"/>
+    <enumeration value="ZW"/>
+    <enumeration value="1A"/>
+    <enumeration value="XI"/>
+  </cl>
+  <cl id="14">
+    <enumeration value="0002"/>
+    <enumeration value="0007"/>
+    <enumeration value="0009"/>
+    <enumeration value="0037"/>
+    <enumeration value="0060"/>
+    <enumeration value="0088"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0106"/>
+    <enumeration value="0130"/>
+    <enumeration value="0135"/>
+    <enumeration value="0142"/>
+    <enumeration value="0147"/>
+    <enumeration value="0151"/>
+    <enumeration value="0170"/>
+    <enumeration value="0177"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0188"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0221"/>
+    <enumeration value="0225"/>
+    <enumeration value="0230"/>
+    <enumeration value="0235"/>
+    <enumeration value="9901"/>
+    <enumeration value="9910"/>
+    <enumeration value="9913"/>
+    <enumeration value="9914"/>
+    <enumeration value="9915"/>
+    <enumeration value="9918"/>
+    <enumeration value="9919"/>
+    <enumeration value="9920"/>
+    <enumeration value="9922"/>
+    <enumeration value="9923"/>
+    <enumeration value="9924"/>
+    <enumeration value="9925"/>
+    <enumeration value="9926"/>
+    <enumeration value="9927"/>
+    <enumeration value="9928"/>
+    <enumeration value="9929"/>
+    <enumeration value="9930"/>
+    <enumeration value="9931"/>
+    <enumeration value="9932"/>
+    <enumeration value="9933"/>
+    <enumeration value="9934"/>
+    <enumeration value="9935"/>
+    <enumeration value="9936"/>
+    <enumeration value="9937"/>
+    <enumeration value="9938"/>
+    <enumeration value="9939"/>
+    <enumeration value="9940"/>
+    <enumeration value="9941"/>
+    <enumeration value="9942"/>
+    <enumeration value="9943"/>
+    <enumeration value="9944"/>
+    <enumeration value="9945"/>
+    <enumeration value="9946"/>
+    <enumeration value="9947"/>
+    <enumeration value="9948"/>
+    <enumeration value="9949"/>
+    <enumeration value="9950"/>
+    <enumeration value="9951"/>
+    <enumeration value="9952"/>
+    <enumeration value="9953"/>
+    <enumeration value="9957"/>
+    <enumeration value="9959"/>
+    <enumeration value="AN"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="AU"/>
+    <enumeration value="EM"/>
+  </cl>
+  <cl id="15">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="16">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="17">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="18">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="12"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="16"/>
+    <enumeration value="17"/>
+    <enumeration value="18"/>
+    <enumeration value="19"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="26"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="29"/>
+    <enumeration value="30"/>
+    <enumeration value="31"/>
+    <enumeration value="32"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="36"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="39"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="43"/>
+    <enumeration value="44"/>
+    <enumeration value="45"/>
+    <enumeration value="46"/>
+    <enumeration value="47"/>
+    <enumeration value="48"/>
+    <enumeration value="49"/>
+    <enumeration value="50"/>
+    <enumeration value="51"/>
+    <enumeration value="52"/>
+    <enumeration value="53"/>
+    <enumeration value="54"/>
+    <enumeration value="55"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="69"/>
+    <enumeration value="70"/>
+    <enumeration value="74"/>
+    <enumeration value="75"/>
+    <enumeration value="76"/>
+    <enumeration value="77"/>
+    <enumeration value="78"/>
+    <enumeration value="91"/>
+    <enumeration value="92"/>
+    <enumeration value="93"/>
+    <enumeration value="94"/>
+    <enumeration value="95"/>
+    <enumeration value="96"/>
+    <enumeration value="97"/>
+    <enumeration value="98"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="19">
+    <enumeration value="VATEX-EU-132"/>
+    <enumeration value="VATEX-EU-132-1A"/>
+    <enumeration value="VATEX-EU-132-1B"/>
+    <enumeration value="VATEX-EU-132-1C"/>
+    <enumeration value="VATEX-EU-132-1D"/>
+    <enumeration value="VATEX-EU-132-1E"/>
+    <enumeration value="VATEX-EU-132-1F"/>
+    <enumeration value="VATEX-EU-132-1G"/>
+    <enumeration value="VATEX-EU-132-1H"/>
+    <enumeration value="VATEX-EU-132-1I"/>
+    <enumeration value="VATEX-EU-132-1J"/>
+    <enumeration value="VATEX-EU-132-1K"/>
+    <enumeration value="VATEX-EU-132-1L"/>
+    <enumeration value="VATEX-EU-132-1M"/>
+    <enumeration value="VATEX-EU-132-1N"/>
+    <enumeration value="VATEX-EU-132-1O"/>
+    <enumeration value="VATEX-EU-132-1P"/>
+    <enumeration value="VATEX-EU-132-1Q"/>
+    <enumeration value="VATEX-EU-143"/>
+    <enumeration value="VATEX-EU-143-1A"/>
+    <enumeration value="VATEX-EU-143-1B"/>
+    <enumeration value="VATEX-EU-143-1C"/>
+    <enumeration value="VATEX-EU-143-1D"/>
+    <enumeration value="VATEX-EU-143-1E"/>
+    <enumeration value="VATEX-EU-143-1F"/>
+    <enumeration value="VATEX-EU-143-1FA"/>
+    <enumeration value="VATEX-EU-143-1G"/>
+    <enumeration value="VATEX-EU-143-1H"/>
+    <enumeration value="VATEX-EU-143-1I"/>
+    <enumeration value="VATEX-EU-143-1J"/>
+    <enumeration value="VATEX-EU-143-1K"/>
+    <enumeration value="VATEX-EU-143-1L"/>
+    <enumeration value="VATEX-EU-144"/>
+    <enumeration value="VATEX-EU-146-1E"/>
+    <enumeration value="VATEX-EU-148"/>
+    <enumeration value="VATEX-EU-148-A"/>
+    <enumeration value="VATEX-EU-148-B"/>
+    <enumeration value="VATEX-EU-148-C"/>
+    <enumeration value="VATEX-EU-148-D"/>
+    <enumeration value="VATEX-EU-148-E"/>
+    <enumeration value="VATEX-EU-148-F"/>
+    <enumeration value="VATEX-EU-148-G"/>
+    <enumeration value="VATEX-EU-151"/>
+    <enumeration value="VATEX-EU-151-1A"/>
+    <enumeration value="VATEX-EU-151-1AA"/>
+    <enumeration value="VATEX-EU-151-1B"/>
+    <enumeration value="VATEX-EU-151-1C"/>
+    <enumeration value="VATEX-EU-151-1D"/>
+    <enumeration value="VATEX-EU-151-1E"/>
+    <enumeration value="VATEX-EU-159"/>
+    <enumeration value="VATEX-EU-309"/>
+    <enumeration value="VATEX-EU-79-C"/>
+    <enumeration value="VATEX-EU-AE"/>
+    <enumeration value="VATEX-EU-D"/>
+    <enumeration value="VATEX-EU-F"/>
+    <enumeration value="VATEX-EU-G"/>
+    <enumeration value="VATEX-EU-I"/>
+    <enumeration value="VATEX-EU-IC"/>
+    <enumeration value="VATEX-EU-J"/>
+    <enumeration value="VATEX-EU-O"/>
+    <enumeration value="VATEX-FR-CNWVAT"/>
+    <enumeration value="VATEX-FR-FRANCHISE"/>
+  </cl>
+  <cl id="20">
+    <enumeration value="5"/>
+    <enumeration value="29"/>
+    <enumeration value="72"/>
+  </cl>
+  <cl id="21">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="22">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="23">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="24">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="25">
+    <enumeration value="102"/>
+  </cl>
+</codedb>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931.xslt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931.xslt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931.xslt	(revision 8542)
@@ -0,0 +1,16743 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsl:stylesheet xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:saxon="http://saxon.sf.net/" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<!--Implementers: please note that overriding process-prolog or process-root is 
+    the preferred method for meta-stylesheets to use where possible. -->
+
+<xsl:param name="archiveDirParameter" />
+  <xsl:param name="archiveNameParameter" />
+  <xsl:param name="fileNameParameter" />
+  <xsl:param name="fileDirParameter" />
+  <xsl:variable name="document-uri">
+    <xsl:value-of select="document-uri(/)" />
+  </xsl:variable>
+
+<!--PHASES-->
+
+
+<!--PROLOG-->
+<xsl:output indent="yes" method="xml" omit-xml-declaration="no" standalone="yes" />
+
+<!--XSD TYPES FOR XSLT2-->
+
+
+<!--KEYS AND FUNCTIONS-->
+
+
+<!--DEFAULT RULES-->
+
+
+<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-select-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="." />
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">
+        <xsl:value-of select="name()" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>*:</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>[namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])" />
+    <xsl:text>[</xsl:text>
+    <xsl:value-of select="1+ $preceding" />
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+  <xsl:template match="@*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">@<xsl:value-of select="name()" />
+</xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@*[local-name()='</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>' and namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-2-->
+<!--This mode can be used to generate prefixed XPath for humans-->
+<xsl:template match="node() | @*" mode="schematron-get-full-path-2">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="preceding-sibling::*[name(.)=name(current())]">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+<!--MODE: SCHEMATRON-FULL-PATH-3-->
+<!--This mode can be used to generate prefixed XPath for humans 
+	(Top-level element has index)-->
+
+<xsl:template match="node() | @*" mode="schematron-get-full-path-3">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="parent::*">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-FROM-PATH -->
+<xsl:template match="/" mode="generate-id-from-path" />
+  <xsl:template match="text()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')" />
+  </xsl:template>
+  <xsl:template match="comment()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')" />
+  </xsl:template>
+  <xsl:template match="processing-instruction()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.@', name())" />
+  </xsl:template>
+  <xsl:template match="*" mode="generate-id-from-path" priority="-0.5">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:text>.</xsl:text>
+    <xsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')" />
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-2 -->
+<xsl:template match="/" mode="generate-id-2">U</xsl:template>
+  <xsl:template match="*" mode="generate-id-2" priority="2">
+    <xsl:text>U</xsl:text>
+    <xsl:number count="*" level="multiple" />
+  </xsl:template>
+  <xsl:template match="node()" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>n</xsl:text>
+    <xsl:number count="node()" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="string-length(local-name(.))" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="translate(name(),':','.')" />
+  </xsl:template>
+<!--Strip characters-->  <xsl:template match="text()" priority="-1" />
+
+<!--SCHEMA SETUP-->
+<xsl:template match="/">
+    <svrl:schematron-output schemaVersion="iso" title="Schema for Factur-X; 1.07.2; EN16931-COMPLIANT (FULLY)">
+      <xsl:comment>
+        <xsl:value-of select="$archiveDirParameter" />  Â 
+		 <xsl:value-of select="$archiveNameParameter" /> Â 
+		 <xsl:value-of select="$fileNameParameter" /> Â 
+		 <xsl:value-of select="$fileDirParameter" />
+      </xsl:comment>
+      <svrl:ns-prefix-in-attribute-values prefix="rsm" uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="qdt" uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="ram" uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="udt" uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M5" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M6" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M7" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M8" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M9" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M10" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M11" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M12" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M13" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M14" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M15" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M16" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M17" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M18" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M19" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M20" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M21" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M22" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M23" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M24" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M25" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M26" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M27" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M28" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M29" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M30" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M31" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M32" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M33" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M34" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M35" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M36" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M37" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M38" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M39" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M40" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M41" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M42" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M43" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M44" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M45" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M46" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M47" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M48" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M49" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M50" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M51" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M52" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M53" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M54" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M55" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M56" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M57" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M58" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M59" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M60" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M61" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M62" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M63" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M64" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M65" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M66" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M67" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M68" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M69" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M70" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M71" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M72" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M73" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M74" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M75" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M76" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M77" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M78" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M79" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M80" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M81" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M82" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M83" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M84" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M85" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M86" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M87" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M88" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M89" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M90" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M91" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M92" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M93" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M94" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M95" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M96" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M97" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M98" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M99" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M100" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M101" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M102" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M103" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M104" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M105" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M106" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M107" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M108" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M109" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M110" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M111" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M112" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M113" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M114" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M115" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M116" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M117" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M118" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M119" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M120" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M121" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M122" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M123" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M124" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M125" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M126" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M127" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M128" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M129" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M130" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M131" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M132" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M133" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M134" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M135" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M136" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M137" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M138" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M139" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M140" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M141" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M142" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M143" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M144" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M145" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M146" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M147" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M148" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M149" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M150" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M151" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M152" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M153" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M154" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M155" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M156" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M157" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M158" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M159" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M160" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M161" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M162" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M163" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M164" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M165" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M166" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M167" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M168" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M169" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M170" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M171" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M172" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M173" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M174" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M175" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M176" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M177" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M178" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M179" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M180" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M181" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M182" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M183" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M184" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M185" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M186" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M187" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M188" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M189" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M190" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M191" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M192" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M193" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M194" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M195" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M196" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M197" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M198" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M199" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M200" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M201" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M202" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M203" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M204" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M205" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M206" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M207" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M208" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M209" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M210" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M211" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M212" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M213" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M214" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M215" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M216" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M217" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M218" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M219" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M220" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M221" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M222" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M223" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M224" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M225" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M226" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M227" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M228" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M229" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M230" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M231" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M232" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M233" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M234" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M235" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M236" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M237" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M238" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M239" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M240" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M241" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M242" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M243" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M244" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M245" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M246" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M247" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M248" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M249" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M250" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M251" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M252" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M253" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M254" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M255" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M256" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M257" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M258" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M259" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M260" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M261" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M262" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M263" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M264" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M265" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M266" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M267" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M268" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M269" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M270" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M271" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M272" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M273" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M274" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M275" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M276" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M277" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M278" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M279" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M280" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M281" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M282" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M283" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M284" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M285" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M286" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M287" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M288" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M289" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M290" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M291" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M292" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M293" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M294" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M295" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M296" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M297" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M298" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M299" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M300" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M301" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M302" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M303" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M304" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M305" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M306" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M307" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M308" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M309" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M310" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M311" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M312" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M313" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M314" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M315" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M316" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M317" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M318" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M319" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M320" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M321" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M322" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M323" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M324" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M325" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M326" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M327" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M328" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M329" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M330" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M331" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M332" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M333" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M334" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M335" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M336" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M337" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M338" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M339" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M340" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M341" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M342" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M343" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M344" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M345" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M346" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M347" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M348" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M349" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M350" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M351" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M352" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M353" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M354" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M355" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M356" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M357" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M358" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M359" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M360" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M361" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M362" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M363" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M364" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M365" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M366" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M367" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M368" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M369" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M370" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M371" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M372" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M373" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M374" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M375" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M376" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M377" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M378" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M379" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M380" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M381" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M382" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M383" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M384" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M385" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M386" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M387" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M388" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M389" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M390" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M391" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M392" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M393" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M394" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M395" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M396" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M397" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M398" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M399" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M400" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M401" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M402" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M403" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M404" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M405" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M406" select="/" />
+    </svrl:schematron-output>
+  </xsl:template>
+
+<!--SCHEMATRON PATTERNS-->
+<svrl:text>Schema for Factur-X; 1.07.2; EN16931-COMPLIANT (FULLY)</svrl:text>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:AdditionalReferencedDocument" mode="M5" priority="1000">
+    <svrl:fired-rule context="//ram:AdditionalReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000280</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-52]-Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M5" priority="-1" />
+  <xsl:template match="@*|node()" mode="M5" priority="-2">
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M6" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:BasisAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:BasisAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000047</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-45]-Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CalculatedAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CalculatedAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000048</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-46]-Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000049</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-47]-Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')">
+          <xsl:attribute name="id">FX-SCH-A-000050</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-48]-Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))">
+          <xsl:attribute name="id">FX-SCH-A-000051</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-03]-Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))">
+          <xsl:attribute name="id">FX-SCH-A-000052</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000053</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-19]-The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000054</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-20]-The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M6" priority="-1" />
+  <xsl:template match="@*|node()" mode="M6" priority="-2">
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" mode="M7" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount))*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000197</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Zero rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000055</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000056</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M7" priority="-1" />
+  <xsl:template match="@*|node()" mode="M7" priority="-2">
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" mode="M8" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )">
+          <xsl:attribute name="id">FX-SCH-A-000057</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000058</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000198</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M8" priority="-1" />
+  <xsl:template match="@*|node()" mode="M8" priority="-2">
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" mode="M9" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000059</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000060</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M9" priority="-1" />
+  <xsl:template match="@*|node()" mode="M9" priority="-2">
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" mode="M10" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000061</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000062</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000063</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000064</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-05]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000065</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-21]-Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000066</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-01]-The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000067</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-02]-The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M10" priority="-1" />
+  <xsl:template match="@*|node()" mode="M10" priority="-2">
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" mode="M11" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000068</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000069</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000070</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-38]-Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000071</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-06]-Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000072</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-22]-Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000073</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-05]-The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000074</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-06]-The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M11" priority="-1" />
+  <xsl:template match="@*|node()" mode="M11" priority="-2">
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableProductCharacteristic" mode="M12" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableProductCharacteristic" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Description) and (ram:Value)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Description) and (ram:Value)">
+          <xsl:attribute name="id">FX-SCH-A-000199</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-54]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M12" priority="-1" />
+  <xsl:template match="@*|node()" mode="M12" priority="-2">
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableTradeSettlementFinancialCard" mode="M13" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableTradeSettlementFinancialCard" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(ram:ID)&lt;=10" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(ram:ID)&lt;=10">
+          <xsl:attribute name="id">FX-SCH-A-000281</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-51]-In accordance with card payments security standards an invoice should never include a full card primary account number (BT-87). At the moment PCI Security Standards Council has defined that the first 6 digits and last 4 digits are the maximum number of digits to be shown.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M13" priority="-1" />
+  <xsl:template match="@*|node()" mode="M13" priority="-2">
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:IncludedSupplyChainTradeLineItem" mode="M14" priority="1000">
+    <svrl:fired-rule context="//ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000200</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-21]-Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)">
+          <xsl:attribute name="id">FX-SCH-A-000201</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)">
+          <xsl:attribute name="id">FX-SCH-A-000202</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-23]-An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000203</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-24]-Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000204</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-25]-Each Invoice line (BG-25) shall contain the Item name (BT-153).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000205</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-26]-Each Invoice line (BG-25) shall contain the Item net price (BT-146).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000206</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-27]-The Item net price (BT-146) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000207</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-28]-The Item gross price (BT-148) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)">
+          <xsl:attribute name="id">FX-SCH-A-000208</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-64]-The Item standard identifier (BT-157) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)">
+          <xsl:attribute name="id">FX-SCH-A-000209</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-65]-The Item classification identifier (BT-158) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000210</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000211</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-23]-The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M14" priority="-1" />
+  <xsl:template match="@*|node()" mode="M14" priority="-2">
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:PayeeTradeParty" mode="M15" priority="1000">
+    <svrl:fired-rule context="//ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))">
+          <xsl:attribute name="id">FX-SCH-A-000075</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-17]-The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M15" priority="-1" />
+  <xsl:template match="@*|node()" mode="M15" priority="-2">
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTaxRepresentativeTradeParty" mode="M16" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name)">
+          <xsl:attribute name="id">FX-SCH-A-000076</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-18]-The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000077</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-19]-The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress/ram:CountryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress/ram:CountryID)">
+          <xsl:attribute name="id">FX-SCH-A-000078</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-20]-The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000079</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-56]-Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M16" priority="-1" />
+  <xsl:template match="@*|node()" mode="M16" priority="-2">
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTradeParty" mode="M17" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000001</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M17" priority="-1" />
+  <xsl:template match="@*|node()" mode="M17" priority="-2">
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" mode="M18" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000212</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-30]-If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000213</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-20]-If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M18" priority="-1" />
+  <xsl:template match="@*|node()" mode="M18" priority="-2">
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" mode="M19" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000214</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-42]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M19" priority="-1" />
+  <xsl:template match="@*|node()" mode="M19" priority="-2">
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" mode="M20" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000215</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-41]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000216</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-07]-Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000217</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-23]-Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000218</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-24]-The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000219</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-25]-The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M20" priority="-1" />
+  <xsl:template match="@*|node()" mode="M20" priority="-2">
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" mode="M21" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000220</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-43]-Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000221</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-44]-Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000222</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-08]-Invoice line charge reason code (BT-145) and Invoice line charge reason (BT-144) shall indicate the same type of charge reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000223</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000224</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-27]-The allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000225</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-28]-The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M21" priority="-1" />
+  <xsl:template match="@*|node()" mode="M21" priority="-2">
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" mode="M22" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000002</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix âELâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M22" priority="-1" />
+  <xsl:template match="@*|node()" mode="M22" priority="-2">
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge" mode="M23" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ChargeIndicator)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ChargeIndicator)">
+          <xsl:attribute name="id">FX-SCH-A-000080</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-66]-Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M23" priority="-1" />
+  <xsl:template match="@*|node()" mode="M23" priority="-2">
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M24" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000081</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000082</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M24" priority="-1" />
+  <xsl:template match="@*|node()" mode="M24" priority="-2">
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M25" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000083</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000084</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M25" priority="-1" />
+  <xsl:template match="@*|node()" mode="M25" priority="-2">
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M26" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000085</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000086</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M26" priority="-1" />
+  <xsl:template match="@*|node()" mode="M26" priority="-2">
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M27" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000087</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000088</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M27" priority="-1" />
+  <xsl:template match="@*|node()" mode="M27" priority="-2">
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M28" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000089</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000090</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M28" priority="-1" />
+  <xsl:template match="@*|node()" mode="M28" priority="-2">
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M29" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000091</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000092</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M29" priority="-1" />
+  <xsl:template match="@*|node()" mode="M29" priority="-2">
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M30" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000093</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000094</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-06]-A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M30" priority="-1" />
+  <xsl:template match="@*|node()" mode="M30" priority="-2">
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M31" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000095</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000096</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M31" priority="-1" />
+  <xsl:template match="@*|node()" mode="M31" priority="-2">
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M32" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000097</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000098</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M32" priority="-1" />
+  <xsl:template match="@*|node()" mode="M32" priority="-2">
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M33" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000099</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000100</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M33" priority="-1" />
+  <xsl:template match="@*|node()" mode="M33" priority="-2">
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M34" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000101</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000102</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M34" priority="-1" />
+  <xsl:template match="@*|node()" mode="M34" priority="-2">
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M35" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000103</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000104</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M35" priority="-1" />
+  <xsl:template match="@*|node()" mode="M35" priority="-2">
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M36" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000105</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000106</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M36" priority="-1" />
+  <xsl:template match="@*|node()" mode="M36" priority="-2">
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M37" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000107</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000108</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M37" priority="-1" />
+  <xsl:template match="@*|node()" mode="M37" priority="-2">
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M38" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000109</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000110</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M38" priority="-1" />
+  <xsl:template match="@*|node()" mode="M38" priority="-2">
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M39" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000111</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000112</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-07]-A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M39" priority="-1" />
+  <xsl:template match="@*|node()" mode="M39" priority="-2">
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M40" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000113</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000114</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M40" priority="-1" />
+  <xsl:template match="@*|node()" mode="M40" priority="-2">
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M41" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000115</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-04]-An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000116</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M41" priority="-1" />
+  <xsl:template match="@*|node()" mode="M41" priority="-2">
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M42" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)">
+          <xsl:attribute name="id">FX-SCH-A-000226</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-10]-Sum of Invoice line net amount (BT-106) = Î£ Invoice line net amount (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000117</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-12]-An Invoice shall have the Sum of Invoice line net amount (BT-106).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TaxBasisTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TaxBasisTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000003</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:GrandTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:GrandTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000004</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:DuePayableAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:DuePayableAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000005</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-15]-An Invoice shall have the Amount due for payment (BT-115).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000118</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-11]-Sum of allowances on document level (BT-107) = Î£ Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= &#xD;&#xA;round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100">
+          <xsl:attribute name="id">FX-SCH-A-000119</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-12]-Sum of charges on document level (BT-108) = Î£ Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100)  and not (ram:ChargeTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100)  and not (ram:AllowanceTotalAmount)) or &#xD;&#xA;    ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount))  *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) and not (ram:AllowanceTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))">
+          <xsl:attribute name="id">FX-SCH-A-000120</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-13]-Invoice total amount without VAT (BT-109) = Î£ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $Currency &#xD;&#xA;                                in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode&#xD;&#xA;                                satisfies (  &#xD;&#xA;                                  count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and  &#xD;&#xA;                                  (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + &#xD;&#xA;                                    (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or&#xD;&#xA;                                (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $Currency in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode satisfies ( count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000121</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000122</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000123</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-09]-The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000124</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-10]-The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000125</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-11]-The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000006</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000007</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000008</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000126</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-15]-The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000127</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-16]-The allowed maximum number of decimals for the Paid amount (BT-113) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000128</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-17]-The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000009</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))">
+          <xsl:attribute name="id">FX-SCH-A-000129</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-53]-If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M42" priority="-1" />
+  <xsl:template match="@*|node()" mode="M42" priority="-2">
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" mode="M43" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000130</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-14]-Invoice total VAT amount (BT-110) = Î£ VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M43" priority="-1" />
+  <xsl:template match="@*|node()" mode="M43" priority="-2">
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans" mode="M44" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TypeCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TypeCode)">
+          <xsl:attribute name="id">FX-SCH-A-000131</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-49]-A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))">
+          <xsl:attribute name="id">FX-SCH-A-000132</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-27]-Either the IBAN or a Proprietary ID (BT-84) shall be used.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M44" priority="-1" />
+  <xsl:template match="@*|node()" mode="M44" priority="-2">
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" mode="M45" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000134</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M45" priority="-1" />
+  <xsl:template match="@*|node()" mode="M45" priority="-2">
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" mode="M46" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000133</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-50]-A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M46" priority="-1" />
+  <xsl:template match="@*|node()" mode="M46" priority="-2">
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M47" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:ApplicableTradeTax" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:ApplicableTradeTax">
+          <xsl:attribute name="id">FX-SCH-A-000135</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M47" priority="-1" />
+  <xsl:template match="@*|node()" mode="M47" priority="-2">
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" mode="M48" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000227</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Reverse charge".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000136</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000137</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M48" priority="-1" />
+  <xsl:template match="@*|node()" mode="M48" priority="-2">
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" mode="M49" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000228</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Exempt from VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Exempt from VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000138</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-09]-The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000139</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M49" priority="-1" />
+  <xsl:template match="@*|node()" mode="M49" priority="-2">
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" mode="M50" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000229</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Export outside the EU".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000140</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000141</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M50" priority="-1" />
+  <xsl:template match="@*|node()" mode="M50" priority="-2">
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" mode="M51" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 > (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/ram:ActualAmount)*10*10)div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000230</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Intra-community supply".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000142</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000143</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000144</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
+          <xsl:attribute name="id">FX-SCH-A-000145</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-12]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M51" priority="-1" />
+  <xsl:template match="@*|node()" mode="M51" priority="-2">
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M52" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000231</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IGIC", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IGIC" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000146</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000147</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M52" priority="-1" />
+  <xsl:template match="@*|node()" mode="M52" priority="-2">
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M53" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
+          <xsl:attribute name="id">FX-SCH-A-000232</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IPSI", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IPSI" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000148</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000149</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M53" priority="-1" />
+  <xsl:template match="@*|node()" mode="M53" priority="-2">
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M54" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount))*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000233</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is " Not subject to VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000150</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000151</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000152</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-11]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000234</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-12]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000153</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-13]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != 'O'])">
+          <xsl:attribute name="id">FX-SCH-A-000154</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-14]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M54" priority="-1" />
+  <xsl:template match="@*|node()" mode="M54" priority="-2">
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" mode="M55" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000235</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000236</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M55" priority="-1" />
+  <xsl:template match="@*|node()" mode="M55" priority="-2">
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" mode="M56" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000237</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000238</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M56" priority="-1" />
+  <xsl:template match="@*|node()" mode="M56" priority="-2">
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" mode="M57" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000239</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000240</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M57" priority="-1" />
+  <xsl:template match="@*|node()" mode="M57" priority="-2">
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" mode="M58" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000241</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000242</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M58" priority="-1" />
+  <xsl:template match="@*|node()" mode="M58" priority="-2">
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M59" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000243</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000244</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M59" priority="-1" />
+  <xsl:template match="@*|node()" mode="M59" priority="-2">
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M60" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000245</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000246</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M60" priority="-1" />
+  <xsl:template match="@*|node()" mode="M60" priority="-2">
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M61" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000247</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-46).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000248</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-05]-An Invoice line (BG-25) where the VAT category code (BT-151) is "Not subject to VAT" shall not contain an Invoiced item VAT rate (BT-152).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M61" priority="-1" />
+  <xsl:template match="@*|node()" mode="M61" priority="-2">
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" mode="M62" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000249</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000250</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M62" priority="-1" />
+  <xsl:template match="@*|node()" mode="M62" priority="-2">
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" mode="M63" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000251</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-02]-An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000252</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Zero rated" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M63" priority="-1" />
+  <xsl:template match="@*|node()" mode="M63" priority="-2">
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice" mode="M64" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:IncludedSupplyChainTradeLineItem" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:IncludedSupplyChainTradeLineItem">
+          <xsl:attribute name="id">FX-SCH-A-000253</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-16]-An Invoice shall have at least one Invoice line (BG-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)">
+          <xsl:attribute name="id">FX-SCH-A-000155</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')">
+          <xsl:attribute name="id">FX-SCH-A-000010</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-01]-An Invoice shall have a Specification identifier (BT-24).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:ID !='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:ID !='')">
+          <xsl:attribute name="id">FX-SCH-A-000011</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-02]-An Invoice shall have an Invoice number (BT-1).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000012</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-03]-An Invoice shall have an Invoice issue date (BT-2).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:TypeCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:TypeCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000013</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-04]-An Invoice shall have an Invoice type code (BT-3).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000014</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-05]-An Invoice shall have an Invoice currency code (BT-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000015</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-06]-An Invoice shall contain the Seller name (BT-27).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000016</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-07]-An Invoice shall contain the Buyer name (BT-44).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000017</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-08]-An Invoice shall contain the Seller postal address (BG-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000018</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000156</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-10]-An Invoice shall contain the Buyer postal address (BG-8).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000157</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-11]-The Buyer postal address shall contain a Buyer country code (BT-55).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000158</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-62]-The Seller electronic address (BT-34) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000159</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-63]-The Buyer electronic address (BT-49) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and     ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))">
+          <xsl:attribute name="id">FX-SCH-A-000254</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))">
+          <xsl:attribute name="id">FX-SCH-A-000255</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))">
+          <xsl:attribute name="id">FX-SCH-A-000256</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âExempt from VATâ shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))">
+          <xsl:attribute name="id">FX-SCH-A-000257</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))">
+          <xsl:attribute name="id">FX-SCH-A-000258</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))">
+          <xsl:attribute name="id">FX-SCH-A-000259</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( &#xD;&#xA;    count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and &#xD;&#xA;    (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or&#xD;&#xA;    exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))">
+          <xsl:attribute name="id">FX-SCH-A-000260</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))">
+          <xsl:attribute name="id">FX-SCH-A-000261</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))">
+          <xsl:attribute name="id">FX-SCH-A-000262</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000263</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-01]-An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is âSplit paymentâ shall be a domestic Italian invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000264</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-02]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âSplit payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or  a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âStandard ratedâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M64" priority="-1" />
+  <xsl:template match="@*|node()" mode="M64" priority="-2">
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" mode="M65" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M65" priority="-1" />
+  <xsl:template match="@*|node()" mode="M65" priority="-2">
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" mode="M66" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M66" priority="-1" />
+  <xsl:template match="@*|node()" mode="M66" priority="-2">
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" mode="M67" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)=1">
+          <xsl:attribute name="id">FX-SCH-A-000160</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SubjectCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SubjectCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000161</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SubjectCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M67" priority="-1" />
+  <xsl:template match="@*|node()" mode="M67" priority="-2">
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" mode="M68" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" />
+    <xsl:variable name="codeValue4" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000162</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SubjectCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M68" priority="-1" />
+  <xsl:template match="@*|node()" mode="M68" priority="-2">
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listID]" mode="M69" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M69" priority="-1" />
+  <xsl:template match="@*|node()" mode="M69" priority="-2">
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" mode="M70" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M70" priority="-1" />
+  <xsl:template match="@*|node()" mode="M70" priority="-2">
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" mode="M71" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M71" priority="-1" />
+  <xsl:template match="@*|node()" mode="M71" priority="-2">
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" mode="M72" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M72" priority="-1" />
+  <xsl:template match="@*|node()" mode="M72" priority="-2">
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" mode="M73" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue2" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M73" priority="-1" />
+  <xsl:template match="@*|node()" mode="M73" priority="-2">
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" mode="M74" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000024</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
+          <xsl:attribute name="id">FX-SCH-A-000025</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M74" priority="-1" />
+  <xsl:template match="@*|node()" mode="M74" priority="-2">
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" mode="M75" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M75" priority="-1" />
+  <xsl:template match="@*|node()" mode="M75" priority="-2">
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M76" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M76" priority="-1" />
+  <xsl:template match="@*|node()" mode="M76" priority="-2">
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" mode="M77" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M77" priority="-1" />
+  <xsl:template match="@*|node()" mode="M77" priority="-2">
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" mode="M78" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" />
+    <xsl:variable name="codeValue1" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M78" priority="-1" />
+  <xsl:template match="@*|node()" mode="M78" priority="-2">
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M79" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M79" priority="-1" />
+  <xsl:template match="@*|node()" mode="M79" priority="-2">
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" mode="M80" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedSupplyChainTradeLineItem)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedSupplyChainTradeLineItem)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000265</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedSupplyChainTradeLineItem' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M80" priority="-1" />
+  <xsl:template match="@*|node()" mode="M80" priority="-2">
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" mode="M81" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SellerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SellerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000027</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SellerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BuyerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BuyerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000028</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BuyerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M81" priority="-1" />
+  <xsl:template match="@*|node()" mode="M81" priority="-2">
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ not(ram:TypeCode=&quot;916&quot;) and  not(ram:TypeCode=&quot;50&quot;) and  not(ram:TypeCode=&quot;130&quot;)]" mode="M82" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ not(ram:TypeCode=&quot;916&quot;) and  not(ram:TypeCode=&quot;50&quot;) and  not(ram:TypeCode=&quot;130&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:AdditionalReferencedDocument[ not(ram:TypeCode="916") and  not(ram:TypeCode="50") and  not(ram:TypeCode="130")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M82" priority="-1" />
+  <xsl:template match="@*|node()" mode="M82" priority="-2">
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]" mode="M83" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M83" priority="-1" />
+  <xsl:template match="@*|node()" mode="M83" priority="-2">
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:AttachmentBinaryObject" mode="M84" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M84" priority="-1" />
+  <xsl:template match="@*|node()" mode="M84" priority="-2">
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime" mode="M85" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M85" priority="-1" />
+  <xsl:template match="@*|node()" mode="M85" priority="-2">
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M86" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M86" priority="-1" />
+  <xsl:template match="@*|node()" mode="M86" priority="-2">
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:LineID" mode="M87" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M87" priority="-1" />
+  <xsl:template match="@*|node()" mode="M87" priority="-2">
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:Name" mode="M88" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M88" priority="-1" />
+  <xsl:template match="@*|node()" mode="M88" priority="-2">
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:ReferenceTypeCode" mode="M89" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue14" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M89" priority="-1" />
+  <xsl:template match="@*|node()" mode="M89" priority="-2">
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:TypeCode" mode="M90" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue23" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M90" priority="-1" />
+  <xsl:template match="@*|node()" mode="M90" priority="-2">
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:URIID" mode="M91" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M91" priority="-1" />
+  <xsl:template match="@*|node()" mode="M91" priority="-2">
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]" mode="M92" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M92" priority="-1" />
+  <xsl:template match="@*|node()" mode="M92" priority="-2">
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:AttachmentBinaryObject" mode="M93" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M93" priority="-1" />
+  <xsl:template match="@*|node()" mode="M93" priority="-2">
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime" mode="M94" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M94" priority="-1" />
+  <xsl:template match="@*|node()" mode="M94" priority="-2">
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M95" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M95" priority="-1" />
+  <xsl:template match="@*|node()" mode="M95" priority="-2">
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:LineID" mode="M96" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M96" priority="-1" />
+  <xsl:template match="@*|node()" mode="M96" priority="-2">
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:Name" mode="M97" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M97" priority="-1" />
+  <xsl:template match="@*|node()" mode="M97" priority="-2">
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:ReferenceTypeCode" mode="M98" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M98" priority="-1" />
+  <xsl:template match="@*|node()" mode="M98" priority="-2">
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:TypeCode" mode="M99" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue22" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M99" priority="-1" />
+  <xsl:template match="@*|node()" mode="M99" priority="-2">
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:URIID" mode="M100" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M100" priority="-1" />
+  <xsl:template match="@*|node()" mode="M100" priority="-2">
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]" mode="M101" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000283</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AttachmentBinaryObject)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AttachmentBinaryObject)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000284</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AttachmentBinaryObject' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M101" priority="-1" />
+  <xsl:template match="@*|node()" mode="M101" priority="-2">
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject" mode="M102" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@mimeCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@mimeCode">
+          <xsl:attribute name="id">FX-SCH-A-000285</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@mimeCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@filename" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@filename">
+          <xsl:attribute name="id">FX-SCH-A-000286</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@filename' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M102" priority="-1" />
+  <xsl:template match="@*|node()" mode="M102" priority="-2">
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject[@mimeCode]" mode="M103" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject[@mimeCode]" />
+    <xsl:variable name="codeValue21" select="@mimeCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000287</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@mimeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M103" priority="-1" />
+  <xsl:template match="@*|node()" mode="M103" priority="-2">
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime" mode="M104" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M104" priority="-1" />
+  <xsl:template match="@*|node()" mode="M104" priority="-2">
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M105" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M105" priority="-1" />
+  <xsl:template match="@*|node()" mode="M105" priority="-2">
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:LineID" mode="M106" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M106" priority="-1" />
+  <xsl:template match="@*|node()" mode="M106" priority="-2">
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:ReferenceTypeCode" mode="M107" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M107" priority="-1" />
+  <xsl:template match="@*|node()" mode="M107" priority="-2">
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:TypeCode" mode="M108" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M108" priority="-1" />
+  <xsl:template match="@*|node()" mode="M108" priority="-2">
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:URIID[@schemeID]" mode="M109" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M109" priority="-1" />
+  <xsl:template match="@*|node()" mode="M109" priority="-2">
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" mode="M110" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M110" priority="-1" />
+  <xsl:template match="@*|node()" mode="M110" priority="-2">
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M111" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M111" priority="-1" />
+  <xsl:template match="@*|node()" mode="M111" priority="-2">
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" mode="M112" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M112" priority="-1" />
+  <xsl:template match="@*|node()" mode="M112" priority="-2">
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M113" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M113" priority="-1" />
+  <xsl:template match="@*|node()" mode="M113" priority="-2">
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID" mode="M114" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M114" priority="-1" />
+  <xsl:template match="@*|node()" mode="M114" priority="-2">
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" mode="M115" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M115" priority="-1" />
+  <xsl:template match="@*|node()" mode="M115" priority="-2">
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M116" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M116" priority="-1" />
+  <xsl:template match="@*|node()" mode="M116" priority="-2">
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" mode="M117" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M117" priority="-1" />
+  <xsl:template match="@*|node()" mode="M117" priority="-2">
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" mode="M118" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M118" priority="-1" />
+  <xsl:template match="@*|node()" mode="M118" priority="-2">
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" mode="M119" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DefinedTradeContact)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DefinedTradeContact)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000288</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DefinedTradeContact' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M119" priority="-1" />
+  <xsl:template match="@*|node()" mode="M119" priority="-2">
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M120" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M120" priority="-1" />
+  <xsl:template match="@*|node()" mode="M120" priority="-2">
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M121" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M121" priority="-1" />
+  <xsl:template match="@*|node()" mode="M121" priority="-2">
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M122" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M122" priority="-1" />
+  <xsl:template match="@*|node()" mode="M122" priority="-2">
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M123" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M123" priority="-1" />
+  <xsl:template match="@*|node()" mode="M123" priority="-2">
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M124" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M124" priority="-1" />
+  <xsl:template match="@*|node()" mode="M124" priority="-2">
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Description" mode="M125" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M125" priority="-1" />
+  <xsl:template match="@*|node()" mode="M125" priority="-2">
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" mode="M126" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M126" priority="-1" />
+  <xsl:template match="@*|node()" mode="M126" priority="-2">
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" mode="M127" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue15" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M127" priority="-1" />
+  <xsl:template match="@*|node()" mode="M127" priority="-2">
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" mode="M128" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M128" priority="-1" />
+  <xsl:template match="@*|node()" mode="M128" priority="-2">
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" mode="M129" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M129" priority="-1" />
+  <xsl:template match="@*|node()" mode="M129" priority="-2">
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M130" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M130" priority="-1" />
+  <xsl:template match="@*|node()" mode="M130" priority="-2">
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M131" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M131" priority="-1" />
+  <xsl:template match="@*|node()" mode="M131" priority="-2">
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M132" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M132" priority="-1" />
+  <xsl:template match="@*|node()" mode="M132" priority="-2">
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M133" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue16" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M133" priority="-1" />
+  <xsl:template match="@*|node()" mode="M133" priority="-2">
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" mode="M134" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M134" priority="-1" />
+  <xsl:template match="@*|node()" mode="M134" priority="-2">
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M135" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M135" priority="-1" />
+  <xsl:template match="@*|node()" mode="M135" priority="-2">
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M136" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue18" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M136" priority="-1" />
+  <xsl:template match="@*|node()" mode="M136" priority="-2">
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" mode="M137" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M137" priority="-1" />
+  <xsl:template match="@*|node()" mode="M137" priority="-2">
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M138" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M138" priority="-1" />
+  <xsl:template match="@*|node()" mode="M138" priority="-2">
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M139" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M139" priority="-1" />
+  <xsl:template match="@*|node()" mode="M139" priority="-2">
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M140" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue17" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M140" priority="-1" />
+  <xsl:template match="@*|node()" mode="M140" priority="-2">
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" mode="M141" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M141" priority="-1" />
+  <xsl:template match="@*|node()" mode="M141" priority="-2">
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" mode="M142" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M142" priority="-1" />
+  <xsl:template match="@*|node()" mode="M142" priority="-2">
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" mode="M143" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M143" priority="-1" />
+  <xsl:template match="@*|node()" mode="M143" priority="-2">
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M144" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M144" priority="-1" />
+  <xsl:template match="@*|node()" mode="M144" priority="-2">
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:LineID" mode="M145" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M145" priority="-1" />
+  <xsl:template match="@*|node()" mode="M145" priority="-2">
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:Name" mode="M146" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M146" priority="-1" />
+  <xsl:template match="@*|node()" mode="M146" priority="-2">
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" mode="M147" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M147" priority="-1" />
+  <xsl:template match="@*|node()" mode="M147" priority="-2">
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" mode="M148" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M148" priority="-1" />
+  <xsl:template match="@*|node()" mode="M148" priority="-2">
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:URIID" mode="M149" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M149" priority="-1" />
+  <xsl:template match="@*|node()" mode="M149" priority="-2">
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument" mode="M150" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M150" priority="-1" />
+  <xsl:template match="@*|node()" mode="M150" priority="-2">
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M151" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M151" priority="-1" />
+  <xsl:template match="@*|node()" mode="M151" priority="-2">
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime" mode="M152" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M152" priority="-1" />
+  <xsl:template match="@*|node()" mode="M152" priority="-2">
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M153" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M153" priority="-1" />
+  <xsl:template match="@*|node()" mode="M153" priority="-2">
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID" mode="M154" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M154" priority="-1" />
+  <xsl:template match="@*|node()" mode="M154" priority="-2">
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" mode="M155" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M155" priority="-1" />
+  <xsl:template match="@*|node()" mode="M155" priority="-2">
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M156" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M156" priority="-1" />
+  <xsl:template match="@*|node()" mode="M156" priority="-2">
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" mode="M157" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M157" priority="-1" />
+  <xsl:template match="@*|node()" mode="M157" priority="-2">
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" mode="M158" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M158" priority="-1" />
+  <xsl:template match="@*|node()" mode="M158" priority="-2">
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" mode="M159" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)=1">
+          <xsl:attribute name="id">FX-SCH-A-000169</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M159" priority="-1" />
+  <xsl:template match="@*|node()" mode="M159" priority="-2">
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact" mode="M160" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DefinedTradeContact' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M160" priority="-1" />
+  <xsl:template match="@*|node()" mode="M160" priority="-2">
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Description" mode="M161" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M161" priority="-1" />
+  <xsl:template match="@*|node()" mode="M161" priority="-2">
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" mode="M162" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:GlobalID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M162" priority="-1" />
+  <xsl:template match="@*|node()" mode="M162" priority="-2">
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" mode="M163" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M163" priority="-1" />
+  <xsl:template match="@*|node()" mode="M163" priority="-2">
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" mode="M164" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M164" priority="-1" />
+  <xsl:template match="@*|node()" mode="M164" priority="-2">
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M165" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M165" priority="-1" />
+  <xsl:template match="@*|node()" mode="M165" priority="-2">
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M166" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M166" priority="-1" />
+  <xsl:template match="@*|node()" mode="M166" priority="-2">
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M167" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M167" priority="-1" />
+  <xsl:template match="@*|node()" mode="M167" priority="-2">
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" mode="M168" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M168" priority="-1" />
+  <xsl:template match="@*|node()" mode="M168" priority="-2">
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" mode="M169" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M169" priority="-1" />
+  <xsl:template match="@*|node()" mode="M169" priority="-2">
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M170" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M170" priority="-1" />
+  <xsl:template match="@*|node()" mode="M170" priority="-2">
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M171" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue19" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M171" priority="-1" />
+  <xsl:template match="@*|node()" mode="M171" priority="-2">
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" mode="M172" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M172" priority="-1" />
+  <xsl:template match="@*|node()" mode="M172" priority="-2">
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" mode="M173" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DefinedTradeContact)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DefinedTradeContact)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000288</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DefinedTradeContact' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000033</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000034</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M173" priority="-1" />
+  <xsl:template match="@*|node()" mode="M173" priority="-2">
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M174" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M174" priority="-1" />
+  <xsl:template match="@*|node()" mode="M174" priority="-2">
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M175" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M175" priority="-1" />
+  <xsl:template match="@*|node()" mode="M175" priority="-2">
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M176" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M176" priority="-1" />
+  <xsl:template match="@*|node()" mode="M176" priority="-2">
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M177" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M177" priority="-1" />
+  <xsl:template match="@*|node()" mode="M177" priority="-2">
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M178" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M178" priority="-1" />
+  <xsl:template match="@*|node()" mode="M178" priority="-2">
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" mode="M179" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M179" priority="-1" />
+  <xsl:template match="@*|node()" mode="M179" priority="-2">
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" mode="M180" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue15" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M180" priority="-1" />
+  <xsl:template match="@*|node()" mode="M180" priority="-2">
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" mode="M181" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M181" priority="-1" />
+  <xsl:template match="@*|node()" mode="M181" priority="-2">
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" mode="M182" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M182" priority="-1" />
+  <xsl:template match="@*|node()" mode="M182" priority="-2">
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M183" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M183" priority="-1" />
+  <xsl:template match="@*|node()" mode="M183" priority="-2">
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M184" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M184" priority="-1" />
+  <xsl:template match="@*|node()" mode="M184" priority="-2">
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M185" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M185" priority="-1" />
+  <xsl:template match="@*|node()" mode="M185" priority="-2">
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M186" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue16" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M186" priority="-1" />
+  <xsl:template match="@*|node()" mode="M186" priority="-2">
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" mode="M187" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and  not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M187" priority="-1" />
+  <xsl:template match="@*|node()" mode="M187" priority="-2">
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" mode="M188" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M188" priority="-1" />
+  <xsl:template match="@*|node()" mode="M188" priority="-2">
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" mode="M189" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M189" priority="-1" />
+  <xsl:template match="@*|node()" mode="M189" priority="-2">
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" mode="M190" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M190" priority="-1" />
+  <xsl:template match="@*|node()" mode="M190" priority="-2">
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" mode="M191" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M191" priority="-1" />
+  <xsl:template match="@*|node()" mode="M191" priority="-2">
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" mode="M192" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M192" priority="-1" />
+  <xsl:template match="@*|node()" mode="M192" priority="-2">
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M193" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M193" priority="-1" />
+  <xsl:template match="@*|node()" mode="M193" priority="-2">
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M194" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M194" priority="-1" />
+  <xsl:template match="@*|node()" mode="M194" priority="-2">
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M195" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue17" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M195" priority="-1" />
+  <xsl:template match="@*|node()" mode="M195" priority="-2">
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID[@schemeID]" mode="M196" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M196" priority="-1" />
+  <xsl:template match="@*|node()" mode="M196" priority="-2">
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" mode="M197" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000170</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-57]-Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M197" priority="-1" />
+  <xsl:template match="@*|node()" mode="M197" priority="-2">
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" mode="M198" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:OccurrenceDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:OccurrenceDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000171</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M198" priority="-1" />
+  <xsl:template match="@*|node()" mode="M198" priority="-2">
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" mode="M199" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M199" priority="-1" />
+  <xsl:template match="@*|node()" mode="M199" priority="-2">
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" mode="M200" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M200" priority="-1" />
+  <xsl:template match="@*|node()" mode="M200" priority="-2">
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" mode="M201" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M201" priority="-1" />
+  <xsl:template match="@*|node()" mode="M201" priority="-2">
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M202" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M202" priority="-1" />
+  <xsl:template match="@*|node()" mode="M202" priority="-2">
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" mode="M203" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M203" priority="-1" />
+  <xsl:template match="@*|node()" mode="M203" priority="-2">
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M204" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M204" priority="-1" />
+  <xsl:template match="@*|node()" mode="M204" priority="-2">
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID" mode="M205" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M205" priority="-1" />
+  <xsl:template match="@*|node()" mode="M205" priority="-2">
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" mode="M206" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M206" priority="-1" />
+  <xsl:template match="@*|node()" mode="M206" priority="-2">
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M207" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M207" priority="-1" />
+  <xsl:template match="@*|node()" mode="M207" priority="-2">
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" mode="M208" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M208" priority="-1" />
+  <xsl:template match="@*|node()" mode="M208" priority="-2">
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" mode="M209" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M209" priority="-1" />
+  <xsl:template match="@*|node()" mode="M209" priority="-2">
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument" mode="M210" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M210" priority="-1" />
+  <xsl:template match="@*|node()" mode="M210" priority="-2">
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M211" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M211" priority="-1" />
+  <xsl:template match="@*|node()" mode="M211" priority="-2">
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime" mode="M212" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M212" priority="-1" />
+  <xsl:template match="@*|node()" mode="M212" priority="-2">
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M213" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M213" priority="-1" />
+  <xsl:template match="@*|node()" mode="M213" priority="-2">
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID" mode="M214" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M214" priority="-1" />
+  <xsl:template match="@*|node()" mode="M214" priority="-2">
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" mode="M215" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M215" priority="-1" />
+  <xsl:template match="@*|node()" mode="M215" priority="-2">
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M216" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M216" priority="-1" />
+  <xsl:template match="@*|node()" mode="M216" priority="-2">
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" mode="M217" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M217" priority="-1" />
+  <xsl:template match="@*|node()" mode="M217" priority="-2">
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" mode="M218" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M218" priority="-1" />
+  <xsl:template match="@*|node()" mode="M218" priority="-2">
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" mode="M219" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M219" priority="-1" />
+  <xsl:template match="@*|node()" mode="M219" priority="-2">
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact" mode="M220" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DefinedTradeContact' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M220" priority="-1" />
+  <xsl:template match="@*|node()" mode="M220" priority="-2">
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Description" mode="M221" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M221" priority="-1" />
+  <xsl:template match="@*|node()" mode="M221" priority="-2">
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" mode="M222" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M222" priority="-1" />
+  <xsl:template match="@*|node()" mode="M222" priority="-2">
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" mode="M223" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue15" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M223" priority="-1" />
+  <xsl:template match="@*|node()" mode="M223" priority="-2">
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" mode="M224" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M224" priority="-1" />
+  <xsl:template match="@*|node()" mode="M224" priority="-2">
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" mode="M225" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M225" priority="-1" />
+  <xsl:template match="@*|node()" mode="M225" priority="-2">
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M226" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M226" priority="-1" />
+  <xsl:template match="@*|node()" mode="M226" priority="-2">
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M227" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M227" priority="-1" />
+  <xsl:template match="@*|node()" mode="M227" priority="-2">
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M228" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M228" priority="-1" />
+  <xsl:template match="@*|node()" mode="M228" priority="-2">
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" mode="M229" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M229" priority="-1" />
+  <xsl:template match="@*|node()" mode="M229" priority="-2">
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M230" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M230" priority="-1" />
+  <xsl:template match="@*|node()" mode="M230" priority="-2">
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" mode="M231" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M231" priority="-1" />
+  <xsl:template match="@*|node()" mode="M231" priority="-2">
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M232" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PaymentReference)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PaymentReference)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000172</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PaymentReference' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceCurrencyCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceCurrencyCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000038</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000173</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradePaymentTerms)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradePaymentTerms)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000174</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradePaymentTerms' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000039</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000175</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M232" priority="-1" />
+  <xsl:template match="@*|node()" mode="M232" priority="-2">
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M233" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BasisAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BasisAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000177</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BasisAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M233" priority="-1" />
+  <xsl:template match="@*|node()" mode="M233" priority="-2">
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" mode="M234" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M234" priority="-1" />
+  <xsl:template match="@*|node()" mode="M234" priority="-2">
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" mode="M235" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M235" priority="-1" />
+  <xsl:template match="@*|node()" mode="M235" priority="-2">
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M236" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue10" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M236" priority="-1" />
+  <xsl:template match="@*|node()" mode="M236" priority="-2">
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M237" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+    <xsl:variable name="codeValue28" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=28]/enumeration[@value=$codeValue28]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=28]/enumeration[@value=$codeValue28]">
+          <xsl:attribute name="id">FX-SCH-A-000180</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:DueDateTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M237" priority="-1" />
+  <xsl:template match="@*|node()" mode="M237" priority="-2">
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M238" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue26" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=26]/enumeration[@value=$codeValue26]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=26]/enumeration[@value=$codeValue26]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M238" priority="-1" />
+  <xsl:template match="@*|node()" mode="M238" priority="-2">
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" mode="M239" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M239" priority="-1" />
+  <xsl:template match="@*|node()" mode="M239" priority="-2">
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" mode="M240" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M240" priority="-1" />
+  <xsl:template match="@*|node()" mode="M240" priority="-2">
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString" mode="M241" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M241" priority="-1" />
+  <xsl:template match="@*|node()" mode="M241" priority="-2">
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format]" mode="M242" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format]" />
+    <xsl:variable name="codeValue27" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=27]/enumeration[@value=$codeValue27]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=27]/enumeration[@value=$codeValue27]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M242" priority="-1" />
+  <xsl:template match="@*|node()" mode="M242" priority="-2">
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M243" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M243" priority="-1" />
+  <xsl:template match="@*|node()" mode="M243" priority="-2">
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M244" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M244" priority="-1" />
+  <xsl:template match="@*|node()" mode="M244" priority="-2">
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M245" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M245" priority="-1" />
+  <xsl:template match="@*|node()" mode="M245" priority="-2">
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M246" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M246" priority="-1" />
+  <xsl:template match="@*|node()" mode="M246" priority="-2">
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M247" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M247" priority="-1" />
+  <xsl:template match="@*|node()" mode="M247" priority="-2">
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" mode="M248" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M248" priority="-1" />
+  <xsl:template match="@*|node()" mode="M248" priority="-2">
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" mode="M249" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000040</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:InvoiceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M249" priority="-1" />
+  <xsl:template match="@*|node()" mode="M249" priority="-2">
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" mode="M250" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000182</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-55]-Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M250" priority="-1" />
+  <xsl:template match="@*|node()" mode="M250" priority="-2">
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" mode="M251" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M251" priority="-1" />
+  <xsl:template match="@*|node()" mode="M251" priority="-2">
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M252" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M252" priority="-1" />
+  <xsl:template match="@*|node()" mode="M252" priority="-2">
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M253" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue33" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=33]/enumeration[@value=$codeValue33]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=33]/enumeration[@value=$codeValue33]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M253" priority="-1" />
+  <xsl:template match="@*|node()" mode="M253" priority="-2">
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M254" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M254" priority="-1" />
+  <xsl:template match="@*|node()" mode="M254" priority="-2">
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID" mode="M255" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M255" priority="-1" />
+  <xsl:template match="@*|node()" mode="M255" priority="-2">
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" mode="M256" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M256" priority="-1" />
+  <xsl:template match="@*|node()" mode="M256" priority="-2">
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" mode="M257" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M257" priority="-1" />
+  <xsl:template match="@*|node()" mode="M257" priority="-2">
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" mode="M258" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M258" priority="-1" />
+  <xsl:template match="@*|node()" mode="M258" priority="-2">
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" mode="M259" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M259" priority="-1" />
+  <xsl:template match="@*|node()" mode="M259" priority="-2">
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" mode="M260" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GlobalID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GlobalID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000164</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GlobalID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M260" priority="-1" />
+  <xsl:template match="@*|node()" mode="M260" priority="-2">
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact" mode="M261" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DefinedTradeContact' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M261" priority="-1" />
+  <xsl:template match="@*|node()" mode="M261" priority="-2">
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Description" mode="M262" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M262" priority="-1" />
+  <xsl:template match="@*|node()" mode="M262" priority="-2">
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" mode="M263" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M263" priority="-1" />
+  <xsl:template match="@*|node()" mode="M263" priority="-2">
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" mode="M264" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue15" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M264" priority="-1" />
+  <xsl:template match="@*|node()" mode="M264" priority="-2">
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" mode="M265" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M265" priority="-1" />
+  <xsl:template match="@*|node()" mode="M265" priority="-2">
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" mode="M266" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M266" priority="-1" />
+  <xsl:template match="@*|node()" mode="M266" priority="-2">
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M267" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue16" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M267" priority="-1" />
+  <xsl:template match="@*|node()" mode="M267" priority="-2">
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" mode="M268" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TradingBusinessName' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M268" priority="-1" />
+  <xsl:template match="@*|node()" mode="M268" priority="-2">
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" mode="M269" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M269" priority="-1" />
+  <xsl:template match="@*|node()" mode="M269" priority="-2">
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" mode="M270" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M270" priority="-1" />
+  <xsl:template match="@*|node()" mode="M270" priority="-2">
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M271" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M271" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M271" priority="-1" />
+  <xsl:template match="@*|node()" mode="M271" priority="-2">
+    <xsl:apply-templates mode="M271" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M272" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M272" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M272" priority="-1" />
+  <xsl:template match="@*|node()" mode="M272" priority="-2">
+    <xsl:apply-templates mode="M272" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M273" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M273" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M273" priority="-1" />
+  <xsl:template match="@*|node()" mode="M273" priority="-2">
+    <xsl:apply-templates mode="M273" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M274" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M274" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M274" priority="-1" />
+  <xsl:template match="@*|node()" mode="M274" priority="-2">
+    <xsl:apply-templates mode="M274" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M275" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M275" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M275" priority="-1" />
+  <xsl:template match="@*|node()" mode="M275" priority="-2">
+    <xsl:apply-templates mode="M275" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M276" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M276" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M276" priority="-1" />
+  <xsl:template match="@*|node()" mode="M276" priority="-2">
+    <xsl:apply-templates mode="M276" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M277" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M277" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M277" priority="-1" />
+  <xsl:template match="@*|node()" mode="M277" priority="-2">
+    <xsl:apply-templates mode="M277" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M278" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M278" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M278" priority="-1" />
+  <xsl:template match="@*|node()" mode="M278" priority="-2">
+    <xsl:apply-templates mode="M278" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M279" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue10" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M279" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M279" priority="-1" />
+  <xsl:template match="@*|node()" mode="M279" priority="-2">
+    <xsl:apply-templates mode="M279" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M280" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M280" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M280" priority="-1" />
+  <xsl:template match="@*|node()" mode="M280" priority="-2">
+    <xsl:apply-templates mode="M280" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M281" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M281" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M281" priority="-1" />
+  <xsl:template match="@*|node()" mode="M281" priority="-2">
+    <xsl:apply-templates mode="M281" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M282" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M282" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M282" priority="-1" />
+  <xsl:template match="@*|node()" mode="M282" priority="-2">
+    <xsl:apply-templates mode="M282" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" mode="M283" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M283" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M283" priority="-1" />
+  <xsl:template match="@*|node()" mode="M283" priority="-2">
+    <xsl:apply-templates mode="M283" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M284" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M284" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M284" priority="-1" />
+  <xsl:template match="@*|node()" mode="M284" priority="-2">
+    <xsl:apply-templates mode="M284" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M285" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue29" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=29]/enumeration[@value=$codeValue29]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=29]/enumeration[@value=$codeValue29]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M285" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M285" priority="-1" />
+  <xsl:template match="@*|node()" mode="M285" priority="-2">
+    <xsl:apply-templates mode="M285" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M286" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M286" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M286" priority="-1" />
+  <xsl:template match="@*|node()" mode="M286" priority="-2">
+    <xsl:apply-templates mode="M286" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M287" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M287" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M287" priority="-1" />
+  <xsl:template match="@*|node()" mode="M287" priority="-2">
+    <xsl:apply-templates mode="M287" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M288" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M288" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M288" priority="-1" />
+  <xsl:template match="@*|node()" mode="M288" priority="-2">
+    <xsl:apply-templates mode="M288" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M289" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M289" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M289" priority="-1" />
+  <xsl:template match="@*|node()" mode="M289" priority="-2">
+    <xsl:apply-templates mode="M289" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M290" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M290" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M290" priority="-1" />
+  <xsl:template match="@*|node()" mode="M290" priority="-2">
+    <xsl:apply-templates mode="M290" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M291" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M291" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M291" priority="-1" />
+  <xsl:template match="@*|node()" mode="M291" priority="-2">
+    <xsl:apply-templates mode="M291" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M292" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue10" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M292" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M292" priority="-1" />
+  <xsl:template match="@*|node()" mode="M292" priority="-2">
+    <xsl:apply-templates mode="M292" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M293" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M293" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M293" priority="-1" />
+  <xsl:template match="@*|node()" mode="M293" priority="-2">
+    <xsl:apply-templates mode="M293" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M294" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M294" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M294" priority="-1" />
+  <xsl:template match="@*|node()" mode="M294" priority="-2">
+    <xsl:apply-templates mode="M294" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M295" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M295" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M295" priority="-1" />
+  <xsl:template match="@*|node()" mode="M295" priority="-2">
+    <xsl:apply-templates mode="M295" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" mode="M296" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M296" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M296" priority="-1" />
+  <xsl:template match="@*|node()" mode="M296" priority="-2">
+    <xsl:apply-templates mode="M296" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M297" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M297" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M297" priority="-1" />
+  <xsl:template match="@*|node()" mode="M297" priority="-2">
+    <xsl:apply-templates mode="M297" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M298" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue30" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=30]/enumeration[@value=$codeValue30]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=30]/enumeration[@value=$codeValue30]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M298" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M298" priority="-1" />
+  <xsl:template match="@*|node()" mode="M298" priority="-2">
+    <xsl:apply-templates mode="M298" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" mode="M299" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DirectDebitMandateID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DirectDebitMandateID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000188</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DirectDebitMandateID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M299" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M299" priority="-1" />
+  <xsl:template match="@*|node()" mode="M299" priority="-2">
+    <xsl:apply-templates mode="M299" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" mode="M300" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M300" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M300" priority="-1" />
+  <xsl:template match="@*|node()" mode="M300" priority="-2">
+    <xsl:apply-templates mode="M300" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" mode="M301" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M301" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M301" priority="-1" />
+  <xsl:template match="@*|node()" mode="M301" priority="-2">
+    <xsl:apply-templates mode="M301" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" mode="M302" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M302" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M302" priority="-1" />
+  <xsl:template match="@*|node()" mode="M302" priority="-2">
+    <xsl:apply-templates mode="M302" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M303" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000190</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000191</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxBasisTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxBasisTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000041</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000042</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000192</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoundingAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoundingAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000290</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoundingAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000043</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TotalPrepaidAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TotalPrepaidAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000193</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TotalPrepaidAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DuePayableAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DuePayableAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000044</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DuePayableAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M303" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M303" priority="-1" />
+  <xsl:template match="@*|node()" mode="M303" priority="-2">
+    <xsl:apply-templates mode="M303" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" mode="M304" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M304" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M304" priority="-1" />
+  <xsl:template match="@*|node()" mode="M304" priority="-2">
+    <xsl:apply-templates mode="M304" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" mode="M305" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M305" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M305" priority="-1" />
+  <xsl:template match="@*|node()" mode="M305" priority="-2">
+    <xsl:apply-templates mode="M305" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" mode="M306" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M306" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M306" priority="-1" />
+  <xsl:template match="@*|node()" mode="M306" priority="-2">
+    <xsl:apply-templates mode="M306" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M307" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M307" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M307" priority="-1" />
+  <xsl:template match="@*|node()" mode="M307" priority="-2">
+    <xsl:apply-templates mode="M307" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M308" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M308" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M308" priority="-1" />
+  <xsl:template match="@*|node()" mode="M308" priority="-2">
+    <xsl:apply-templates mode="M308" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount[@currencyID]" mode="M309" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M309" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M309" priority="-1" />
+  <xsl:template match="@*|node()" mode="M309" priority="-2">
+    <xsl:apply-templates mode="M309" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" mode="M310" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M310" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M310" priority="-1" />
+  <xsl:template match="@*|node()" mode="M310" priority="-2">
+    <xsl:apply-templates mode="M310" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" mode="M311" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M311" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M311" priority="-1" />
+  <xsl:template match="@*|node()" mode="M311" priority="-2">
+    <xsl:apply-templates mode="M311" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" mode="M312" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue31" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=31]/enumeration[@value=$codeValue31]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=31]/enumeration[@value=$codeValue31]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M312" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M312" priority="-1" />
+  <xsl:template match="@*|node()" mode="M312" priority="-2">
+    <xsl:apply-templates mode="M312" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" mode="M313" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M313" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M313" priority="-1" />
+  <xsl:template match="@*|node()" mode="M313" priority="-2">
+    <xsl:apply-templates mode="M313" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" mode="M314" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue32" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=32]/enumeration[@value=$codeValue32]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=32]/enumeration[@value=$codeValue32]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M314" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M314" priority="-1" />
+  <xsl:template match="@*|node()" mode="M314" priority="-2">
+    <xsl:apply-templates mode="M314" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" mode="M315" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M315" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M315" priority="-1" />
+  <xsl:template match="@*|node()" mode="M315" priority="-2">
+    <xsl:apply-templates mode="M315" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" mode="M316" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M316" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M316" priority="-1" />
+  <xsl:template match="@*|node()" mode="M316" priority="-2">
+    <xsl:apply-templates mode="M316" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" mode="M317" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Information)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Information)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000291</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Information' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000194</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PayeePartyCreditorFinancialAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M317" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M317" priority="-1" />
+  <xsl:template match="@*|node()" mode="M317" priority="-2">
+    <xsl:apply-templates mode="M317" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard" mode="M318" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M318" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M318" priority="-1" />
+  <xsl:template match="@*|node()" mode="M318" priority="-2">
+    <xsl:apply-templates mode="M318" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID[@schemeID]" mode="M319" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M319" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M319" priority="-1" />
+  <xsl:template match="@*|node()" mode="M319" priority="-2">
+    <xsl:apply-templates mode="M319" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" mode="M320" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M320" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M320" priority="-1" />
+  <xsl:template match="@*|node()" mode="M320" priority="-2">
+    <xsl:apply-templates mode="M320" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" mode="M321" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M321" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M321" priority="-1" />
+  <xsl:template match="@*|node()" mode="M321" priority="-2">
+    <xsl:apply-templates mode="M321" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution" mode="M322" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BICID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BICID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000292</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BICID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M322" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M322" priority="-1" />
+  <xsl:template match="@*|node()" mode="M322" priority="-2">
+    <xsl:apply-templates mode="M322" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID[@schemeID]" mode="M323" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M323" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M323" priority="-1" />
+  <xsl:template match="@*|node()" mode="M323" priority="-2">
+    <xsl:apply-templates mode="M323" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" mode="M324" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IBANID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IBANID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000195</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IBANID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M324" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M324" priority="-1" />
+  <xsl:template match="@*|node()" mode="M324" priority="-2">
+    <xsl:apply-templates mode="M324" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" mode="M325" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M325" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M325" priority="-1" />
+  <xsl:template match="@*|node()" mode="M325" priority="-2">
+    <xsl:apply-templates mode="M325" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" mode="M326" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" />
+    <xsl:variable name="codeValue25" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M326" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M326" priority="-1" />
+  <xsl:template match="@*|node()" mode="M326" priority="-2">
+    <xsl:apply-templates mode="M326" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" mode="M327" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000196</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TaxCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M327" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M327" priority="-1" />
+  <xsl:template match="@*|node()" mode="M327" priority="-2">
+    <xsl:apply-templates mode="M327" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" mode="M328" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AssociatedDocumentLineDocument)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AssociatedDocumentLineDocument)=1">
+          <xsl:attribute name="id">FX-SCH-A-000266</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AssociatedDocumentLineDocument' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeProduct)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeProduct)=1">
+          <xsl:attribute name="id">FX-SCH-A-000267</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeProduct' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeAgreement)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeAgreement)=1">
+          <xsl:attribute name="id">FX-SCH-A-000268</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeAgreement' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeDelivery)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeDelivery)=1">
+          <xsl:attribute name="id">FX-SCH-A-000269</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeDelivery' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M328" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M328" priority="-1" />
+  <xsl:template match="@*|node()" mode="M328" priority="-2">
+    <xsl:apply-templates mode="M328" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" mode="M329" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000270</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedNote)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedNote)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000271</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedNote' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M329" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M329" priority="-1" />
+  <xsl:template match="@*|node()" mode="M329" priority="-2">
+    <xsl:apply-templates mode="M329" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" mode="M330" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)=1">
+          <xsl:attribute name="id">FX-SCH-A-000160</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M330" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M330" priority="-1" />
+  <xsl:template match="@*|node()" mode="M330" priority="-2">
+    <xsl:apply-templates mode="M330" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" mode="M331" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SubjectCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M331" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M331" priority="-1" />
+  <xsl:template match="@*|node()" mode="M331" priority="-2">
+    <xsl:apply-templates mode="M331" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" mode="M332" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M332" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M332" priority="-1" />
+  <xsl:template match="@*|node()" mode="M332" priority="-2">
+    <xsl:apply-templates mode="M332" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" mode="M333" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:NetPriceProductTradePrice)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:NetPriceProductTradePrice)=1">
+          <xsl:attribute name="id">FX-SCH-A-000272</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:NetPriceProductTradePrice' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M333" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M333" priority="-1" />
+  <xsl:template match="@*|node()" mode="M333" priority="-2">
+    <xsl:apply-templates mode="M333" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M334" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M334" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M334" priority="-1" />
+  <xsl:template match="@*|node()" mode="M334" priority="-2">
+    <xsl:apply-templates mode="M334" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" mode="M335" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M335" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M335" priority="-1" />
+  <xsl:template match="@*|node()" mode="M335" priority="-2">
+    <xsl:apply-templates mode="M335" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID" mode="M336" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:IssuerAssignedID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M336" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M336" priority="-1" />
+  <xsl:template match="@*|node()" mode="M336" priority="-2">
+    <xsl:apply-templates mode="M336" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID[@schemeID]" mode="M337" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M337" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M337" priority="-1" />
+  <xsl:template match="@*|node()" mode="M337" priority="-2">
+    <xsl:apply-templates mode="M337" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" mode="M338" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M338" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M338" priority="-1" />
+  <xsl:template match="@*|node()" mode="M338" priority="-2">
+    <xsl:apply-templates mode="M338" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M339" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M339" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M339" priority="-1" />
+  <xsl:template match="@*|node()" mode="M339" priority="-2">
+    <xsl:apply-templates mode="M339" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" mode="M340" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M340" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M340" priority="-1" />
+  <xsl:template match="@*|node()" mode="M340" priority="-2">
+    <xsl:apply-templates mode="M340" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" mode="M341" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M341" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M341" priority="-1" />
+  <xsl:template match="@*|node()" mode="M341" priority="-2">
+    <xsl:apply-templates mode="M341" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" mode="M342" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000274</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator="false"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M342" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M342" priority="-1" />
+  <xsl:template match="@*|node()" mode="M342" priority="-2">
+    <xsl:apply-templates mode="M342" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M343" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M343" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M343" priority="-1" />
+  <xsl:template match="@*|node()" mode="M343" priority="-2">
+    <xsl:apply-templates mode="M343" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M344" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M344" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M344" priority="-1" />
+  <xsl:template match="@*|node()" mode="M344" priority="-2">
+    <xsl:apply-templates mode="M344" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M345" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M345" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M345" priority="-1" />
+  <xsl:template match="@*|node()" mode="M345" priority="-2">
+    <xsl:apply-templates mode="M345" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" mode="M346" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M346" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M346" priority="-1" />
+  <xsl:template match="@*|node()" mode="M346" priority="-2">
+    <xsl:apply-templates mode="M346" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" mode="M347" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculationPercent' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M347" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M347" priority="-1" />
+  <xsl:template match="@*|node()" mode="M347" priority="-2">
+    <xsl:apply-templates mode="M347" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M348" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M348" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M348" priority="-1" />
+  <xsl:template match="@*|node()" mode="M348" priority="-2">
+    <xsl:apply-templates mode="M348" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:Reason" mode="M349" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:Reason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Reason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M349" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M349" priority="-1" />
+  <xsl:template match="@*|node()" mode="M349" priority="-2">
+    <xsl:apply-templates mode="M349" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M350" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M350" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M350" priority="-1" />
+  <xsl:template match="@*|node()" mode="M350" priority="-2">
+    <xsl:apply-templates mode="M350" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M351" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue8" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M351" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M351" priority="-1" />
+  <xsl:template match="@*|node()" mode="M351" priority="-2">
+    <xsl:apply-templates mode="M351" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M352" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M352" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M352" priority="-1" />
+  <xsl:template match="@*|node()" mode="M352" priority="-2">
+    <xsl:apply-templates mode="M352" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" mode="M353" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M353" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M353" priority="-1" />
+  <xsl:template match="@*|node()" mode="M353" priority="-2">
+    <xsl:apply-templates mode="M353" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" mode="M354" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AppliedTradeAllowanceCharge' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M354" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M354" priority="-1" />
+  <xsl:template match="@*|node()" mode="M354" priority="-2">
+    <xsl:apply-templates mode="M354" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M355" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue8" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M355" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M355" priority="-1" />
+  <xsl:template match="@*|node()" mode="M355" priority="-2">
+    <xsl:apply-templates mode="M355" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M356" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M356" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M356" priority="-1" />
+  <xsl:template match="@*|node()" mode="M356" priority="-2">
+    <xsl:apply-templates mode="M356" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" mode="M357" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BilledQuantity)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BilledQuantity)=1">
+          <xsl:attribute name="id">FX-SCH-A-000276</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BilledQuantity' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M357" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M357" priority="-1" />
+  <xsl:template match="@*|node()" mode="M357" priority="-2">
+    <xsl:apply-templates mode="M357" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" mode="M358" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M358" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M358" priority="-1" />
+  <xsl:template match="@*|node()" mode="M358" priority="-2">
+    <xsl:apply-templates mode="M358" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" mode="M359" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" />
+    <xsl:variable name="codeValue8" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M359" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M359" priority="-1" />
+  <xsl:template match="@*|node()" mode="M359" priority="-2">
+    <xsl:apply-templates mode="M359" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" mode="M360" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000278</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000279</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementLineMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AdditionalReferencedDocument)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AdditionalReferencedDocument)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000293</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AdditionalReferencedDocument' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000175</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M360" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M360" priority="-1" />
+  <xsl:template match="@*|node()" mode="M360" priority="-2">
+    <xsl:apply-templates mode="M360" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument" mode="M361" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M361" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M361" priority="-1" />
+  <xsl:template match="@*|node()" mode="M361" priority="-2">
+    <xsl:apply-templates mode="M361" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" mode="M362" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M362" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M362" priority="-1" />
+  <xsl:template match="@*|node()" mode="M362" priority="-2">
+    <xsl:apply-templates mode="M362" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime" mode="M363" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M363" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M363" priority="-1" />
+  <xsl:template match="@*|node()" mode="M363" priority="-2">
+    <xsl:apply-templates mode="M363" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M364" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M364" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M364" priority="-1" />
+  <xsl:template match="@*|node()" mode="M364" priority="-2">
+    <xsl:apply-templates mode="M364" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:LineID" mode="M365" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M365" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M365" priority="-1" />
+  <xsl:template match="@*|node()" mode="M365" priority="-2">
+    <xsl:apply-templates mode="M365" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:Name" mode="M366" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M366" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M366" priority="-1" />
+  <xsl:template match="@*|node()" mode="M366" priority="-2">
+    <xsl:apply-templates mode="M366" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" mode="M367" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue14" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M367" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M367" priority="-1" />
+  <xsl:template match="@*|node()" mode="M367" priority="-2">
+    <xsl:apply-templates mode="M367" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:TypeCode" mode="M368" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M368" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M368" priority="-1" />
+  <xsl:template match="@*|node()" mode="M368" priority="-2">
+    <xsl:apply-templates mode="M368" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:URIID" mode="M369" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M369" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M369" priority="-1" />
+  <xsl:template match="@*|node()" mode="M369" priority="-2">
+    <xsl:apply-templates mode="M369" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" mode="M370" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M370" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M370" priority="-1" />
+  <xsl:template match="@*|node()" mode="M370" priority="-2">
+    <xsl:apply-templates mode="M370" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" mode="M371" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M371" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M371" priority="-1" />
+  <xsl:template match="@*|node()" mode="M371" priority="-2">
+    <xsl:apply-templates mode="M371" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount" mode="M372" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M372" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M372" priority="-1" />
+  <xsl:template match="@*|node()" mode="M372" priority="-2">
+    <xsl:apply-templates mode="M372" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M373" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue10" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M373" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M373" priority="-1" />
+  <xsl:template match="@*|node()" mode="M373" priority="-2">
+    <xsl:apply-templates mode="M373" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M374" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M374" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M374" priority="-1" />
+  <xsl:template match="@*|node()" mode="M374" priority="-2">
+    <xsl:apply-templates mode="M374" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason" mode="M375" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M375" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M375" priority="-1" />
+  <xsl:template match="@*|node()" mode="M375" priority="-2">
+    <xsl:apply-templates mode="M375" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M376" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M376" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M376" priority="-1" />
+  <xsl:template match="@*|node()" mode="M376" priority="-2">
+    <xsl:apply-templates mode="M376" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate" mode="M377" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M377" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M377" priority="-1" />
+  <xsl:template match="@*|node()" mode="M377" priority="-2">
+    <xsl:apply-templates mode="M377" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M378" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M378" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M378" priority="-1" />
+  <xsl:template match="@*|node()" mode="M378" priority="-2">
+    <xsl:apply-templates mode="M378" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M379" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M379" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M379" priority="-1" />
+  <xsl:template match="@*|node()" mode="M379" priority="-2">
+    <xsl:apply-templates mode="M379" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M380" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M380" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M380" priority="-1" />
+  <xsl:template match="@*|node()" mode="M380" priority="-2">
+    <xsl:apply-templates mode="M380" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M381" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M381" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M381" priority="-1" />
+  <xsl:template match="@*|node()" mode="M381" priority="-2">
+    <xsl:apply-templates mode="M381" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M382" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M382" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M382" priority="-1" />
+  <xsl:template match="@*|node()" mode="M382" priority="-2">
+    <xsl:apply-templates mode="M382" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M383" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M383" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M383" priority="-1" />
+  <xsl:template match="@*|node()" mode="M383" priority="-2">
+    <xsl:apply-templates mode="M383" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M384" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M384" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M384" priority="-1" />
+  <xsl:template match="@*|node()" mode="M384" priority="-2">
+    <xsl:apply-templates mode="M384" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M385" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M385" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M385" priority="-1" />
+  <xsl:template match="@*|node()" mode="M385" priority="-2">
+    <xsl:apply-templates mode="M385" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M386" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M386" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M386" priority="-1" />
+  <xsl:template match="@*|node()" mode="M386" priority="-2">
+    <xsl:apply-templates mode="M386" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M387" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M387" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M387" priority="-1" />
+  <xsl:template match="@*|node()" mode="M387" priority="-2">
+    <xsl:apply-templates mode="M387" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M388" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M388" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M388" priority="-1" />
+  <xsl:template match="@*|node()" mode="M388" priority="-2">
+    <xsl:apply-templates mode="M388" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M389" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue11" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M389" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M389" priority="-1" />
+  <xsl:template match="@*|node()" mode="M389" priority="-2">
+    <xsl:apply-templates mode="M389" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M390" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M390" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M390" priority="-1" />
+  <xsl:template match="@*|node()" mode="M390" priority="-2">
+    <xsl:apply-templates mode="M390" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M391" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M391" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M391" priority="-1" />
+  <xsl:template match="@*|node()" mode="M391" priority="-2">
+    <xsl:apply-templates mode="M391" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M392" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M392" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M392" priority="-1" />
+  <xsl:template match="@*|node()" mode="M392" priority="-2">
+    <xsl:apply-templates mode="M392" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M393" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M393" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M393" priority="-1" />
+  <xsl:template match="@*|node()" mode="M393" priority="-2">
+    <xsl:apply-templates mode="M393" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M394" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue12" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M394" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M394" priority="-1" />
+  <xsl:template match="@*|node()" mode="M394" priority="-2">
+    <xsl:apply-templates mode="M394" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" mode="M395" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M395" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M395" priority="-1" />
+  <xsl:template match="@*|node()" mode="M395" priority="-2">
+    <xsl:apply-templates mode="M395" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M396" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M396" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M396" priority="-1" />
+  <xsl:template match="@*|node()" mode="M396" priority="-2">
+    <xsl:apply-templates mode="M396" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" mode="M397" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M397" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M397" priority="-1" />
+  <xsl:template match="@*|node()" mode="M397" priority="-2">
+    <xsl:apply-templates mode="M397" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic" mode="M398" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)=1">
+          <xsl:attribute name="id">FX-SCH-A-000294</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Value)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Value)=1">
+          <xsl:attribute name="id">FX-SCH-A-000295</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Value' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M398" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M398" priority="-1" />
+  <xsl:template match="@*|node()" mode="M398" priority="-2">
+    <xsl:apply-templates mode="M398" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID]" mode="M399" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M399" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M399" priority="-1" />
+  <xsl:template match="@*|node()" mode="M399" priority="-2">
+    <xsl:apply-templates mode="M399" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode" mode="M400" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@listID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@listID">
+          <xsl:attribute name="id">FX-SCH-A-000296</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@listID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M400" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M400" priority="-1" />
+  <xsl:template match="@*|node()" mode="M400" priority="-2">
+    <xsl:apply-templates mode="M400" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode[@listID]" mode="M401" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode[@listID]" />
+    <xsl:variable name="codeValue6" select="@listID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000297</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@listID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M401" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M401" priority="-1" />
+  <xsl:template match="@*|node()" mode="M401" priority="-2">
+    <xsl:apply-templates mode="M401" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" mode="M402" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M402" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M402" priority="-1" />
+  <xsl:template match="@*|node()" mode="M402" priority="-2">
+    <xsl:apply-templates mode="M402" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" mode="M403" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue5" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M403" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M403" priority="-1" />
+  <xsl:template match="@*|node()" mode="M403" priority="-2">
+    <xsl:apply-templates mode="M403" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry" mode="M404" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M404" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M404" priority="-1" />
+  <xsl:template match="@*|node()" mode="M404" priority="-2">
+    <xsl:apply-templates mode="M404" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID" mode="M405" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID" />
+    <xsl:variable name="codeValue7" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EN16931_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M405" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M405" priority="-1" />
+  <xsl:template match="@*|node()" mode="M405" priority="-2">
+    <xsl:apply-templates mode="M405" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID[@schemeID]" mode="M406" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M406" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M406" priority="-1" />
+  <xsl:template match="@*|node()" mode="M406" priority="-2">
+    <xsl:apply-templates mode="M406" select="@*|*" />
+  </xsl:template>
+</xsl:stylesheet>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931_codedb.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931_codedb.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EN16931_codedb.xml	(revision 8542)
@@ -0,0 +1,5844 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<codedb>
+  <cl id="1">
+    <enumeration value="urn:cen.eu:en16931:2017"/>
+  </cl>
+  <cl id="2">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="3">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="4">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADH"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADS"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHW"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="BAG"/>
+    <enumeration value="BAH"/>
+    <enumeration value="BAI"/>
+    <enumeration value="BAJ"/>
+    <enumeration value="BAK"/>
+    <enumeration value="BAL"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BAN"/>
+    <enumeration value="BAO"/>
+    <enumeration value="BAP"/>
+    <enumeration value="BAQ"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BAS"/>
+    <enumeration value="BAT"/>
+    <enumeration value="BAU"/>
+    <enumeration value="BAV"/>
+    <enumeration value="BAW"/>
+    <enumeration value="BAX"/>
+    <enumeration value="BAY"/>
+    <enumeration value="BAZ"/>
+    <enumeration value="BBA"/>
+    <enumeration value="BBB"/>
+    <enumeration value="BLC"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLE"/>
+    <enumeration value="BLF"/>
+    <enumeration value="BLG"/>
+    <enumeration value="BLH"/>
+    <enumeration value="BLI"/>
+    <enumeration value="BLJ"/>
+    <enumeration value="BLK"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BLM"/>
+    <enumeration value="BLN"/>
+    <enumeration value="BLO"/>
+    <enumeration value="BLP"/>
+    <enumeration value="BLQ"/>
+    <enumeration value="BLR"/>
+    <enumeration value="BLS"/>
+    <enumeration value="BLT"/>
+    <enumeration value="BLU"/>
+    <enumeration value="BLV"/>
+    <enumeration value="BLW"/>
+    <enumeration value="BLX"/>
+    <enumeration value="BLY"/>
+    <enumeration value="BLZ"/>
+    <enumeration value="BMA"/>
+    <enumeration value="BMB"/>
+    <enumeration value="BMC"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BME"/>
+    <enumeration value="BMF"/>
+    <enumeration value="BMG"/>
+    <enumeration value="BMH"/>
+    <enumeration value="CCI"/>
+    <enumeration value="CCJ"/>
+    <enumeration value="CCK"/>
+    <enumeration value="CCL"/>
+    <enumeration value="CCM"/>
+    <enumeration value="CCN"/>
+    <enumeration value="CCO"/>
+    <enumeration value="CEX"/>
+    <enumeration value="CHG"/>
+    <enumeration value="CIP"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CLR"/>
+    <enumeration value="COI"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CUS"/>
+    <enumeration value="DAR"/>
+    <enumeration value="DCL"/>
+    <enumeration value="DEL"/>
+    <enumeration value="DIN"/>
+    <enumeration value="DOC"/>
+    <enumeration value="DUT"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FBC"/>
+    <enumeration value="GBL"/>
+    <enumeration value="GEN"/>
+    <enumeration value="GS7"/>
+    <enumeration value="HAN"/>
+    <enumeration value="HAZ"/>
+    <enumeration value="ICN"/>
+    <enumeration value="IIN"/>
+    <enumeration value="IMI"/>
+    <enumeration value="IND"/>
+    <enumeration value="INS"/>
+    <enumeration value="INV"/>
+    <enumeration value="IRP"/>
+    <enumeration value="ITR"/>
+    <enumeration value="ITS"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LIN"/>
+    <enumeration value="LOI"/>
+    <enumeration value="MCO"/>
+    <enumeration value="MDH"/>
+    <enumeration value="MKS"/>
+    <enumeration value="ORI"/>
+    <enumeration value="OSI"/>
+    <enumeration value="PAC"/>
+    <enumeration value="PAI"/>
+    <enumeration value="PAY"/>
+    <enumeration value="PKG"/>
+    <enumeration value="PKT"/>
+    <enumeration value="PMD"/>
+    <enumeration value="PMT"/>
+    <enumeration value="PRD"/>
+    <enumeration value="PRF"/>
+    <enumeration value="PRI"/>
+    <enumeration value="PUR"/>
+    <enumeration value="QIN"/>
+    <enumeration value="QQD"/>
+    <enumeration value="QUT"/>
+    <enumeration value="RAH"/>
+    <enumeration value="REG"/>
+    <enumeration value="RET"/>
+    <enumeration value="REV"/>
+    <enumeration value="RQR"/>
+    <enumeration value="SAF"/>
+    <enumeration value="SIC"/>
+    <enumeration value="SIN"/>
+    <enumeration value="SLR"/>
+    <enumeration value="SPA"/>
+    <enumeration value="SPG"/>
+    <enumeration value="SPH"/>
+    <enumeration value="SPP"/>
+    <enumeration value="SPT"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SUR"/>
+    <enumeration value="TCA"/>
+    <enumeration value="TDT"/>
+    <enumeration value="TRA"/>
+    <enumeration value="TRR"/>
+    <enumeration value="TXD"/>
+    <enumeration value="WHI"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="5">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="6">
+    <enumeration value="AA"/>
+    <enumeration value="AB"/>
+    <enumeration value="AC"/>
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AH"/>
+    <enumeration value="AI"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AK"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AN"/>
+    <enumeration value="AO"/>
+    <enumeration value="AP"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AV"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AY"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BC"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BK"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BP"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BU"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BX"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CC"/>
+    <enumeration value="CG"/>
+    <enumeration value="CL"/>
+    <enumeration value="CR"/>
+    <enumeration value="CV"/>
+    <enumeration value="DR"/>
+    <enumeration value="DW"/>
+    <enumeration value="EC"/>
+    <enumeration value="EF"/>
+    <enumeration value="EMD"/>
+    <enumeration value="EN"/>
+    <enumeration value="FS"/>
+    <enumeration value="GB"/>
+    <enumeration value="GMN"/>
+    <enumeration value="GN"/>
+    <enumeration value="GS"/>
+    <enumeration value="HS"/>
+    <enumeration value="IB"/>
+    <enumeration value="IN"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="IZ"/>
+    <enumeration value="MA"/>
+    <enumeration value="MF"/>
+    <enumeration value="MN"/>
+    <enumeration value="MP"/>
+    <enumeration value="NB"/>
+    <enumeration value="ON"/>
+    <enumeration value="PD"/>
+    <enumeration value="PL"/>
+    <enumeration value="PO"/>
+    <enumeration value="PV"/>
+    <enumeration value="QS"/>
+    <enumeration value="RC"/>
+    <enumeration value="RN"/>
+    <enumeration value="RU"/>
+    <enumeration value="RY"/>
+    <enumeration value="SA"/>
+    <enumeration value="SG"/>
+    <enumeration value="SK"/>
+    <enumeration value="SN"/>
+    <enumeration value="SRS"/>
+    <enumeration value="SRT"/>
+    <enumeration value="SRU"/>
+    <enumeration value="SRV"/>
+    <enumeration value="SRW"/>
+    <enumeration value="SRX"/>
+    <enumeration value="SRY"/>
+    <enumeration value="SRZ"/>
+    <enumeration value="SS"/>
+    <enumeration value="SSA"/>
+    <enumeration value="SSB"/>
+    <enumeration value="SSC"/>
+    <enumeration value="SSD"/>
+    <enumeration value="SSE"/>
+    <enumeration value="SSF"/>
+    <enumeration value="SSG"/>
+    <enumeration value="SSH"/>
+    <enumeration value="SSI"/>
+    <enumeration value="SSJ"/>
+    <enumeration value="SSK"/>
+    <enumeration value="SSL"/>
+    <enumeration value="SSM"/>
+    <enumeration value="SSN"/>
+    <enumeration value="SSO"/>
+    <enumeration value="SSP"/>
+    <enumeration value="SSQ"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SSS"/>
+    <enumeration value="SST"/>
+    <enumeration value="SSU"/>
+    <enumeration value="SSV"/>
+    <enumeration value="SSW"/>
+    <enumeration value="SSX"/>
+    <enumeration value="SSY"/>
+    <enumeration value="SSZ"/>
+    <enumeration value="ST"/>
+    <enumeration value="STA"/>
+    <enumeration value="STB"/>
+    <enumeration value="STC"/>
+    <enumeration value="STD"/>
+    <enumeration value="STE"/>
+    <enumeration value="STF"/>
+    <enumeration value="STG"/>
+    <enumeration value="STH"/>
+    <enumeration value="STI"/>
+    <enumeration value="STJ"/>
+    <enumeration value="STK"/>
+    <enumeration value="STL"/>
+    <enumeration value="STM"/>
+    <enumeration value="STN"/>
+    <enumeration value="STO"/>
+    <enumeration value="STP"/>
+    <enumeration value="STQ"/>
+    <enumeration value="STR"/>
+    <enumeration value="STS"/>
+    <enumeration value="STT"/>
+    <enumeration value="STU"/>
+    <enumeration value="STV"/>
+    <enumeration value="STW"/>
+    <enumeration value="STX"/>
+    <enumeration value="STY"/>
+    <enumeration value="STZ"/>
+    <enumeration value="SUA"/>
+    <enumeration value="SUB"/>
+    <enumeration value="SUC"/>
+    <enumeration value="SUD"/>
+    <enumeration value="SUE"/>
+    <enumeration value="SUF"/>
+    <enumeration value="SUG"/>
+    <enumeration value="SUH"/>
+    <enumeration value="SUI"/>
+    <enumeration value="SUJ"/>
+    <enumeration value="SUK"/>
+    <enumeration value="SUL"/>
+    <enumeration value="SUM"/>
+    <enumeration value="TG"/>
+    <enumeration value="TSN"/>
+    <enumeration value="TSO"/>
+    <enumeration value="TSP"/>
+    <enumeration value="TSQ"/>
+    <enumeration value="TSR"/>
+    <enumeration value="TSS"/>
+    <enumeration value="TST"/>
+    <enumeration value="TSU"/>
+    <enumeration value="UA"/>
+    <enumeration value="UP"/>
+    <enumeration value="VN"/>
+    <enumeration value="VP"/>
+    <enumeration value="VS"/>
+    <enumeration value="VX"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="7">
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AI"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AO"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CA"/>
+    <enumeration value="CC"/>
+    <enumeration value="CD"/>
+    <enumeration value="CF"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CI"/>
+    <enumeration value="CK"/>
+    <enumeration value="CL"/>
+    <enumeration value="CM"/>
+    <enumeration value="CN"/>
+    <enumeration value="CO"/>
+    <enumeration value="CR"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CX"/>
+    <enumeration value="CY"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DE"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DK"/>
+    <enumeration value="DM"/>
+    <enumeration value="DO"/>
+    <enumeration value="DZ"/>
+    <enumeration value="EC"/>
+    <enumeration value="EE"/>
+    <enumeration value="EG"/>
+    <enumeration value="EH"/>
+    <enumeration value="ER"/>
+    <enumeration value="ES"/>
+    <enumeration value="ET"/>
+    <enumeration value="FI"/>
+    <enumeration value="FJ"/>
+    <enumeration value="FK"/>
+    <enumeration value="FM"/>
+    <enumeration value="FO"/>
+    <enumeration value="FR"/>
+    <enumeration value="GA"/>
+    <enumeration value="GB"/>
+    <enumeration value="GD"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GG"/>
+    <enumeration value="GH"/>
+    <enumeration value="GI"/>
+    <enumeration value="GL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GN"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GR"/>
+    <enumeration value="GS"/>
+    <enumeration value="GT"/>
+    <enumeration value="GU"/>
+    <enumeration value="GW"/>
+    <enumeration value="GY"/>
+    <enumeration value="HK"/>
+    <enumeration value="HM"/>
+    <enumeration value="HN"/>
+    <enumeration value="HR"/>
+    <enumeration value="HT"/>
+    <enumeration value="HU"/>
+    <enumeration value="ID"/>
+    <enumeration value="IE"/>
+    <enumeration value="IL"/>
+    <enumeration value="IM"/>
+    <enumeration value="IN"/>
+    <enumeration value="IO"/>
+    <enumeration value="IQ"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="JE"/>
+    <enumeration value="JM"/>
+    <enumeration value="JO"/>
+    <enumeration value="JP"/>
+    <enumeration value="KE"/>
+    <enumeration value="KG"/>
+    <enumeration value="KH"/>
+    <enumeration value="KI"/>
+    <enumeration value="KM"/>
+    <enumeration value="KN"/>
+    <enumeration value="KP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KW"/>
+    <enumeration value="KY"/>
+    <enumeration value="KZ"/>
+    <enumeration value="LA"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LK"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LT"/>
+    <enumeration value="LU"/>
+    <enumeration value="LV"/>
+    <enumeration value="LY"/>
+    <enumeration value="MA"/>
+    <enumeration value="MC"/>
+    <enumeration value="MD"/>
+    <enumeration value="ME"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MK"/>
+    <enumeration value="ML"/>
+    <enumeration value="MM"/>
+    <enumeration value="MN"/>
+    <enumeration value="MO"/>
+    <enumeration value="MP"/>
+    <enumeration value="MQ"/>
+    <enumeration value="MR"/>
+    <enumeration value="MS"/>
+    <enumeration value="MT"/>
+    <enumeration value="MU"/>
+    <enumeration value="MV"/>
+    <enumeration value="MW"/>
+    <enumeration value="MX"/>
+    <enumeration value="MY"/>
+    <enumeration value="MZ"/>
+    <enumeration value="NA"/>
+    <enumeration value="NC"/>
+    <enumeration value="NE"/>
+    <enumeration value="NF"/>
+    <enumeration value="NG"/>
+    <enumeration value="NI"/>
+    <enumeration value="NL"/>
+    <enumeration value="NO"/>
+    <enumeration value="NP"/>
+    <enumeration value="NR"/>
+    <enumeration value="NU"/>
+    <enumeration value="NZ"/>
+    <enumeration value="OM"/>
+    <enumeration value="PA"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PG"/>
+    <enumeration value="PH"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="PM"/>
+    <enumeration value="PN"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PT"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="QA"/>
+    <enumeration value="RE"/>
+    <enumeration value="RO"/>
+    <enumeration value="RS"/>
+    <enumeration value="RU"/>
+    <enumeration value="RW"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SC"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SJ"/>
+    <enumeration value="SK"/>
+    <enumeration value="SL"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SO"/>
+    <enumeration value="SR"/>
+    <enumeration value="SS"/>
+    <enumeration value="ST"/>
+    <enumeration value="SV"/>
+    <enumeration value="SX"/>
+    <enumeration value="SY"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TC"/>
+    <enumeration value="TD"/>
+    <enumeration value="TF"/>
+    <enumeration value="TG"/>
+    <enumeration value="TH"/>
+    <enumeration value="TJ"/>
+    <enumeration value="TK"/>
+    <enumeration value="TL"/>
+    <enumeration value="TM"/>
+    <enumeration value="TN"/>
+    <enumeration value="TO"/>
+    <enumeration value="TR"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="TW"/>
+    <enumeration value="TZ"/>
+    <enumeration value="UA"/>
+    <enumeration value="UG"/>
+    <enumeration value="UM"/>
+    <enumeration value="US"/>
+    <enumeration value="UY"/>
+    <enumeration value="UZ"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VE"/>
+    <enumeration value="VG"/>
+    <enumeration value="VI"/>
+    <enumeration value="VN"/>
+    <enumeration value="VU"/>
+    <enumeration value="WF"/>
+    <enumeration value="WS"/>
+    <enumeration value="YE"/>
+    <enumeration value="YT"/>
+    <enumeration value="ZA"/>
+    <enumeration value="ZM"/>
+    <enumeration value="ZW"/>
+    <enumeration value="1A"/>
+    <enumeration value="XI"/>
+  </cl>
+  <cl id="8">
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="74"/>
+    <enumeration value="77"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="85"/>
+    <enumeration value="87"/>
+    <enumeration value="89"/>
+    <enumeration value="91"/>
+    <enumeration value="1I"/>
+    <enumeration value="2A"/>
+    <enumeration value="2B"/>
+    <enumeration value="2C"/>
+    <enumeration value="2G"/>
+    <enumeration value="2H"/>
+    <enumeration value="2I"/>
+    <enumeration value="2J"/>
+    <enumeration value="2K"/>
+    <enumeration value="2L"/>
+    <enumeration value="2M"/>
+    <enumeration value="2N"/>
+    <enumeration value="2P"/>
+    <enumeration value="2Q"/>
+    <enumeration value="2R"/>
+    <enumeration value="2U"/>
+    <enumeration value="2X"/>
+    <enumeration value="2Y"/>
+    <enumeration value="2Z"/>
+    <enumeration value="3B"/>
+    <enumeration value="3C"/>
+    <enumeration value="4C"/>
+    <enumeration value="4G"/>
+    <enumeration value="4H"/>
+    <enumeration value="4K"/>
+    <enumeration value="4L"/>
+    <enumeration value="4M"/>
+    <enumeration value="4N"/>
+    <enumeration value="4O"/>
+    <enumeration value="4P"/>
+    <enumeration value="4Q"/>
+    <enumeration value="4R"/>
+    <enumeration value="4T"/>
+    <enumeration value="4U"/>
+    <enumeration value="4W"/>
+    <enumeration value="4X"/>
+    <enumeration value="5A"/>
+    <enumeration value="5B"/>
+    <enumeration value="5E"/>
+    <enumeration value="5J"/>
+    <enumeration value="A10"/>
+    <enumeration value="A11"/>
+    <enumeration value="A12"/>
+    <enumeration value="A13"/>
+    <enumeration value="A14"/>
+    <enumeration value="A15"/>
+    <enumeration value="A16"/>
+    <enumeration value="A17"/>
+    <enumeration value="A18"/>
+    <enumeration value="A19"/>
+    <enumeration value="A2"/>
+    <enumeration value="A20"/>
+    <enumeration value="A21"/>
+    <enumeration value="A22"/>
+    <enumeration value="A23"/>
+    <enumeration value="A24"/>
+    <enumeration value="A26"/>
+    <enumeration value="A27"/>
+    <enumeration value="A28"/>
+    <enumeration value="A29"/>
+    <enumeration value="A3"/>
+    <enumeration value="A30"/>
+    <enumeration value="A31"/>
+    <enumeration value="A32"/>
+    <enumeration value="A33"/>
+    <enumeration value="A34"/>
+    <enumeration value="A35"/>
+    <enumeration value="A36"/>
+    <enumeration value="A37"/>
+    <enumeration value="A38"/>
+    <enumeration value="A39"/>
+    <enumeration value="A4"/>
+    <enumeration value="A40"/>
+    <enumeration value="A41"/>
+    <enumeration value="A42"/>
+    <enumeration value="A43"/>
+    <enumeration value="A44"/>
+    <enumeration value="A45"/>
+    <enumeration value="A47"/>
+    <enumeration value="A48"/>
+    <enumeration value="A49"/>
+    <enumeration value="A5"/>
+    <enumeration value="A53"/>
+    <enumeration value="A54"/>
+    <enumeration value="A55"/>
+    <enumeration value="A56"/>
+    <enumeration value="A59"/>
+    <enumeration value="A6"/>
+    <enumeration value="A68"/>
+    <enumeration value="A69"/>
+    <enumeration value="A7"/>
+    <enumeration value="A70"/>
+    <enumeration value="A71"/>
+    <enumeration value="A73"/>
+    <enumeration value="A74"/>
+    <enumeration value="A75"/>
+    <enumeration value="A76"/>
+    <enumeration value="A8"/>
+    <enumeration value="A84"/>
+    <enumeration value="A85"/>
+    <enumeration value="A86"/>
+    <enumeration value="A87"/>
+    <enumeration value="A88"/>
+    <enumeration value="A89"/>
+    <enumeration value="A9"/>
+    <enumeration value="A90"/>
+    <enumeration value="A91"/>
+    <enumeration value="A93"/>
+    <enumeration value="A94"/>
+    <enumeration value="A95"/>
+    <enumeration value="A96"/>
+    <enumeration value="A97"/>
+    <enumeration value="A98"/>
+    <enumeration value="A99"/>
+    <enumeration value="AA"/>
+    <enumeration value="AB"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACT"/>
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AH"/>
+    <enumeration value="AI"/>
+    <enumeration value="AK"/>
+    <enumeration value="AL"/>
+    <enumeration value="AMH"/>
+    <enumeration value="AMP"/>
+    <enumeration value="ANN"/>
+    <enumeration value="APZ"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="ASM"/>
+    <enumeration value="ASU"/>
+    <enumeration value="ATM"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AY"/>
+    <enumeration value="AZ"/>
+    <enumeration value="B1"/>
+    <enumeration value="B10"/>
+    <enumeration value="B11"/>
+    <enumeration value="B12"/>
+    <enumeration value="B13"/>
+    <enumeration value="B14"/>
+    <enumeration value="B15"/>
+    <enumeration value="B16"/>
+    <enumeration value="B17"/>
+    <enumeration value="B18"/>
+    <enumeration value="B19"/>
+    <enumeration value="B20"/>
+    <enumeration value="B21"/>
+    <enumeration value="B22"/>
+    <enumeration value="B23"/>
+    <enumeration value="B24"/>
+    <enumeration value="B25"/>
+    <enumeration value="B26"/>
+    <enumeration value="B27"/>
+    <enumeration value="B28"/>
+    <enumeration value="B29"/>
+    <enumeration value="B3"/>
+    <enumeration value="B30"/>
+    <enumeration value="B31"/>
+    <enumeration value="B32"/>
+    <enumeration value="B33"/>
+    <enumeration value="B34"/>
+    <enumeration value="B35"/>
+    <enumeration value="B4"/>
+    <enumeration value="B41"/>
+    <enumeration value="B42"/>
+    <enumeration value="B43"/>
+    <enumeration value="B44"/>
+    <enumeration value="B45"/>
+    <enumeration value="B46"/>
+    <enumeration value="B47"/>
+    <enumeration value="B48"/>
+    <enumeration value="B49"/>
+    <enumeration value="B50"/>
+    <enumeration value="B52"/>
+    <enumeration value="B53"/>
+    <enumeration value="B54"/>
+    <enumeration value="B55"/>
+    <enumeration value="B56"/>
+    <enumeration value="B57"/>
+    <enumeration value="B58"/>
+    <enumeration value="B59"/>
+    <enumeration value="B60"/>
+    <enumeration value="B61"/>
+    <enumeration value="B62"/>
+    <enumeration value="B63"/>
+    <enumeration value="B64"/>
+    <enumeration value="B66"/>
+    <enumeration value="B67"/>
+    <enumeration value="B68"/>
+    <enumeration value="B69"/>
+    <enumeration value="B7"/>
+    <enumeration value="B70"/>
+    <enumeration value="B71"/>
+    <enumeration value="B72"/>
+    <enumeration value="B73"/>
+    <enumeration value="B74"/>
+    <enumeration value="B75"/>
+    <enumeration value="B76"/>
+    <enumeration value="B77"/>
+    <enumeration value="B78"/>
+    <enumeration value="B79"/>
+    <enumeration value="B8"/>
+    <enumeration value="B80"/>
+    <enumeration value="B81"/>
+    <enumeration value="B82"/>
+    <enumeration value="B83"/>
+    <enumeration value="B84"/>
+    <enumeration value="B85"/>
+    <enumeration value="B86"/>
+    <enumeration value="B87"/>
+    <enumeration value="B88"/>
+    <enumeration value="B89"/>
+    <enumeration value="B90"/>
+    <enumeration value="B91"/>
+    <enumeration value="B92"/>
+    <enumeration value="B93"/>
+    <enumeration value="B94"/>
+    <enumeration value="B95"/>
+    <enumeration value="B96"/>
+    <enumeration value="B97"/>
+    <enumeration value="B98"/>
+    <enumeration value="B99"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BB"/>
+    <enumeration value="BFT"/>
+    <enumeration value="BHP"/>
+    <enumeration value="BIL"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BP"/>
+    <enumeration value="BPM"/>
+    <enumeration value="BQL"/>
+    <enumeration value="BTU"/>
+    <enumeration value="BUA"/>
+    <enumeration value="BUI"/>
+    <enumeration value="C0"/>
+    <enumeration value="C10"/>
+    <enumeration value="C11"/>
+    <enumeration value="C12"/>
+    <enumeration value="C13"/>
+    <enumeration value="C14"/>
+    <enumeration value="C15"/>
+    <enumeration value="C16"/>
+    <enumeration value="C17"/>
+    <enumeration value="C18"/>
+    <enumeration value="C19"/>
+    <enumeration value="C20"/>
+    <enumeration value="C21"/>
+    <enumeration value="C22"/>
+    <enumeration value="C23"/>
+    <enumeration value="C24"/>
+    <enumeration value="C25"/>
+    <enumeration value="C26"/>
+    <enumeration value="C27"/>
+    <enumeration value="C28"/>
+    <enumeration value="C29"/>
+    <enumeration value="C3"/>
+    <enumeration value="C30"/>
+    <enumeration value="C31"/>
+    <enumeration value="C32"/>
+    <enumeration value="C33"/>
+    <enumeration value="C34"/>
+    <enumeration value="C35"/>
+    <enumeration value="C36"/>
+    <enumeration value="C37"/>
+    <enumeration value="C38"/>
+    <enumeration value="C39"/>
+    <enumeration value="C40"/>
+    <enumeration value="C41"/>
+    <enumeration value="C42"/>
+    <enumeration value="C43"/>
+    <enumeration value="C44"/>
+    <enumeration value="C45"/>
+    <enumeration value="C46"/>
+    <enumeration value="C47"/>
+    <enumeration value="C48"/>
+    <enumeration value="C49"/>
+    <enumeration value="C50"/>
+    <enumeration value="C51"/>
+    <enumeration value="C52"/>
+    <enumeration value="C53"/>
+    <enumeration value="C54"/>
+    <enumeration value="C55"/>
+    <enumeration value="C56"/>
+    <enumeration value="C57"/>
+    <enumeration value="C58"/>
+    <enumeration value="C59"/>
+    <enumeration value="C60"/>
+    <enumeration value="C61"/>
+    <enumeration value="C62"/>
+    <enumeration value="C63"/>
+    <enumeration value="C64"/>
+    <enumeration value="C65"/>
+    <enumeration value="C66"/>
+    <enumeration value="C67"/>
+    <enumeration value="C68"/>
+    <enumeration value="C69"/>
+    <enumeration value="C7"/>
+    <enumeration value="C70"/>
+    <enumeration value="C71"/>
+    <enumeration value="C72"/>
+    <enumeration value="C73"/>
+    <enumeration value="C74"/>
+    <enumeration value="C75"/>
+    <enumeration value="C76"/>
+    <enumeration value="C78"/>
+    <enumeration value="C79"/>
+    <enumeration value="C8"/>
+    <enumeration value="C80"/>
+    <enumeration value="C81"/>
+    <enumeration value="C82"/>
+    <enumeration value="C83"/>
+    <enumeration value="C84"/>
+    <enumeration value="C85"/>
+    <enumeration value="C86"/>
+    <enumeration value="C87"/>
+    <enumeration value="C88"/>
+    <enumeration value="C89"/>
+    <enumeration value="C9"/>
+    <enumeration value="C90"/>
+    <enumeration value="C91"/>
+    <enumeration value="C92"/>
+    <enumeration value="C93"/>
+    <enumeration value="C94"/>
+    <enumeration value="C95"/>
+    <enumeration value="C96"/>
+    <enumeration value="C97"/>
+    <enumeration value="C99"/>
+    <enumeration value="CCT"/>
+    <enumeration value="CDL"/>
+    <enumeration value="CEL"/>
+    <enumeration value="CEN"/>
+    <enumeration value="CG"/>
+    <enumeration value="CGM"/>
+    <enumeration value="CKG"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLT"/>
+    <enumeration value="CMK"/>
+    <enumeration value="CMQ"/>
+    <enumeration value="CMT"/>
+    <enumeration value="CNP"/>
+    <enumeration value="CNT"/>
+    <enumeration value="COU"/>
+    <enumeration value="CTG"/>
+    <enumeration value="CTM"/>
+    <enumeration value="CTN"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CWA"/>
+    <enumeration value="CWI"/>
+    <enumeration value="D03"/>
+    <enumeration value="D04"/>
+    <enumeration value="D1"/>
+    <enumeration value="D10"/>
+    <enumeration value="D11"/>
+    <enumeration value="D12"/>
+    <enumeration value="D13"/>
+    <enumeration value="D15"/>
+    <enumeration value="D16"/>
+    <enumeration value="D17"/>
+    <enumeration value="D18"/>
+    <enumeration value="D19"/>
+    <enumeration value="D2"/>
+    <enumeration value="D20"/>
+    <enumeration value="D21"/>
+    <enumeration value="D22"/>
+    <enumeration value="D23"/>
+    <enumeration value="D24"/>
+    <enumeration value="D25"/>
+    <enumeration value="D26"/>
+    <enumeration value="D27"/>
+    <enumeration value="D29"/>
+    <enumeration value="D30"/>
+    <enumeration value="D31"/>
+    <enumeration value="D32"/>
+    <enumeration value="D33"/>
+    <enumeration value="D34"/>
+    <enumeration value="D36"/>
+    <enumeration value="D41"/>
+    <enumeration value="D42"/>
+    <enumeration value="D43"/>
+    <enumeration value="D44"/>
+    <enumeration value="D45"/>
+    <enumeration value="D46"/>
+    <enumeration value="D47"/>
+    <enumeration value="D48"/>
+    <enumeration value="D49"/>
+    <enumeration value="D5"/>
+    <enumeration value="D50"/>
+    <enumeration value="D51"/>
+    <enumeration value="D52"/>
+    <enumeration value="D53"/>
+    <enumeration value="D54"/>
+    <enumeration value="D55"/>
+    <enumeration value="D56"/>
+    <enumeration value="D57"/>
+    <enumeration value="D58"/>
+    <enumeration value="D59"/>
+    <enumeration value="D6"/>
+    <enumeration value="D60"/>
+    <enumeration value="D61"/>
+    <enumeration value="D62"/>
+    <enumeration value="D63"/>
+    <enumeration value="D65"/>
+    <enumeration value="D68"/>
+    <enumeration value="D69"/>
+    <enumeration value="D73"/>
+    <enumeration value="D74"/>
+    <enumeration value="D77"/>
+    <enumeration value="D78"/>
+    <enumeration value="D80"/>
+    <enumeration value="D81"/>
+    <enumeration value="D82"/>
+    <enumeration value="D83"/>
+    <enumeration value="D85"/>
+    <enumeration value="D86"/>
+    <enumeration value="D87"/>
+    <enumeration value="D88"/>
+    <enumeration value="D89"/>
+    <enumeration value="D91"/>
+    <enumeration value="D93"/>
+    <enumeration value="D94"/>
+    <enumeration value="D95"/>
+    <enumeration value="DAA"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAY"/>
+    <enumeration value="DB"/>
+    <enumeration value="DBM"/>
+    <enumeration value="DBW"/>
+    <enumeration value="DD"/>
+    <enumeration value="DEC"/>
+    <enumeration value="DG"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DLT"/>
+    <enumeration value="DMA"/>
+    <enumeration value="DMK"/>
+    <enumeration value="DMO"/>
+    <enumeration value="DMQ"/>
+    <enumeration value="DMT"/>
+    <enumeration value="DN"/>
+    <enumeration value="DPC"/>
+    <enumeration value="DPR"/>
+    <enumeration value="DPT"/>
+    <enumeration value="DRA"/>
+    <enumeration value="DRI"/>
+    <enumeration value="DRL"/>
+    <enumeration value="DT"/>
+    <enumeration value="DTN"/>
+    <enumeration value="DWT"/>
+    <enumeration value="DZN"/>
+    <enumeration value="DZP"/>
+    <enumeration value="E01"/>
+    <enumeration value="E07"/>
+    <enumeration value="E08"/>
+    <enumeration value="E09"/>
+    <enumeration value="E10"/>
+    <enumeration value="E12"/>
+    <enumeration value="E14"/>
+    <enumeration value="E15"/>
+    <enumeration value="E16"/>
+    <enumeration value="E17"/>
+    <enumeration value="E18"/>
+    <enumeration value="E19"/>
+    <enumeration value="E20"/>
+    <enumeration value="E21"/>
+    <enumeration value="E22"/>
+    <enumeration value="E23"/>
+    <enumeration value="E25"/>
+    <enumeration value="E27"/>
+    <enumeration value="E28"/>
+    <enumeration value="E30"/>
+    <enumeration value="E31"/>
+    <enumeration value="E32"/>
+    <enumeration value="E33"/>
+    <enumeration value="E34"/>
+    <enumeration value="E35"/>
+    <enumeration value="E36"/>
+    <enumeration value="E37"/>
+    <enumeration value="E38"/>
+    <enumeration value="E39"/>
+    <enumeration value="E4"/>
+    <enumeration value="E40"/>
+    <enumeration value="E41"/>
+    <enumeration value="E42"/>
+    <enumeration value="E43"/>
+    <enumeration value="E44"/>
+    <enumeration value="E45"/>
+    <enumeration value="E46"/>
+    <enumeration value="E47"/>
+    <enumeration value="E48"/>
+    <enumeration value="E49"/>
+    <enumeration value="E50"/>
+    <enumeration value="E51"/>
+    <enumeration value="E52"/>
+    <enumeration value="E53"/>
+    <enumeration value="E54"/>
+    <enumeration value="E55"/>
+    <enumeration value="E56"/>
+    <enumeration value="E57"/>
+    <enumeration value="E58"/>
+    <enumeration value="E59"/>
+    <enumeration value="E60"/>
+    <enumeration value="E61"/>
+    <enumeration value="E62"/>
+    <enumeration value="E63"/>
+    <enumeration value="E64"/>
+    <enumeration value="E65"/>
+    <enumeration value="E66"/>
+    <enumeration value="E67"/>
+    <enumeration value="E68"/>
+    <enumeration value="E69"/>
+    <enumeration value="E70"/>
+    <enumeration value="E71"/>
+    <enumeration value="E72"/>
+    <enumeration value="E73"/>
+    <enumeration value="E74"/>
+    <enumeration value="E75"/>
+    <enumeration value="E76"/>
+    <enumeration value="E77"/>
+    <enumeration value="E78"/>
+    <enumeration value="E79"/>
+    <enumeration value="E80"/>
+    <enumeration value="E81"/>
+    <enumeration value="E82"/>
+    <enumeration value="E83"/>
+    <enumeration value="E84"/>
+    <enumeration value="E85"/>
+    <enumeration value="E86"/>
+    <enumeration value="E87"/>
+    <enumeration value="E88"/>
+    <enumeration value="E89"/>
+    <enumeration value="E90"/>
+    <enumeration value="E91"/>
+    <enumeration value="E92"/>
+    <enumeration value="E93"/>
+    <enumeration value="E94"/>
+    <enumeration value="E95"/>
+    <enumeration value="E96"/>
+    <enumeration value="E97"/>
+    <enumeration value="E98"/>
+    <enumeration value="E99"/>
+    <enumeration value="EA"/>
+    <enumeration value="EB"/>
+    <enumeration value="EQ"/>
+    <enumeration value="F01"/>
+    <enumeration value="F02"/>
+    <enumeration value="F03"/>
+    <enumeration value="F04"/>
+    <enumeration value="F05"/>
+    <enumeration value="F06"/>
+    <enumeration value="F07"/>
+    <enumeration value="F08"/>
+    <enumeration value="F10"/>
+    <enumeration value="F11"/>
+    <enumeration value="F12"/>
+    <enumeration value="F13"/>
+    <enumeration value="F14"/>
+    <enumeration value="F15"/>
+    <enumeration value="F16"/>
+    <enumeration value="F17"/>
+    <enumeration value="F18"/>
+    <enumeration value="F19"/>
+    <enumeration value="F20"/>
+    <enumeration value="F21"/>
+    <enumeration value="F22"/>
+    <enumeration value="F23"/>
+    <enumeration value="F24"/>
+    <enumeration value="F25"/>
+    <enumeration value="F26"/>
+    <enumeration value="F27"/>
+    <enumeration value="F28"/>
+    <enumeration value="F29"/>
+    <enumeration value="F30"/>
+    <enumeration value="F31"/>
+    <enumeration value="F32"/>
+    <enumeration value="F33"/>
+    <enumeration value="F34"/>
+    <enumeration value="F35"/>
+    <enumeration value="F36"/>
+    <enumeration value="F37"/>
+    <enumeration value="F38"/>
+    <enumeration value="F39"/>
+    <enumeration value="F40"/>
+    <enumeration value="F41"/>
+    <enumeration value="F42"/>
+    <enumeration value="F43"/>
+    <enumeration value="F44"/>
+    <enumeration value="F45"/>
+    <enumeration value="F46"/>
+    <enumeration value="F47"/>
+    <enumeration value="F48"/>
+    <enumeration value="F49"/>
+    <enumeration value="F50"/>
+    <enumeration value="F51"/>
+    <enumeration value="F52"/>
+    <enumeration value="F53"/>
+    <enumeration value="F54"/>
+    <enumeration value="F55"/>
+    <enumeration value="F56"/>
+    <enumeration value="F57"/>
+    <enumeration value="F58"/>
+    <enumeration value="F59"/>
+    <enumeration value="F60"/>
+    <enumeration value="F61"/>
+    <enumeration value="F62"/>
+    <enumeration value="F63"/>
+    <enumeration value="F64"/>
+    <enumeration value="F65"/>
+    <enumeration value="F66"/>
+    <enumeration value="F67"/>
+    <enumeration value="F68"/>
+    <enumeration value="F69"/>
+    <enumeration value="F70"/>
+    <enumeration value="F71"/>
+    <enumeration value="F72"/>
+    <enumeration value="F73"/>
+    <enumeration value="F74"/>
+    <enumeration value="F75"/>
+    <enumeration value="F76"/>
+    <enumeration value="F77"/>
+    <enumeration value="F78"/>
+    <enumeration value="F79"/>
+    <enumeration value="F80"/>
+    <enumeration value="F81"/>
+    <enumeration value="F82"/>
+    <enumeration value="F83"/>
+    <enumeration value="F84"/>
+    <enumeration value="F85"/>
+    <enumeration value="F86"/>
+    <enumeration value="F87"/>
+    <enumeration value="F88"/>
+    <enumeration value="F89"/>
+    <enumeration value="F90"/>
+    <enumeration value="F91"/>
+    <enumeration value="F92"/>
+    <enumeration value="F93"/>
+    <enumeration value="F94"/>
+    <enumeration value="F95"/>
+    <enumeration value="F96"/>
+    <enumeration value="F97"/>
+    <enumeration value="F98"/>
+    <enumeration value="F99"/>
+    <enumeration value="FAH"/>
+    <enumeration value="FAR"/>
+    <enumeration value="FBM"/>
+    <enumeration value="FC"/>
+    <enumeration value="FF"/>
+    <enumeration value="FH"/>
+    <enumeration value="FIT"/>
+    <enumeration value="FL"/>
+    <enumeration value="FNU"/>
+    <enumeration value="FOT"/>
+    <enumeration value="FP"/>
+    <enumeration value="FR"/>
+    <enumeration value="FS"/>
+    <enumeration value="FTK"/>
+    <enumeration value="FTQ"/>
+    <enumeration value="G01"/>
+    <enumeration value="G04"/>
+    <enumeration value="G05"/>
+    <enumeration value="G06"/>
+    <enumeration value="G08"/>
+    <enumeration value="G09"/>
+    <enumeration value="G10"/>
+    <enumeration value="G11"/>
+    <enumeration value="G12"/>
+    <enumeration value="G13"/>
+    <enumeration value="G14"/>
+    <enumeration value="G15"/>
+    <enumeration value="G16"/>
+    <enumeration value="G17"/>
+    <enumeration value="G18"/>
+    <enumeration value="G19"/>
+    <enumeration value="G2"/>
+    <enumeration value="G20"/>
+    <enumeration value="G21"/>
+    <enumeration value="G23"/>
+    <enumeration value="G24"/>
+    <enumeration value="G25"/>
+    <enumeration value="G26"/>
+    <enumeration value="G27"/>
+    <enumeration value="G28"/>
+    <enumeration value="G29"/>
+    <enumeration value="G3"/>
+    <enumeration value="G30"/>
+    <enumeration value="G31"/>
+    <enumeration value="G32"/>
+    <enumeration value="G33"/>
+    <enumeration value="G34"/>
+    <enumeration value="G35"/>
+    <enumeration value="G36"/>
+    <enumeration value="G37"/>
+    <enumeration value="G38"/>
+    <enumeration value="G39"/>
+    <enumeration value="G40"/>
+    <enumeration value="G41"/>
+    <enumeration value="G42"/>
+    <enumeration value="G43"/>
+    <enumeration value="G44"/>
+    <enumeration value="G45"/>
+    <enumeration value="G46"/>
+    <enumeration value="G47"/>
+    <enumeration value="G48"/>
+    <enumeration value="G49"/>
+    <enumeration value="G50"/>
+    <enumeration value="G51"/>
+    <enumeration value="G52"/>
+    <enumeration value="G53"/>
+    <enumeration value="G54"/>
+    <enumeration value="G55"/>
+    <enumeration value="G56"/>
+    <enumeration value="G57"/>
+    <enumeration value="G58"/>
+    <enumeration value="G59"/>
+    <enumeration value="G60"/>
+    <enumeration value="G61"/>
+    <enumeration value="G62"/>
+    <enumeration value="G63"/>
+    <enumeration value="G64"/>
+    <enumeration value="G65"/>
+    <enumeration value="G66"/>
+    <enumeration value="G67"/>
+    <enumeration value="G68"/>
+    <enumeration value="G69"/>
+    <enumeration value="G70"/>
+    <enumeration value="G71"/>
+    <enumeration value="G72"/>
+    <enumeration value="G73"/>
+    <enumeration value="G74"/>
+    <enumeration value="G75"/>
+    <enumeration value="G76"/>
+    <enumeration value="G77"/>
+    <enumeration value="G78"/>
+    <enumeration value="G79"/>
+    <enumeration value="G80"/>
+    <enumeration value="G81"/>
+    <enumeration value="G82"/>
+    <enumeration value="G83"/>
+    <enumeration value="G84"/>
+    <enumeration value="G85"/>
+    <enumeration value="G86"/>
+    <enumeration value="G87"/>
+    <enumeration value="G88"/>
+    <enumeration value="G89"/>
+    <enumeration value="G90"/>
+    <enumeration value="G91"/>
+    <enumeration value="G92"/>
+    <enumeration value="G93"/>
+    <enumeration value="G94"/>
+    <enumeration value="G95"/>
+    <enumeration value="G96"/>
+    <enumeration value="G97"/>
+    <enumeration value="G98"/>
+    <enumeration value="G99"/>
+    <enumeration value="GB"/>
+    <enumeration value="GBQ"/>
+    <enumeration value="GDW"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GFI"/>
+    <enumeration value="GGR"/>
+    <enumeration value="GIA"/>
+    <enumeration value="GIC"/>
+    <enumeration value="GII"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GJ"/>
+    <enumeration value="GL"/>
+    <enumeration value="GLD"/>
+    <enumeration value="GLI"/>
+    <enumeration value="GLL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GO"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GRM"/>
+    <enumeration value="GRN"/>
+    <enumeration value="GRO"/>
+    <enumeration value="GV"/>
+    <enumeration value="GWH"/>
+    <enumeration value="H03"/>
+    <enumeration value="H04"/>
+    <enumeration value="H05"/>
+    <enumeration value="H06"/>
+    <enumeration value="H07"/>
+    <enumeration value="H08"/>
+    <enumeration value="H09"/>
+    <enumeration value="H10"/>
+    <enumeration value="H11"/>
+    <enumeration value="H12"/>
+    <enumeration value="H13"/>
+    <enumeration value="H14"/>
+    <enumeration value="H15"/>
+    <enumeration value="H16"/>
+    <enumeration value="H18"/>
+    <enumeration value="H19"/>
+    <enumeration value="H20"/>
+    <enumeration value="H21"/>
+    <enumeration value="H22"/>
+    <enumeration value="H23"/>
+    <enumeration value="H24"/>
+    <enumeration value="H25"/>
+    <enumeration value="H26"/>
+    <enumeration value="H27"/>
+    <enumeration value="H28"/>
+    <enumeration value="H29"/>
+    <enumeration value="H30"/>
+    <enumeration value="H31"/>
+    <enumeration value="H32"/>
+    <enumeration value="H33"/>
+    <enumeration value="H34"/>
+    <enumeration value="H35"/>
+    <enumeration value="H36"/>
+    <enumeration value="H37"/>
+    <enumeration value="H38"/>
+    <enumeration value="H39"/>
+    <enumeration value="H40"/>
+    <enumeration value="H41"/>
+    <enumeration value="H42"/>
+    <enumeration value="H43"/>
+    <enumeration value="H44"/>
+    <enumeration value="H45"/>
+    <enumeration value="H46"/>
+    <enumeration value="H47"/>
+    <enumeration value="H48"/>
+    <enumeration value="H49"/>
+    <enumeration value="H50"/>
+    <enumeration value="H51"/>
+    <enumeration value="H52"/>
+    <enumeration value="H53"/>
+    <enumeration value="H54"/>
+    <enumeration value="H55"/>
+    <enumeration value="H56"/>
+    <enumeration value="H57"/>
+    <enumeration value="H58"/>
+    <enumeration value="H59"/>
+    <enumeration value="H60"/>
+    <enumeration value="H61"/>
+    <enumeration value="H62"/>
+    <enumeration value="H63"/>
+    <enumeration value="H64"/>
+    <enumeration value="H65"/>
+    <enumeration value="H66"/>
+    <enumeration value="H67"/>
+    <enumeration value="H68"/>
+    <enumeration value="H69"/>
+    <enumeration value="H70"/>
+    <enumeration value="H71"/>
+    <enumeration value="H72"/>
+    <enumeration value="H73"/>
+    <enumeration value="H74"/>
+    <enumeration value="H75"/>
+    <enumeration value="H76"/>
+    <enumeration value="H77"/>
+    <enumeration value="H79"/>
+    <enumeration value="H80"/>
+    <enumeration value="H81"/>
+    <enumeration value="H82"/>
+    <enumeration value="H83"/>
+    <enumeration value="H84"/>
+    <enumeration value="H85"/>
+    <enumeration value="H87"/>
+    <enumeration value="H88"/>
+    <enumeration value="H89"/>
+    <enumeration value="H90"/>
+    <enumeration value="H91"/>
+    <enumeration value="H92"/>
+    <enumeration value="H93"/>
+    <enumeration value="H94"/>
+    <enumeration value="H95"/>
+    <enumeration value="H96"/>
+    <enumeration value="H98"/>
+    <enumeration value="H99"/>
+    <enumeration value="HA"/>
+    <enumeration value="HAD"/>
+    <enumeration value="HBA"/>
+    <enumeration value="HBX"/>
+    <enumeration value="HC"/>
+    <enumeration value="HDW"/>
+    <enumeration value="HEA"/>
+    <enumeration value="HGM"/>
+    <enumeration value="HH"/>
+    <enumeration value="HIU"/>
+    <enumeration value="HKM"/>
+    <enumeration value="HLT"/>
+    <enumeration value="HM"/>
+    <enumeration value="HMO"/>
+    <enumeration value="HMQ"/>
+    <enumeration value="HMT"/>
+    <enumeration value="HPA"/>
+    <enumeration value="HTZ"/>
+    <enumeration value="HUR"/>
+    <enumeration value="HWE"/>
+    <enumeration value="IA"/>
+    <enumeration value="IE"/>
+    <enumeration value="INH"/>
+    <enumeration value="INK"/>
+    <enumeration value="INQ"/>
+    <enumeration value="ISD"/>
+    <enumeration value="IU"/>
+    <enumeration value="IUG"/>
+    <enumeration value="IV"/>
+    <enumeration value="J10"/>
+    <enumeration value="J12"/>
+    <enumeration value="J13"/>
+    <enumeration value="J14"/>
+    <enumeration value="J15"/>
+    <enumeration value="J16"/>
+    <enumeration value="J17"/>
+    <enumeration value="J18"/>
+    <enumeration value="J19"/>
+    <enumeration value="J2"/>
+    <enumeration value="J20"/>
+    <enumeration value="J21"/>
+    <enumeration value="J22"/>
+    <enumeration value="J23"/>
+    <enumeration value="J24"/>
+    <enumeration value="J25"/>
+    <enumeration value="J26"/>
+    <enumeration value="J27"/>
+    <enumeration value="J28"/>
+    <enumeration value="J29"/>
+    <enumeration value="J30"/>
+    <enumeration value="J31"/>
+    <enumeration value="J32"/>
+    <enumeration value="J33"/>
+    <enumeration value="J34"/>
+    <enumeration value="J35"/>
+    <enumeration value="J36"/>
+    <enumeration value="J38"/>
+    <enumeration value="J39"/>
+    <enumeration value="J40"/>
+    <enumeration value="J41"/>
+    <enumeration value="J42"/>
+    <enumeration value="J43"/>
+    <enumeration value="J44"/>
+    <enumeration value="J45"/>
+    <enumeration value="J46"/>
+    <enumeration value="J47"/>
+    <enumeration value="J48"/>
+    <enumeration value="J49"/>
+    <enumeration value="J50"/>
+    <enumeration value="J51"/>
+    <enumeration value="J52"/>
+    <enumeration value="J53"/>
+    <enumeration value="J54"/>
+    <enumeration value="J55"/>
+    <enumeration value="J56"/>
+    <enumeration value="J57"/>
+    <enumeration value="J58"/>
+    <enumeration value="J59"/>
+    <enumeration value="J60"/>
+    <enumeration value="J61"/>
+    <enumeration value="J62"/>
+    <enumeration value="J63"/>
+    <enumeration value="J64"/>
+    <enumeration value="J65"/>
+    <enumeration value="J66"/>
+    <enumeration value="J67"/>
+    <enumeration value="J68"/>
+    <enumeration value="J69"/>
+    <enumeration value="J70"/>
+    <enumeration value="J71"/>
+    <enumeration value="J72"/>
+    <enumeration value="J73"/>
+    <enumeration value="J74"/>
+    <enumeration value="J75"/>
+    <enumeration value="J76"/>
+    <enumeration value="J78"/>
+    <enumeration value="J79"/>
+    <enumeration value="J81"/>
+    <enumeration value="J82"/>
+    <enumeration value="J83"/>
+    <enumeration value="J84"/>
+    <enumeration value="J85"/>
+    <enumeration value="J87"/>
+    <enumeration value="J90"/>
+    <enumeration value="J91"/>
+    <enumeration value="J92"/>
+    <enumeration value="J93"/>
+    <enumeration value="J95"/>
+    <enumeration value="J96"/>
+    <enumeration value="J97"/>
+    <enumeration value="J98"/>
+    <enumeration value="J99"/>
+    <enumeration value="JE"/>
+    <enumeration value="JK"/>
+    <enumeration value="JM"/>
+    <enumeration value="JNT"/>
+    <enumeration value="JOU"/>
+    <enumeration value="JPS"/>
+    <enumeration value="JWL"/>
+    <enumeration value="K1"/>
+    <enumeration value="K10"/>
+    <enumeration value="K11"/>
+    <enumeration value="K12"/>
+    <enumeration value="K13"/>
+    <enumeration value="K14"/>
+    <enumeration value="K15"/>
+    <enumeration value="K16"/>
+    <enumeration value="K17"/>
+    <enumeration value="K18"/>
+    <enumeration value="K19"/>
+    <enumeration value="K2"/>
+    <enumeration value="K20"/>
+    <enumeration value="K21"/>
+    <enumeration value="K22"/>
+    <enumeration value="K23"/>
+    <enumeration value="K26"/>
+    <enumeration value="K27"/>
+    <enumeration value="K28"/>
+    <enumeration value="K3"/>
+    <enumeration value="K30"/>
+    <enumeration value="K31"/>
+    <enumeration value="K32"/>
+    <enumeration value="K33"/>
+    <enumeration value="K34"/>
+    <enumeration value="K35"/>
+    <enumeration value="K36"/>
+    <enumeration value="K37"/>
+    <enumeration value="K38"/>
+    <enumeration value="K39"/>
+    <enumeration value="K40"/>
+    <enumeration value="K41"/>
+    <enumeration value="K42"/>
+    <enumeration value="K43"/>
+    <enumeration value="K45"/>
+    <enumeration value="K46"/>
+    <enumeration value="K47"/>
+    <enumeration value="K48"/>
+    <enumeration value="K49"/>
+    <enumeration value="K50"/>
+    <enumeration value="K51"/>
+    <enumeration value="K52"/>
+    <enumeration value="K53"/>
+    <enumeration value="K54"/>
+    <enumeration value="K55"/>
+    <enumeration value="K58"/>
+    <enumeration value="K59"/>
+    <enumeration value="K6"/>
+    <enumeration value="K60"/>
+    <enumeration value="K61"/>
+    <enumeration value="K62"/>
+    <enumeration value="K63"/>
+    <enumeration value="K64"/>
+    <enumeration value="K65"/>
+    <enumeration value="K66"/>
+    <enumeration value="K67"/>
+    <enumeration value="K68"/>
+    <enumeration value="K69"/>
+    <enumeration value="K70"/>
+    <enumeration value="K71"/>
+    <enumeration value="K73"/>
+    <enumeration value="K74"/>
+    <enumeration value="K75"/>
+    <enumeration value="K76"/>
+    <enumeration value="K77"/>
+    <enumeration value="K78"/>
+    <enumeration value="K79"/>
+    <enumeration value="K80"/>
+    <enumeration value="K81"/>
+    <enumeration value="K82"/>
+    <enumeration value="K83"/>
+    <enumeration value="K84"/>
+    <enumeration value="K85"/>
+    <enumeration value="K86"/>
+    <enumeration value="K87"/>
+    <enumeration value="K88"/>
+    <enumeration value="K89"/>
+    <enumeration value="K90"/>
+    <enumeration value="K91"/>
+    <enumeration value="K92"/>
+    <enumeration value="K93"/>
+    <enumeration value="K94"/>
+    <enumeration value="K95"/>
+    <enumeration value="K96"/>
+    <enumeration value="K97"/>
+    <enumeration value="K98"/>
+    <enumeration value="K99"/>
+    <enumeration value="KA"/>
+    <enumeration value="KAT"/>
+    <enumeration value="KB"/>
+    <enumeration value="KBA"/>
+    <enumeration value="KCC"/>
+    <enumeration value="KDW"/>
+    <enumeration value="KEL"/>
+    <enumeration value="KGM"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHY"/>
+    <enumeration value="KHZ"/>
+    <enumeration value="KI"/>
+    <enumeration value="KIC"/>
+    <enumeration value="KIP"/>
+    <enumeration value="KJ"/>
+    <enumeration value="KJO"/>
+    <enumeration value="KL"/>
+    <enumeration value="KLK"/>
+    <enumeration value="KLX"/>
+    <enumeration value="KMA"/>
+    <enumeration value="KMH"/>
+    <enumeration value="KMK"/>
+    <enumeration value="KMQ"/>
+    <enumeration value="KMT"/>
+    <enumeration value="KNI"/>
+    <enumeration value="KNM"/>
+    <enumeration value="KNS"/>
+    <enumeration value="KNT"/>
+    <enumeration value="KO"/>
+    <enumeration value="KPA"/>
+    <enumeration value="KPH"/>
+    <enumeration value="KPO"/>
+    <enumeration value="KPP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KSD"/>
+    <enumeration value="KSH"/>
+    <enumeration value="KT"/>
+    <enumeration value="KTN"/>
+    <enumeration value="KUR"/>
+    <enumeration value="KVA"/>
+    <enumeration value="KVR"/>
+    <enumeration value="KVT"/>
+    <enumeration value="KW"/>
+    <enumeration value="KWH"/>
+    <enumeration value="KWN"/>
+    <enumeration value="KWO"/>
+    <enumeration value="KWS"/>
+    <enumeration value="KWT"/>
+    <enumeration value="KWY"/>
+    <enumeration value="KX"/>
+    <enumeration value="L10"/>
+    <enumeration value="L11"/>
+    <enumeration value="L12"/>
+    <enumeration value="L13"/>
+    <enumeration value="L14"/>
+    <enumeration value="L15"/>
+    <enumeration value="L16"/>
+    <enumeration value="L17"/>
+    <enumeration value="L18"/>
+    <enumeration value="L19"/>
+    <enumeration value="L2"/>
+    <enumeration value="L20"/>
+    <enumeration value="L21"/>
+    <enumeration value="L23"/>
+    <enumeration value="L24"/>
+    <enumeration value="L25"/>
+    <enumeration value="L26"/>
+    <enumeration value="L27"/>
+    <enumeration value="L28"/>
+    <enumeration value="L29"/>
+    <enumeration value="L30"/>
+    <enumeration value="L31"/>
+    <enumeration value="L32"/>
+    <enumeration value="L33"/>
+    <enumeration value="L34"/>
+    <enumeration value="L35"/>
+    <enumeration value="L36"/>
+    <enumeration value="L37"/>
+    <enumeration value="L38"/>
+    <enumeration value="L39"/>
+    <enumeration value="L40"/>
+    <enumeration value="L41"/>
+    <enumeration value="L42"/>
+    <enumeration value="L43"/>
+    <enumeration value="L44"/>
+    <enumeration value="L45"/>
+    <enumeration value="L46"/>
+    <enumeration value="L47"/>
+    <enumeration value="L48"/>
+    <enumeration value="L49"/>
+    <enumeration value="L50"/>
+    <enumeration value="L51"/>
+    <enumeration value="L52"/>
+    <enumeration value="L53"/>
+    <enumeration value="L54"/>
+    <enumeration value="L55"/>
+    <enumeration value="L56"/>
+    <enumeration value="L57"/>
+    <enumeration value="L58"/>
+    <enumeration value="L59"/>
+    <enumeration value="L60"/>
+    <enumeration value="L63"/>
+    <enumeration value="L64"/>
+    <enumeration value="L65"/>
+    <enumeration value="L66"/>
+    <enumeration value="L67"/>
+    <enumeration value="L68"/>
+    <enumeration value="L69"/>
+    <enumeration value="L70"/>
+    <enumeration value="L71"/>
+    <enumeration value="L72"/>
+    <enumeration value="L73"/>
+    <enumeration value="L74"/>
+    <enumeration value="L75"/>
+    <enumeration value="L76"/>
+    <enumeration value="L77"/>
+    <enumeration value="L78"/>
+    <enumeration value="L79"/>
+    <enumeration value="L80"/>
+    <enumeration value="L81"/>
+    <enumeration value="L82"/>
+    <enumeration value="L83"/>
+    <enumeration value="L84"/>
+    <enumeration value="L85"/>
+    <enumeration value="L86"/>
+    <enumeration value="L87"/>
+    <enumeration value="L88"/>
+    <enumeration value="L89"/>
+    <enumeration value="L90"/>
+    <enumeration value="L91"/>
+    <enumeration value="L92"/>
+    <enumeration value="L93"/>
+    <enumeration value="L94"/>
+    <enumeration value="L95"/>
+    <enumeration value="L96"/>
+    <enumeration value="L98"/>
+    <enumeration value="L99"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAC"/>
+    <enumeration value="LBR"/>
+    <enumeration value="LBT"/>
+    <enumeration value="LD"/>
+    <enumeration value="LEF"/>
+    <enumeration value="LF"/>
+    <enumeration value="LH"/>
+    <enumeration value="LK"/>
+    <enumeration value="LM"/>
+    <enumeration value="LN"/>
+    <enumeration value="LO"/>
+    <enumeration value="LP"/>
+    <enumeration value="LPA"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LTN"/>
+    <enumeration value="LTR"/>
+    <enumeration value="LUB"/>
+    <enumeration value="LUM"/>
+    <enumeration value="LUX"/>
+    <enumeration value="LY"/>
+    <enumeration value="M1"/>
+    <enumeration value="M10"/>
+    <enumeration value="M11"/>
+    <enumeration value="M12"/>
+    <enumeration value="M13"/>
+    <enumeration value="M14"/>
+    <enumeration value="M15"/>
+    <enumeration value="M16"/>
+    <enumeration value="M17"/>
+    <enumeration value="M18"/>
+    <enumeration value="M19"/>
+    <enumeration value="M20"/>
+    <enumeration value="M21"/>
+    <enumeration value="M22"/>
+    <enumeration value="M23"/>
+    <enumeration value="M24"/>
+    <enumeration value="M25"/>
+    <enumeration value="M26"/>
+    <enumeration value="M27"/>
+    <enumeration value="M29"/>
+    <enumeration value="M30"/>
+    <enumeration value="M31"/>
+    <enumeration value="M32"/>
+    <enumeration value="M33"/>
+    <enumeration value="M34"/>
+    <enumeration value="M35"/>
+    <enumeration value="M36"/>
+    <enumeration value="M37"/>
+    <enumeration value="M38"/>
+    <enumeration value="M39"/>
+    <enumeration value="M4"/>
+    <enumeration value="M40"/>
+    <enumeration value="M41"/>
+    <enumeration value="M42"/>
+    <enumeration value="M43"/>
+    <enumeration value="M44"/>
+    <enumeration value="M45"/>
+    <enumeration value="M46"/>
+    <enumeration value="M47"/>
+    <enumeration value="M48"/>
+    <enumeration value="M49"/>
+    <enumeration value="M5"/>
+    <enumeration value="M50"/>
+    <enumeration value="M51"/>
+    <enumeration value="M52"/>
+    <enumeration value="M53"/>
+    <enumeration value="M55"/>
+    <enumeration value="M56"/>
+    <enumeration value="M57"/>
+    <enumeration value="M58"/>
+    <enumeration value="M59"/>
+    <enumeration value="M60"/>
+    <enumeration value="M61"/>
+    <enumeration value="M62"/>
+    <enumeration value="M63"/>
+    <enumeration value="M64"/>
+    <enumeration value="M65"/>
+    <enumeration value="M66"/>
+    <enumeration value="M67"/>
+    <enumeration value="M68"/>
+    <enumeration value="M69"/>
+    <enumeration value="M7"/>
+    <enumeration value="M70"/>
+    <enumeration value="M71"/>
+    <enumeration value="M72"/>
+    <enumeration value="M73"/>
+    <enumeration value="M74"/>
+    <enumeration value="M75"/>
+    <enumeration value="M76"/>
+    <enumeration value="M77"/>
+    <enumeration value="M78"/>
+    <enumeration value="M79"/>
+    <enumeration value="M80"/>
+    <enumeration value="M81"/>
+    <enumeration value="M82"/>
+    <enumeration value="M83"/>
+    <enumeration value="M84"/>
+    <enumeration value="M85"/>
+    <enumeration value="M86"/>
+    <enumeration value="M87"/>
+    <enumeration value="M88"/>
+    <enumeration value="M89"/>
+    <enumeration value="M9"/>
+    <enumeration value="M90"/>
+    <enumeration value="M91"/>
+    <enumeration value="M92"/>
+    <enumeration value="M93"/>
+    <enumeration value="M94"/>
+    <enumeration value="M95"/>
+    <enumeration value="M96"/>
+    <enumeration value="M97"/>
+    <enumeration value="M98"/>
+    <enumeration value="M99"/>
+    <enumeration value="MAH"/>
+    <enumeration value="MAL"/>
+    <enumeration value="MAM"/>
+    <enumeration value="MAR"/>
+    <enumeration value="MAW"/>
+    <enumeration value="MBE"/>
+    <enumeration value="MBF"/>
+    <enumeration value="MBR"/>
+    <enumeration value="MC"/>
+    <enumeration value="MCU"/>
+    <enumeration value="MD"/>
+    <enumeration value="MGM"/>
+    <enumeration value="MHZ"/>
+    <enumeration value="MIK"/>
+    <enumeration value="MIL"/>
+    <enumeration value="MIN"/>
+    <enumeration value="MIO"/>
+    <enumeration value="MIU"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MKM"/>
+    <enumeration value="MKW"/>
+    <enumeration value="MLD"/>
+    <enumeration value="MLT"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MMQ"/>
+    <enumeration value="MMT"/>
+    <enumeration value="MND"/>
+    <enumeration value="MNJ"/>
+    <enumeration value="MON"/>
+    <enumeration value="MPA"/>
+    <enumeration value="MQD"/>
+    <enumeration value="MQH"/>
+    <enumeration value="MQM"/>
+    <enumeration value="MQS"/>
+    <enumeration value="MQW"/>
+    <enumeration value="MRD"/>
+    <enumeration value="MRM"/>
+    <enumeration value="MRW"/>
+    <enumeration value="MSK"/>
+    <enumeration value="MTK"/>
+    <enumeration value="MTQ"/>
+    <enumeration value="MTR"/>
+    <enumeration value="MTS"/>
+    <enumeration value="MTZ"/>
+    <enumeration value="MVA"/>
+    <enumeration value="MWH"/>
+    <enumeration value="N1"/>
+    <enumeration value="N10"/>
+    <enumeration value="N11"/>
+    <enumeration value="N12"/>
+    <enumeration value="N13"/>
+    <enumeration value="N14"/>
+    <enumeration value="N15"/>
+    <enumeration value="N16"/>
+    <enumeration value="N17"/>
+    <enumeration value="N18"/>
+    <enumeration value="N19"/>
+    <enumeration value="N20"/>
+    <enumeration value="N21"/>
+    <enumeration value="N22"/>
+    <enumeration value="N23"/>
+    <enumeration value="N24"/>
+    <enumeration value="N25"/>
+    <enumeration value="N26"/>
+    <enumeration value="N27"/>
+    <enumeration value="N28"/>
+    <enumeration value="N29"/>
+    <enumeration value="N3"/>
+    <enumeration value="N30"/>
+    <enumeration value="N31"/>
+    <enumeration value="N32"/>
+    <enumeration value="N33"/>
+    <enumeration value="N34"/>
+    <enumeration value="N35"/>
+    <enumeration value="N36"/>
+    <enumeration value="N37"/>
+    <enumeration value="N38"/>
+    <enumeration value="N39"/>
+    <enumeration value="N40"/>
+    <enumeration value="N41"/>
+    <enumeration value="N42"/>
+    <enumeration value="N43"/>
+    <enumeration value="N44"/>
+    <enumeration value="N45"/>
+    <enumeration value="N46"/>
+    <enumeration value="N47"/>
+    <enumeration value="N48"/>
+    <enumeration value="N49"/>
+    <enumeration value="N50"/>
+    <enumeration value="N51"/>
+    <enumeration value="N52"/>
+    <enumeration value="N53"/>
+    <enumeration value="N54"/>
+    <enumeration value="N55"/>
+    <enumeration value="N56"/>
+    <enumeration value="N57"/>
+    <enumeration value="N58"/>
+    <enumeration value="N59"/>
+    <enumeration value="N60"/>
+    <enumeration value="N61"/>
+    <enumeration value="N62"/>
+    <enumeration value="N63"/>
+    <enumeration value="N64"/>
+    <enumeration value="N65"/>
+    <enumeration value="N66"/>
+    <enumeration value="N67"/>
+    <enumeration value="N68"/>
+    <enumeration value="N69"/>
+    <enumeration value="N70"/>
+    <enumeration value="N71"/>
+    <enumeration value="N72"/>
+    <enumeration value="N73"/>
+    <enumeration value="N74"/>
+    <enumeration value="N75"/>
+    <enumeration value="N76"/>
+    <enumeration value="N77"/>
+    <enumeration value="N78"/>
+    <enumeration value="N79"/>
+    <enumeration value="N80"/>
+    <enumeration value="N81"/>
+    <enumeration value="N82"/>
+    <enumeration value="N83"/>
+    <enumeration value="N84"/>
+    <enumeration value="N85"/>
+    <enumeration value="N86"/>
+    <enumeration value="N87"/>
+    <enumeration value="N88"/>
+    <enumeration value="N89"/>
+    <enumeration value="N90"/>
+    <enumeration value="N91"/>
+    <enumeration value="N92"/>
+    <enumeration value="N93"/>
+    <enumeration value="N94"/>
+    <enumeration value="N95"/>
+    <enumeration value="N96"/>
+    <enumeration value="N97"/>
+    <enumeration value="N98"/>
+    <enumeration value="N99"/>
+    <enumeration value="NA"/>
+    <enumeration value="NAR"/>
+    <enumeration value="NCL"/>
+    <enumeration value="NEW"/>
+    <enumeration value="NF"/>
+    <enumeration value="NIL"/>
+    <enumeration value="NIU"/>
+    <enumeration value="NL"/>
+    <enumeration value="NM3"/>
+    <enumeration value="NMI"/>
+    <enumeration value="NMP"/>
+    <enumeration value="NPT"/>
+    <enumeration value="NT"/>
+    <enumeration value="NTU"/>
+    <enumeration value="NU"/>
+    <enumeration value="NX"/>
+    <enumeration value="OA"/>
+    <enumeration value="ODE"/>
+    <enumeration value="ODG"/>
+    <enumeration value="ODK"/>
+    <enumeration value="ODM"/>
+    <enumeration value="OHM"/>
+    <enumeration value="ON"/>
+    <enumeration value="ONZ"/>
+    <enumeration value="OPM"/>
+    <enumeration value="OT"/>
+    <enumeration value="OZA"/>
+    <enumeration value="OZI"/>
+    <enumeration value="P1"/>
+    <enumeration value="P10"/>
+    <enumeration value="P11"/>
+    <enumeration value="P12"/>
+    <enumeration value="P13"/>
+    <enumeration value="P14"/>
+    <enumeration value="P15"/>
+    <enumeration value="P16"/>
+    <enumeration value="P17"/>
+    <enumeration value="P18"/>
+    <enumeration value="P19"/>
+    <enumeration value="P2"/>
+    <enumeration value="P20"/>
+    <enumeration value="P21"/>
+    <enumeration value="P22"/>
+    <enumeration value="P23"/>
+    <enumeration value="P24"/>
+    <enumeration value="P25"/>
+    <enumeration value="P26"/>
+    <enumeration value="P27"/>
+    <enumeration value="P28"/>
+    <enumeration value="P29"/>
+    <enumeration value="P30"/>
+    <enumeration value="P31"/>
+    <enumeration value="P32"/>
+    <enumeration value="P33"/>
+    <enumeration value="P34"/>
+    <enumeration value="P35"/>
+    <enumeration value="P36"/>
+    <enumeration value="P37"/>
+    <enumeration value="P38"/>
+    <enumeration value="P39"/>
+    <enumeration value="P40"/>
+    <enumeration value="P41"/>
+    <enumeration value="P42"/>
+    <enumeration value="P43"/>
+    <enumeration value="P44"/>
+    <enumeration value="P45"/>
+    <enumeration value="P46"/>
+    <enumeration value="P47"/>
+    <enumeration value="P48"/>
+    <enumeration value="P49"/>
+    <enumeration value="P5"/>
+    <enumeration value="P50"/>
+    <enumeration value="P51"/>
+    <enumeration value="P52"/>
+    <enumeration value="P53"/>
+    <enumeration value="P54"/>
+    <enumeration value="P55"/>
+    <enumeration value="P56"/>
+    <enumeration value="P57"/>
+    <enumeration value="P58"/>
+    <enumeration value="P59"/>
+    <enumeration value="P60"/>
+    <enumeration value="P61"/>
+    <enumeration value="P62"/>
+    <enumeration value="P63"/>
+    <enumeration value="P64"/>
+    <enumeration value="P65"/>
+    <enumeration value="P66"/>
+    <enumeration value="P67"/>
+    <enumeration value="P68"/>
+    <enumeration value="P69"/>
+    <enumeration value="P70"/>
+    <enumeration value="P71"/>
+    <enumeration value="P72"/>
+    <enumeration value="P73"/>
+    <enumeration value="P74"/>
+    <enumeration value="P75"/>
+    <enumeration value="P76"/>
+    <enumeration value="P77"/>
+    <enumeration value="P78"/>
+    <enumeration value="P79"/>
+    <enumeration value="P80"/>
+    <enumeration value="P81"/>
+    <enumeration value="P82"/>
+    <enumeration value="P83"/>
+    <enumeration value="P84"/>
+    <enumeration value="P85"/>
+    <enumeration value="P86"/>
+    <enumeration value="P87"/>
+    <enumeration value="P88"/>
+    <enumeration value="P89"/>
+    <enumeration value="P90"/>
+    <enumeration value="P91"/>
+    <enumeration value="P92"/>
+    <enumeration value="P93"/>
+    <enumeration value="P94"/>
+    <enumeration value="P95"/>
+    <enumeration value="P96"/>
+    <enumeration value="P97"/>
+    <enumeration value="P98"/>
+    <enumeration value="P99"/>
+    <enumeration value="PAL"/>
+    <enumeration value="PD"/>
+    <enumeration value="PFL"/>
+    <enumeration value="PGL"/>
+    <enumeration value="PI"/>
+    <enumeration value="PLA"/>
+    <enumeration value="PO"/>
+    <enumeration value="PQ"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PTD"/>
+    <enumeration value="PTI"/>
+    <enumeration value="PTL"/>
+    <enumeration value="PTN"/>
+    <enumeration value="Q10"/>
+    <enumeration value="Q11"/>
+    <enumeration value="Q12"/>
+    <enumeration value="Q13"/>
+    <enumeration value="Q14"/>
+    <enumeration value="Q15"/>
+    <enumeration value="Q16"/>
+    <enumeration value="Q17"/>
+    <enumeration value="Q18"/>
+    <enumeration value="Q19"/>
+    <enumeration value="Q20"/>
+    <enumeration value="Q21"/>
+    <enumeration value="Q22"/>
+    <enumeration value="Q23"/>
+    <enumeration value="Q24"/>
+    <enumeration value="Q25"/>
+    <enumeration value="Q26"/>
+    <enumeration value="Q27"/>
+    <enumeration value="Q28"/>
+    <enumeration value="Q29"/>
+    <enumeration value="Q3"/>
+    <enumeration value="Q30"/>
+    <enumeration value="Q31"/>
+    <enumeration value="Q32"/>
+    <enumeration value="Q33"/>
+    <enumeration value="Q34"/>
+    <enumeration value="Q35"/>
+    <enumeration value="Q36"/>
+    <enumeration value="Q37"/>
+    <enumeration value="Q38"/>
+    <enumeration value="Q39"/>
+    <enumeration value="Q40"/>
+    <enumeration value="Q41"/>
+    <enumeration value="Q42"/>
+    <enumeration value="QA"/>
+    <enumeration value="QAN"/>
+    <enumeration value="QB"/>
+    <enumeration value="QR"/>
+    <enumeration value="QTD"/>
+    <enumeration value="QTI"/>
+    <enumeration value="QTL"/>
+    <enumeration value="QTR"/>
+    <enumeration value="R1"/>
+    <enumeration value="R9"/>
+    <enumeration value="RH"/>
+    <enumeration value="RM"/>
+    <enumeration value="ROM"/>
+    <enumeration value="RP"/>
+    <enumeration value="RPM"/>
+    <enumeration value="RPS"/>
+    <enumeration value="RT"/>
+    <enumeration value="S3"/>
+    <enumeration value="S4"/>
+    <enumeration value="SAN"/>
+    <enumeration value="SCO"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SEC"/>
+    <enumeration value="SET"/>
+    <enumeration value="SG"/>
+    <enumeration value="SIE"/>
+    <enumeration value="SM3"/>
+    <enumeration value="SMI"/>
+    <enumeration value="SQ"/>
+    <enumeration value="SQR"/>
+    <enumeration value="SR"/>
+    <enumeration value="STC"/>
+    <enumeration value="STI"/>
+    <enumeration value="STK"/>
+    <enumeration value="STL"/>
+    <enumeration value="STN"/>
+    <enumeration value="STW"/>
+    <enumeration value="SW"/>
+    <enumeration value="SX"/>
+    <enumeration value="SYR"/>
+    <enumeration value="T0"/>
+    <enumeration value="T3"/>
+    <enumeration value="TAH"/>
+    <enumeration value="TAN"/>
+    <enumeration value="TI"/>
+    <enumeration value="TIC"/>
+    <enumeration value="TIP"/>
+    <enumeration value="TKM"/>
+    <enumeration value="TMS"/>
+    <enumeration value="TNE"/>
+    <enumeration value="TP"/>
+    <enumeration value="TPI"/>
+    <enumeration value="TPR"/>
+    <enumeration value="TQD"/>
+    <enumeration value="TRL"/>
+    <enumeration value="TST"/>
+    <enumeration value="TTS"/>
+    <enumeration value="U1"/>
+    <enumeration value="U2"/>
+    <enumeration value="UB"/>
+    <enumeration value="UC"/>
+    <enumeration value="VA"/>
+    <enumeration value="VLT"/>
+    <enumeration value="VP"/>
+    <enumeration value="W2"/>
+    <enumeration value="WA"/>
+    <enumeration value="WB"/>
+    <enumeration value="WCD"/>
+    <enumeration value="WE"/>
+    <enumeration value="WEB"/>
+    <enumeration value="WEE"/>
+    <enumeration value="WG"/>
+    <enumeration value="WHR"/>
+    <enumeration value="WM"/>
+    <enumeration value="WSD"/>
+    <enumeration value="WTT"/>
+    <enumeration value="X1"/>
+    <enumeration value="X1A"/>
+    <enumeration value="X1B"/>
+    <enumeration value="X1D"/>
+    <enumeration value="X1F"/>
+    <enumeration value="X1G"/>
+    <enumeration value="X1W"/>
+    <enumeration value="X2C"/>
+    <enumeration value="X3A"/>
+    <enumeration value="X3H"/>
+    <enumeration value="X43"/>
+    <enumeration value="X44"/>
+    <enumeration value="X4A"/>
+    <enumeration value="X4B"/>
+    <enumeration value="X4C"/>
+    <enumeration value="X4D"/>
+    <enumeration value="X4F"/>
+    <enumeration value="X4G"/>
+    <enumeration value="X4H"/>
+    <enumeration value="X5H"/>
+    <enumeration value="X5L"/>
+    <enumeration value="X5M"/>
+    <enumeration value="X6H"/>
+    <enumeration value="X6P"/>
+    <enumeration value="X7A"/>
+    <enumeration value="X7B"/>
+    <enumeration value="X8A"/>
+    <enumeration value="X8B"/>
+    <enumeration value="X8C"/>
+    <enumeration value="XAA"/>
+    <enumeration value="XAB"/>
+    <enumeration value="XAC"/>
+    <enumeration value="XAD"/>
+    <enumeration value="XAE"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAH"/>
+    <enumeration value="XAI"/>
+    <enumeration value="XAJ"/>
+    <enumeration value="XAL"/>
+    <enumeration value="XAM"/>
+    <enumeration value="XAP"/>
+    <enumeration value="XAT"/>
+    <enumeration value="XAV"/>
+    <enumeration value="XB4"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XBE"/>
+    <enumeration value="XBF"/>
+    <enumeration value="XBG"/>
+    <enumeration value="XBH"/>
+    <enumeration value="XBI"/>
+    <enumeration value="XBJ"/>
+    <enumeration value="XBK"/>
+    <enumeration value="XBL"/>
+    <enumeration value="XBM"/>
+    <enumeration value="XBN"/>
+    <enumeration value="XBO"/>
+    <enumeration value="XBP"/>
+    <enumeration value="XBQ"/>
+    <enumeration value="XBR"/>
+    <enumeration value="XBS"/>
+    <enumeration value="XBT"/>
+    <enumeration value="XBU"/>
+    <enumeration value="XBV"/>
+    <enumeration value="XBW"/>
+    <enumeration value="XBX"/>
+    <enumeration value="XBY"/>
+    <enumeration value="XBZ"/>
+    <enumeration value="XCA"/>
+    <enumeration value="XCB"/>
+    <enumeration value="XCC"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XCE"/>
+    <enumeration value="XCF"/>
+    <enumeration value="XCG"/>
+    <enumeration value="XCH"/>
+    <enumeration value="XCI"/>
+    <enumeration value="XCJ"/>
+    <enumeration value="XCK"/>
+    <enumeration value="XCL"/>
+    <enumeration value="XCM"/>
+    <enumeration value="XCN"/>
+    <enumeration value="XCO"/>
+    <enumeration value="XCP"/>
+    <enumeration value="XCQ"/>
+    <enumeration value="XCR"/>
+    <enumeration value="XCS"/>
+    <enumeration value="XCT"/>
+    <enumeration value="XCU"/>
+    <enumeration value="XCV"/>
+    <enumeration value="XCW"/>
+    <enumeration value="XCX"/>
+    <enumeration value="XCY"/>
+    <enumeration value="XCZ"/>
+    <enumeration value="XDA"/>
+    <enumeration value="XDB"/>
+    <enumeration value="XDC"/>
+    <enumeration value="XDG"/>
+    <enumeration value="XDH"/>
+    <enumeration value="XDI"/>
+    <enumeration value="XDJ"/>
+    <enumeration value="XDK"/>
+    <enumeration value="XDL"/>
+    <enumeration value="XDM"/>
+    <enumeration value="XDN"/>
+    <enumeration value="XDP"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XDS"/>
+    <enumeration value="XDT"/>
+    <enumeration value="XDU"/>
+    <enumeration value="XDV"/>
+    <enumeration value="XDW"/>
+    <enumeration value="XDX"/>
+    <enumeration value="XDY"/>
+    <enumeration value="XEC"/>
+    <enumeration value="XED"/>
+    <enumeration value="XEE"/>
+    <enumeration value="XEF"/>
+    <enumeration value="XEG"/>
+    <enumeration value="XEH"/>
+    <enumeration value="XEI"/>
+    <enumeration value="XEN"/>
+    <enumeration value="XFB"/>
+    <enumeration value="XFC"/>
+    <enumeration value="XFD"/>
+    <enumeration value="XFE"/>
+    <enumeration value="XFI"/>
+    <enumeration value="XFL"/>
+    <enumeration value="XFO"/>
+    <enumeration value="XFP"/>
+    <enumeration value="XFR"/>
+    <enumeration value="XFT"/>
+    <enumeration value="XFW"/>
+    <enumeration value="XFX"/>
+    <enumeration value="XGB"/>
+    <enumeration value="XGI"/>
+    <enumeration value="XGL"/>
+    <enumeration value="XGR"/>
+    <enumeration value="XGU"/>
+    <enumeration value="XGY"/>
+    <enumeration value="XGZ"/>
+    <enumeration value="XHA"/>
+    <enumeration value="XHB"/>
+    <enumeration value="XHC"/>
+    <enumeration value="XHG"/>
+    <enumeration value="XHN"/>
+    <enumeration value="XHR"/>
+    <enumeration value="XIA"/>
+    <enumeration value="XIB"/>
+    <enumeration value="XIC"/>
+    <enumeration value="XID"/>
+    <enumeration value="XIE"/>
+    <enumeration value="XIF"/>
+    <enumeration value="XIG"/>
+    <enumeration value="XIH"/>
+    <enumeration value="XIK"/>
+    <enumeration value="XIL"/>
+    <enumeration value="XIN"/>
+    <enumeration value="XIZ"/>
+    <enumeration value="XJB"/>
+    <enumeration value="XJC"/>
+    <enumeration value="XJG"/>
+    <enumeration value="XJR"/>
+    <enumeration value="XJT"/>
+    <enumeration value="XJY"/>
+    <enumeration value="XKG"/>
+    <enumeration value="XKI"/>
+    <enumeration value="XLE"/>
+    <enumeration value="XLG"/>
+    <enumeration value="XLT"/>
+    <enumeration value="XLU"/>
+    <enumeration value="XLV"/>
+    <enumeration value="XLZ"/>
+    <enumeration value="XMA"/>
+    <enumeration value="XMB"/>
+    <enumeration value="XMC"/>
+    <enumeration value="XME"/>
+    <enumeration value="XMR"/>
+    <enumeration value="XMS"/>
+    <enumeration value="XMT"/>
+    <enumeration value="XMW"/>
+    <enumeration value="XMX"/>
+    <enumeration value="XNA"/>
+    <enumeration value="XNE"/>
+    <enumeration value="XNF"/>
+    <enumeration value="XNG"/>
+    <enumeration value="XNS"/>
+    <enumeration value="XNT"/>
+    <enumeration value="XNU"/>
+    <enumeration value="XNV"/>
+    <enumeration value="XO1"/>
+    <enumeration value="XO2"/>
+    <enumeration value="XO3"/>
+    <enumeration value="XO4"/>
+    <enumeration value="XO5"/>
+    <enumeration value="XO6"/>
+    <enumeration value="XO7"/>
+    <enumeration value="XO8"/>
+    <enumeration value="XO9"/>
+    <enumeration value="XOA"/>
+    <enumeration value="XOB"/>
+    <enumeration value="XOC"/>
+    <enumeration value="XOD"/>
+    <enumeration value="XOE"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XOG"/>
+    <enumeration value="XOH"/>
+    <enumeration value="XOI"/>
+    <enumeration value="XOJ"/>
+    <enumeration value="XOK"/>
+    <enumeration value="XOL"/>
+    <enumeration value="XOM"/>
+    <enumeration value="XON"/>
+    <enumeration value="XOP"/>
+    <enumeration value="XOQ"/>
+    <enumeration value="XOR"/>
+    <enumeration value="XOS"/>
+    <enumeration value="XOT"/>
+    <enumeration value="XOU"/>
+    <enumeration value="XOV"/>
+    <enumeration value="XOW"/>
+    <enumeration value="XOX"/>
+    <enumeration value="XOY"/>
+    <enumeration value="XOZ"/>
+    <enumeration value="XP1"/>
+    <enumeration value="XP2"/>
+    <enumeration value="XP3"/>
+    <enumeration value="XP4"/>
+    <enumeration value="XPA"/>
+    <enumeration value="XPB"/>
+    <enumeration value="XPC"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPE"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPG"/>
+    <enumeration value="XPH"/>
+    <enumeration value="XPI"/>
+    <enumeration value="XPJ"/>
+    <enumeration value="XPK"/>
+    <enumeration value="XPL"/>
+    <enumeration value="XPN"/>
+    <enumeration value="XPO"/>
+    <enumeration value="XPP"/>
+    <enumeration value="XPR"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XPU"/>
+    <enumeration value="XPV"/>
+    <enumeration value="XPX"/>
+    <enumeration value="XPY"/>
+    <enumeration value="XPZ"/>
+    <enumeration value="XQA"/>
+    <enumeration value="XQB"/>
+    <enumeration value="XQC"/>
+    <enumeration value="XQD"/>
+    <enumeration value="XQF"/>
+    <enumeration value="XQG"/>
+    <enumeration value="XQH"/>
+    <enumeration value="XQJ"/>
+    <enumeration value="XQK"/>
+    <enumeration value="XQL"/>
+    <enumeration value="XQM"/>
+    <enumeration value="XQN"/>
+    <enumeration value="XQP"/>
+    <enumeration value="XQQ"/>
+    <enumeration value="XQR"/>
+    <enumeration value="XQS"/>
+    <enumeration value="XRD"/>
+    <enumeration value="XRG"/>
+    <enumeration value="XRJ"/>
+    <enumeration value="XRK"/>
+    <enumeration value="XRL"/>
+    <enumeration value="XRO"/>
+    <enumeration value="XRT"/>
+    <enumeration value="XRZ"/>
+    <enumeration value="XSA"/>
+    <enumeration value="XSB"/>
+    <enumeration value="XSC"/>
+    <enumeration value="XSD"/>
+    <enumeration value="XSE"/>
+    <enumeration value="XSH"/>
+    <enumeration value="XSI"/>
+    <enumeration value="XSK"/>
+    <enumeration value="XSL"/>
+    <enumeration value="XSM"/>
+    <enumeration value="XSO"/>
+    <enumeration value="XSP"/>
+    <enumeration value="XSS"/>
+    <enumeration value="XST"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XSV"/>
+    <enumeration value="XSW"/>
+    <enumeration value="XSX"/>
+    <enumeration value="XSY"/>
+    <enumeration value="XSZ"/>
+    <enumeration value="XT1"/>
+    <enumeration value="XTB"/>
+    <enumeration value="XTC"/>
+    <enumeration value="XTD"/>
+    <enumeration value="XTE"/>
+    <enumeration value="XTG"/>
+    <enumeration value="XTI"/>
+    <enumeration value="XTK"/>
+    <enumeration value="XTL"/>
+    <enumeration value="XTN"/>
+    <enumeration value="XTO"/>
+    <enumeration value="XTR"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XTT"/>
+    <enumeration value="XTU"/>
+    <enumeration value="XTV"/>
+    <enumeration value="XTW"/>
+    <enumeration value="XTY"/>
+    <enumeration value="XTZ"/>
+    <enumeration value="XUC"/>
+    <enumeration value="XUN"/>
+    <enumeration value="XVA"/>
+    <enumeration value="XVG"/>
+    <enumeration value="XVI"/>
+    <enumeration value="XVK"/>
+    <enumeration value="XVL"/>
+    <enumeration value="XVN"/>
+    <enumeration value="XVO"/>
+    <enumeration value="XVP"/>
+    <enumeration value="XVQ"/>
+    <enumeration value="XVR"/>
+    <enumeration value="XVS"/>
+    <enumeration value="XVY"/>
+    <enumeration value="XWA"/>
+    <enumeration value="XWB"/>
+    <enumeration value="XWC"/>
+    <enumeration value="XWD"/>
+    <enumeration value="XWF"/>
+    <enumeration value="XWG"/>
+    <enumeration value="XWH"/>
+    <enumeration value="XWJ"/>
+    <enumeration value="XWK"/>
+    <enumeration value="XWL"/>
+    <enumeration value="XWM"/>
+    <enumeration value="XWN"/>
+    <enumeration value="XWP"/>
+    <enumeration value="XWQ"/>
+    <enumeration value="XWR"/>
+    <enumeration value="XWS"/>
+    <enumeration value="XWT"/>
+    <enumeration value="XWU"/>
+    <enumeration value="XWV"/>
+    <enumeration value="XWW"/>
+    <enumeration value="XWX"/>
+    <enumeration value="XWY"/>
+    <enumeration value="XWZ"/>
+    <enumeration value="XXA"/>
+    <enumeration value="XXB"/>
+    <enumeration value="XXC"/>
+    <enumeration value="XXD"/>
+    <enumeration value="XXF"/>
+    <enumeration value="XXG"/>
+    <enumeration value="XXH"/>
+    <enumeration value="XXJ"/>
+    <enumeration value="XXK"/>
+    <enumeration value="XYA"/>
+    <enumeration value="XYB"/>
+    <enumeration value="XYC"/>
+    <enumeration value="XYD"/>
+    <enumeration value="XYF"/>
+    <enumeration value="XYG"/>
+    <enumeration value="XYH"/>
+    <enumeration value="XYJ"/>
+    <enumeration value="XYK"/>
+    <enumeration value="XYL"/>
+    <enumeration value="XYM"/>
+    <enumeration value="XYN"/>
+    <enumeration value="XYP"/>
+    <enumeration value="XYQ"/>
+    <enumeration value="XYR"/>
+    <enumeration value="XYS"/>
+    <enumeration value="XYT"/>
+    <enumeration value="XYV"/>
+    <enumeration value="XYW"/>
+    <enumeration value="XYX"/>
+    <enumeration value="XYY"/>
+    <enumeration value="XYZ"/>
+    <enumeration value="XZA"/>
+    <enumeration value="XZB"/>
+    <enumeration value="XZC"/>
+    <enumeration value="XZD"/>
+    <enumeration value="XZF"/>
+    <enumeration value="XZG"/>
+    <enumeration value="XZH"/>
+    <enumeration value="XZJ"/>
+    <enumeration value="XZK"/>
+    <enumeration value="XZL"/>
+    <enumeration value="XZM"/>
+    <enumeration value="XZN"/>
+    <enumeration value="XZP"/>
+    <enumeration value="XZQ"/>
+    <enumeration value="XZR"/>
+    <enumeration value="XZS"/>
+    <enumeration value="XZT"/>
+    <enumeration value="XZU"/>
+    <enumeration value="XZV"/>
+    <enumeration value="XZW"/>
+    <enumeration value="XZX"/>
+    <enumeration value="XZY"/>
+    <enumeration value="XZZ"/>
+    <enumeration value="YDK"/>
+    <enumeration value="YDQ"/>
+    <enumeration value="YRD"/>
+    <enumeration value="Z11"/>
+    <enumeration value="Z9"/>
+    <enumeration value="ZP"/>
+    <enumeration value="ZZ"/>
+  </cl>
+  <cl id="9">
+    <enumeration value="VAT"/>
+  </cl>
+  <cl id="10">
+    <enumeration value="AE"/>
+    <enumeration value="E"/>
+    <enumeration value="G"/>
+    <enumeration value="K"/>
+    <enumeration value="L"/>
+    <enumeration value="M"/>
+    <enumeration value="O"/>
+    <enumeration value="S"/>
+    <enumeration value="Z"/>
+  </cl>
+  <cl id="11">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="12">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="13">
+    <enumeration value="50"/>
+    <enumeration value="130"/>
+    <enumeration value="916"/>
+  </cl>
+  <cl id="14">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABY"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="AC"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AE"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AF"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="AJC"/>
+    <enumeration value="AJD"/>
+    <enumeration value="AJE"/>
+    <enumeration value="AJF"/>
+    <enumeration value="AJG"/>
+    <enumeration value="AJH"/>
+    <enumeration value="AJI"/>
+    <enumeration value="AJJ"/>
+    <enumeration value="AJK"/>
+    <enumeration value="AJL"/>
+    <enumeration value="AJM"/>
+    <enumeration value="AJN"/>
+    <enumeration value="AJO"/>
+    <enumeration value="AJP"/>
+    <enumeration value="AJQ"/>
+    <enumeration value="AJR"/>
+    <enumeration value="AJS"/>
+    <enumeration value="AJT"/>
+    <enumeration value="AJU"/>
+    <enumeration value="AJV"/>
+    <enumeration value="AJW"/>
+    <enumeration value="AJX"/>
+    <enumeration value="AJY"/>
+    <enumeration value="AJZ"/>
+    <enumeration value="AKA"/>
+    <enumeration value="AKB"/>
+    <enumeration value="AKC"/>
+    <enumeration value="AKD"/>
+    <enumeration value="AKE"/>
+    <enumeration value="AKF"/>
+    <enumeration value="AKG"/>
+    <enumeration value="AKH"/>
+    <enumeration value="AKI"/>
+    <enumeration value="AKJ"/>
+    <enumeration value="AKK"/>
+    <enumeration value="AKL"/>
+    <enumeration value="AKM"/>
+    <enumeration value="AKN"/>
+    <enumeration value="AKO"/>
+    <enumeration value="AKP"/>
+    <enumeration value="AKQ"/>
+    <enumeration value="AKR"/>
+    <enumeration value="AKS"/>
+    <enumeration value="AKT"/>
+    <enumeration value="AKU"/>
+    <enumeration value="AKV"/>
+    <enumeration value="AKW"/>
+    <enumeration value="AKX"/>
+    <enumeration value="AKY"/>
+    <enumeration value="AKZ"/>
+    <enumeration value="ALA"/>
+    <enumeration value="ALB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ALR"/>
+    <enumeration value="ALS"/>
+    <enumeration value="ALT"/>
+    <enumeration value="ALU"/>
+    <enumeration value="ALV"/>
+    <enumeration value="ALW"/>
+    <enumeration value="ALX"/>
+    <enumeration value="ALY"/>
+    <enumeration value="ALZ"/>
+    <enumeration value="AMA"/>
+    <enumeration value="AMB"/>
+    <enumeration value="AMC"/>
+    <enumeration value="AMD"/>
+    <enumeration value="AME"/>
+    <enumeration value="AMF"/>
+    <enumeration value="AMG"/>
+    <enumeration value="AMH"/>
+    <enumeration value="AMI"/>
+    <enumeration value="AMJ"/>
+    <enumeration value="AMK"/>
+    <enumeration value="AML"/>
+    <enumeration value="AMM"/>
+    <enumeration value="AMN"/>
+    <enumeration value="AMO"/>
+    <enumeration value="AMP"/>
+    <enumeration value="AMQ"/>
+    <enumeration value="AMR"/>
+    <enumeration value="AMS"/>
+    <enumeration value="AMT"/>
+    <enumeration value="AMU"/>
+    <enumeration value="AMV"/>
+    <enumeration value="AMW"/>
+    <enumeration value="AMX"/>
+    <enumeration value="AMY"/>
+    <enumeration value="AMZ"/>
+    <enumeration value="ANA"/>
+    <enumeration value="ANB"/>
+    <enumeration value="ANC"/>
+    <enumeration value="AND"/>
+    <enumeration value="ANE"/>
+    <enumeration value="ANF"/>
+    <enumeration value="ANG"/>
+    <enumeration value="ANH"/>
+    <enumeration value="ANI"/>
+    <enumeration value="ANJ"/>
+    <enumeration value="ANK"/>
+    <enumeration value="ANL"/>
+    <enumeration value="ANM"/>
+    <enumeration value="ANN"/>
+    <enumeration value="ANO"/>
+    <enumeration value="ANP"/>
+    <enumeration value="ANQ"/>
+    <enumeration value="ANR"/>
+    <enumeration value="ANS"/>
+    <enumeration value="ANT"/>
+    <enumeration value="ANU"/>
+    <enumeration value="ANV"/>
+    <enumeration value="ANW"/>
+    <enumeration value="ANX"/>
+    <enumeration value="ANY"/>
+    <enumeration value="AOA"/>
+    <enumeration value="AOD"/>
+    <enumeration value="AOE"/>
+    <enumeration value="AOF"/>
+    <enumeration value="AOG"/>
+    <enumeration value="AOH"/>
+    <enumeration value="AOI"/>
+    <enumeration value="AOJ"/>
+    <enumeration value="AOK"/>
+    <enumeration value="AOL"/>
+    <enumeration value="AOM"/>
+    <enumeration value="AON"/>
+    <enumeration value="AOO"/>
+    <enumeration value="AOP"/>
+    <enumeration value="AOQ"/>
+    <enumeration value="AOR"/>
+    <enumeration value="AOS"/>
+    <enumeration value="AOT"/>
+    <enumeration value="AOU"/>
+    <enumeration value="AOV"/>
+    <enumeration value="AOW"/>
+    <enumeration value="AOX"/>
+    <enumeration value="AOY"/>
+    <enumeration value="AOZ"/>
+    <enumeration value="AP"/>
+    <enumeration value="APA"/>
+    <enumeration value="APB"/>
+    <enumeration value="APC"/>
+    <enumeration value="APD"/>
+    <enumeration value="APE"/>
+    <enumeration value="APF"/>
+    <enumeration value="APG"/>
+    <enumeration value="APH"/>
+    <enumeration value="API"/>
+    <enumeration value="APJ"/>
+    <enumeration value="APK"/>
+    <enumeration value="APL"/>
+    <enumeration value="APM"/>
+    <enumeration value="APN"/>
+    <enumeration value="APO"/>
+    <enumeration value="APP"/>
+    <enumeration value="APQ"/>
+    <enumeration value="APR"/>
+    <enumeration value="APS"/>
+    <enumeration value="APT"/>
+    <enumeration value="APU"/>
+    <enumeration value="APV"/>
+    <enumeration value="APW"/>
+    <enumeration value="APX"/>
+    <enumeration value="APY"/>
+    <enumeration value="APZ"/>
+    <enumeration value="AQA"/>
+    <enumeration value="AQB"/>
+    <enumeration value="AQC"/>
+    <enumeration value="AQD"/>
+    <enumeration value="AQE"/>
+    <enumeration value="AQF"/>
+    <enumeration value="AQG"/>
+    <enumeration value="AQH"/>
+    <enumeration value="AQI"/>
+    <enumeration value="AQJ"/>
+    <enumeration value="AQK"/>
+    <enumeration value="AQL"/>
+    <enumeration value="AQM"/>
+    <enumeration value="AQN"/>
+    <enumeration value="AQO"/>
+    <enumeration value="AQP"/>
+    <enumeration value="AQQ"/>
+    <enumeration value="AQR"/>
+    <enumeration value="AQS"/>
+    <enumeration value="AQT"/>
+    <enumeration value="AQU"/>
+    <enumeration value="AQV"/>
+    <enumeration value="AQW"/>
+    <enumeration value="AQX"/>
+    <enumeration value="AQY"/>
+    <enumeration value="AQZ"/>
+    <enumeration value="ARA"/>
+    <enumeration value="ARB"/>
+    <enumeration value="ARC"/>
+    <enumeration value="ARD"/>
+    <enumeration value="ARE"/>
+    <enumeration value="ARF"/>
+    <enumeration value="ARG"/>
+    <enumeration value="ARH"/>
+    <enumeration value="ARI"/>
+    <enumeration value="ARJ"/>
+    <enumeration value="ARK"/>
+    <enumeration value="ARL"/>
+    <enumeration value="ARM"/>
+    <enumeration value="ARN"/>
+    <enumeration value="ARO"/>
+    <enumeration value="ARP"/>
+    <enumeration value="ARQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="ART"/>
+    <enumeration value="ARU"/>
+    <enumeration value="ARV"/>
+    <enumeration value="ARW"/>
+    <enumeration value="ARX"/>
+    <enumeration value="ARY"/>
+    <enumeration value="ARZ"/>
+    <enumeration value="ASA"/>
+    <enumeration value="ASB"/>
+    <enumeration value="ASC"/>
+    <enumeration value="ASD"/>
+    <enumeration value="ASE"/>
+    <enumeration value="ASF"/>
+    <enumeration value="ASG"/>
+    <enumeration value="ASH"/>
+    <enumeration value="ASI"/>
+    <enumeration value="ASJ"/>
+    <enumeration value="ASK"/>
+    <enumeration value="ASL"/>
+    <enumeration value="ASM"/>
+    <enumeration value="ASN"/>
+    <enumeration value="ASO"/>
+    <enumeration value="ASP"/>
+    <enumeration value="ASQ"/>
+    <enumeration value="ASR"/>
+    <enumeration value="ASS"/>
+    <enumeration value="AST"/>
+    <enumeration value="ASU"/>
+    <enumeration value="ASV"/>
+    <enumeration value="ASW"/>
+    <enumeration value="ASX"/>
+    <enumeration value="ASY"/>
+    <enumeration value="ASZ"/>
+    <enumeration value="ATA"/>
+    <enumeration value="ATB"/>
+    <enumeration value="ATC"/>
+    <enumeration value="ATD"/>
+    <enumeration value="ATE"/>
+    <enumeration value="ATF"/>
+    <enumeration value="ATG"/>
+    <enumeration value="ATH"/>
+    <enumeration value="ATI"/>
+    <enumeration value="ATJ"/>
+    <enumeration value="ATK"/>
+    <enumeration value="ATL"/>
+    <enumeration value="ATM"/>
+    <enumeration value="ATN"/>
+    <enumeration value="ATO"/>
+    <enumeration value="ATP"/>
+    <enumeration value="ATQ"/>
+    <enumeration value="ATR"/>
+    <enumeration value="ATS"/>
+    <enumeration value="ATT"/>
+    <enumeration value="ATU"/>
+    <enumeration value="ATV"/>
+    <enumeration value="ATW"/>
+    <enumeration value="ATX"/>
+    <enumeration value="ATY"/>
+    <enumeration value="ATZ"/>
+    <enumeration value="AU"/>
+    <enumeration value="AUA"/>
+    <enumeration value="AUB"/>
+    <enumeration value="AUC"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AUE"/>
+    <enumeration value="AUF"/>
+    <enumeration value="AUG"/>
+    <enumeration value="AUH"/>
+    <enumeration value="AUI"/>
+    <enumeration value="AUJ"/>
+    <enumeration value="AUK"/>
+    <enumeration value="AUL"/>
+    <enumeration value="AUM"/>
+    <enumeration value="AUN"/>
+    <enumeration value="AUO"/>
+    <enumeration value="AUP"/>
+    <enumeration value="AUQ"/>
+    <enumeration value="AUR"/>
+    <enumeration value="AUS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AV"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="AVG"/>
+    <enumeration value="AVH"/>
+    <enumeration value="AVI"/>
+    <enumeration value="AVJ"/>
+    <enumeration value="AVK"/>
+    <enumeration value="AVL"/>
+    <enumeration value="AVM"/>
+    <enumeration value="AVN"/>
+    <enumeration value="AVO"/>
+    <enumeration value="AVP"/>
+    <enumeration value="AVQ"/>
+    <enumeration value="AVR"/>
+    <enumeration value="AVS"/>
+    <enumeration value="AVT"/>
+    <enumeration value="AVU"/>
+    <enumeration value="AVV"/>
+    <enumeration value="AVW"/>
+    <enumeration value="AVX"/>
+    <enumeration value="AVY"/>
+    <enumeration value="AVZ"/>
+    <enumeration value="AWA"/>
+    <enumeration value="AWB"/>
+    <enumeration value="AWC"/>
+    <enumeration value="AWD"/>
+    <enumeration value="AWE"/>
+    <enumeration value="AWF"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AWH"/>
+    <enumeration value="AWI"/>
+    <enumeration value="AWJ"/>
+    <enumeration value="AWK"/>
+    <enumeration value="AWL"/>
+    <enumeration value="AWM"/>
+    <enumeration value="AWN"/>
+    <enumeration value="AWO"/>
+    <enumeration value="AWP"/>
+    <enumeration value="AWQ"/>
+    <enumeration value="AWR"/>
+    <enumeration value="AWS"/>
+    <enumeration value="AWT"/>
+    <enumeration value="AWU"/>
+    <enumeration value="AWV"/>
+    <enumeration value="AWW"/>
+    <enumeration value="AWX"/>
+    <enumeration value="AWY"/>
+    <enumeration value="AWZ"/>
+    <enumeration value="AXA"/>
+    <enumeration value="AXB"/>
+    <enumeration value="AXC"/>
+    <enumeration value="AXD"/>
+    <enumeration value="AXE"/>
+    <enumeration value="AXF"/>
+    <enumeration value="AXG"/>
+    <enumeration value="AXH"/>
+    <enumeration value="AXI"/>
+    <enumeration value="AXJ"/>
+    <enumeration value="AXK"/>
+    <enumeration value="AXL"/>
+    <enumeration value="AXM"/>
+    <enumeration value="AXN"/>
+    <enumeration value="AXO"/>
+    <enumeration value="AXP"/>
+    <enumeration value="AXQ"/>
+    <enumeration value="AXR"/>
+    <enumeration value="AXS"/>
+    <enumeration value="BA"/>
+    <enumeration value="BC"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BH"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BR"/>
+    <enumeration value="BT"/>
+    <enumeration value="BTP"/>
+    <enumeration value="BW"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CBA"/>
+    <enumeration value="CBB"/>
+    <enumeration value="CD"/>
+    <enumeration value="CEC"/>
+    <enumeration value="CED"/>
+    <enumeration value="CFE"/>
+    <enumeration value="CFF"/>
+    <enumeration value="CFO"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CK"/>
+    <enumeration value="CKN"/>
+    <enumeration value="CM"/>
+    <enumeration value="CMR"/>
+    <enumeration value="CN"/>
+    <enumeration value="CNO"/>
+    <enumeration value="COF"/>
+    <enumeration value="CP"/>
+    <enumeration value="CR"/>
+    <enumeration value="CRN"/>
+    <enumeration value="CS"/>
+    <enumeration value="CST"/>
+    <enumeration value="CT"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DA"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DB"/>
+    <enumeration value="DI"/>
+    <enumeration value="DL"/>
+    <enumeration value="DM"/>
+    <enumeration value="DQ"/>
+    <enumeration value="DR"/>
+    <enumeration value="EA"/>
+    <enumeration value="EB"/>
+    <enumeration value="ED"/>
+    <enumeration value="EE"/>
+    <enumeration value="EEP"/>
+    <enumeration value="EI"/>
+    <enumeration value="EN"/>
+    <enumeration value="EQ"/>
+    <enumeration value="ER"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ET"/>
+    <enumeration value="EX"/>
+    <enumeration value="FC"/>
+    <enumeration value="FF"/>
+    <enumeration value="FI"/>
+    <enumeration value="FLW"/>
+    <enumeration value="FN"/>
+    <enumeration value="FO"/>
+    <enumeration value="FS"/>
+    <enumeration value="FT"/>
+    <enumeration value="FV"/>
+    <enumeration value="FX"/>
+    <enumeration value="GA"/>
+    <enumeration value="GC"/>
+    <enumeration value="GD"/>
+    <enumeration value="GDN"/>
+    <enumeration value="GN"/>
+    <enumeration value="HS"/>
+    <enumeration value="HWB"/>
+    <enumeration value="IA"/>
+    <enumeration value="IB"/>
+    <enumeration value="ICA"/>
+    <enumeration value="ICE"/>
+    <enumeration value="ICO"/>
+    <enumeration value="II"/>
+    <enumeration value="IL"/>
+    <enumeration value="INB"/>
+    <enumeration value="INN"/>
+    <enumeration value="INO"/>
+    <enumeration value="IP"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="IV"/>
+    <enumeration value="JB"/>
+    <enumeration value="JE"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LAR"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LO"/>
+    <enumeration value="LRC"/>
+    <enumeration value="LS"/>
+    <enumeration value="MA"/>
+    <enumeration value="MB"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MR"/>
+    <enumeration value="MRN"/>
+    <enumeration value="MS"/>
+    <enumeration value="MSS"/>
+    <enumeration value="MWB"/>
+    <enumeration value="NA"/>
+    <enumeration value="NF"/>
+    <enumeration value="OH"/>
+    <enumeration value="OI"/>
+    <enumeration value="ON"/>
+    <enumeration value="OP"/>
+    <enumeration value="OR"/>
+    <enumeration value="PB"/>
+    <enumeration value="PC"/>
+    <enumeration value="PD"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PI"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="POR"/>
+    <enumeration value="PP"/>
+    <enumeration value="PQ"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="RA"/>
+    <enumeration value="RC"/>
+    <enumeration value="RCN"/>
+    <enumeration value="RE"/>
+    <enumeration value="REN"/>
+    <enumeration value="RF"/>
+    <enumeration value="RR"/>
+    <enumeration value="RT"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SEA"/>
+    <enumeration value="SF"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SP"/>
+    <enumeration value="SQ"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SS"/>
+    <enumeration value="STA"/>
+    <enumeration value="SW"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TB"/>
+    <enumeration value="TCR"/>
+    <enumeration value="TE"/>
+    <enumeration value="TF"/>
+    <enumeration value="TI"/>
+    <enumeration value="TIN"/>
+    <enumeration value="TL"/>
+    <enumeration value="TN"/>
+    <enumeration value="TP"/>
+    <enumeration value="UAR"/>
+    <enumeration value="UC"/>
+    <enumeration value="UCN"/>
+    <enumeration value="UN"/>
+    <enumeration value="UO"/>
+    <enumeration value="URI"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VGR"/>
+    <enumeration value="VM"/>
+    <enumeration value="VN"/>
+    <enumeration value="VON"/>
+    <enumeration value="VOR"/>
+    <enumeration value="VP"/>
+    <enumeration value="VR"/>
+    <enumeration value="VS"/>
+    <enumeration value="VT"/>
+    <enumeration value="VV"/>
+    <enumeration value="WE"/>
+    <enumeration value="WM"/>
+    <enumeration value="WN"/>
+    <enumeration value="WR"/>
+    <enumeration value="WS"/>
+    <enumeration value="WY"/>
+    <enumeration value="XA"/>
+    <enumeration value="XC"/>
+    <enumeration value="XP"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="15">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="16">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="17">
+    <enumeration value="0002"/>
+    <enumeration value="0007"/>
+    <enumeration value="0009"/>
+    <enumeration value="0037"/>
+    <enumeration value="0060"/>
+    <enumeration value="0088"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0106"/>
+    <enumeration value="0130"/>
+    <enumeration value="0135"/>
+    <enumeration value="0142"/>
+    <enumeration value="0147"/>
+    <enumeration value="0151"/>
+    <enumeration value="0170"/>
+    <enumeration value="0177"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0188"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0221"/>
+    <enumeration value="0225"/>
+    <enumeration value="0230"/>
+    <enumeration value="0235"/>
+    <enumeration value="9901"/>
+    <enumeration value="9910"/>
+    <enumeration value="9913"/>
+    <enumeration value="9914"/>
+    <enumeration value="9915"/>
+    <enumeration value="9918"/>
+    <enumeration value="9919"/>
+    <enumeration value="9920"/>
+    <enumeration value="9922"/>
+    <enumeration value="9923"/>
+    <enumeration value="9924"/>
+    <enumeration value="9925"/>
+    <enumeration value="9926"/>
+    <enumeration value="9927"/>
+    <enumeration value="9928"/>
+    <enumeration value="9929"/>
+    <enumeration value="9930"/>
+    <enumeration value="9931"/>
+    <enumeration value="9932"/>
+    <enumeration value="9933"/>
+    <enumeration value="9934"/>
+    <enumeration value="9935"/>
+    <enumeration value="9936"/>
+    <enumeration value="9937"/>
+    <enumeration value="9938"/>
+    <enumeration value="9939"/>
+    <enumeration value="9940"/>
+    <enumeration value="9941"/>
+    <enumeration value="9942"/>
+    <enumeration value="9943"/>
+    <enumeration value="9944"/>
+    <enumeration value="9945"/>
+    <enumeration value="9946"/>
+    <enumeration value="9947"/>
+    <enumeration value="9948"/>
+    <enumeration value="9949"/>
+    <enumeration value="9950"/>
+    <enumeration value="9951"/>
+    <enumeration value="9952"/>
+    <enumeration value="9953"/>
+    <enumeration value="9957"/>
+    <enumeration value="9959"/>
+    <enumeration value="AN"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="AU"/>
+    <enumeration value="EM"/>
+  </cl>
+  <cl id="18">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="19">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="20">
+    <enumeration value="916"/>
+  </cl>
+  <cl id="21">
+    <enumeration value="application/pdf"/>
+    <enumeration value="application/vnd.oasis.opendocument.spreadsheet"/>
+    <enumeration value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
+    <enumeration value="image/jpeg"/>
+    <enumeration value="image/png"/>
+    <enumeration value="text/csv"/>
+  </cl>
+  <cl id="22">
+    <enumeration value="50"/>
+  </cl>
+  <cl id="23">
+    <enumeration value="130"/>
+  </cl>
+  <cl id="24">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="25">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="12"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="16"/>
+    <enumeration value="17"/>
+    <enumeration value="18"/>
+    <enumeration value="19"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="26"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="29"/>
+    <enumeration value="30"/>
+    <enumeration value="31"/>
+    <enumeration value="32"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="36"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="39"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="43"/>
+    <enumeration value="44"/>
+    <enumeration value="45"/>
+    <enumeration value="46"/>
+    <enumeration value="47"/>
+    <enumeration value="48"/>
+    <enumeration value="49"/>
+    <enumeration value="50"/>
+    <enumeration value="51"/>
+    <enumeration value="52"/>
+    <enumeration value="53"/>
+    <enumeration value="54"/>
+    <enumeration value="55"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="69"/>
+    <enumeration value="70"/>
+    <enumeration value="74"/>
+    <enumeration value="75"/>
+    <enumeration value="76"/>
+    <enumeration value="77"/>
+    <enumeration value="78"/>
+    <enumeration value="91"/>
+    <enumeration value="92"/>
+    <enumeration value="93"/>
+    <enumeration value="94"/>
+    <enumeration value="95"/>
+    <enumeration value="96"/>
+    <enumeration value="97"/>
+    <enumeration value="98"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="26">
+    <enumeration value="VATEX-EU-132"/>
+    <enumeration value="VATEX-EU-132-1A"/>
+    <enumeration value="VATEX-EU-132-1B"/>
+    <enumeration value="VATEX-EU-132-1C"/>
+    <enumeration value="VATEX-EU-132-1D"/>
+    <enumeration value="VATEX-EU-132-1E"/>
+    <enumeration value="VATEX-EU-132-1F"/>
+    <enumeration value="VATEX-EU-132-1G"/>
+    <enumeration value="VATEX-EU-132-1H"/>
+    <enumeration value="VATEX-EU-132-1I"/>
+    <enumeration value="VATEX-EU-132-1J"/>
+    <enumeration value="VATEX-EU-132-1K"/>
+    <enumeration value="VATEX-EU-132-1L"/>
+    <enumeration value="VATEX-EU-132-1M"/>
+    <enumeration value="VATEX-EU-132-1N"/>
+    <enumeration value="VATEX-EU-132-1O"/>
+    <enumeration value="VATEX-EU-132-1P"/>
+    <enumeration value="VATEX-EU-132-1Q"/>
+    <enumeration value="VATEX-EU-143"/>
+    <enumeration value="VATEX-EU-143-1A"/>
+    <enumeration value="VATEX-EU-143-1B"/>
+    <enumeration value="VATEX-EU-143-1C"/>
+    <enumeration value="VATEX-EU-143-1D"/>
+    <enumeration value="VATEX-EU-143-1E"/>
+    <enumeration value="VATEX-EU-143-1F"/>
+    <enumeration value="VATEX-EU-143-1FA"/>
+    <enumeration value="VATEX-EU-143-1G"/>
+    <enumeration value="VATEX-EU-143-1H"/>
+    <enumeration value="VATEX-EU-143-1I"/>
+    <enumeration value="VATEX-EU-143-1J"/>
+    <enumeration value="VATEX-EU-143-1K"/>
+    <enumeration value="VATEX-EU-143-1L"/>
+    <enumeration value="VATEX-EU-144"/>
+    <enumeration value="VATEX-EU-146-1E"/>
+    <enumeration value="VATEX-EU-148"/>
+    <enumeration value="VATEX-EU-148-A"/>
+    <enumeration value="VATEX-EU-148-B"/>
+    <enumeration value="VATEX-EU-148-C"/>
+    <enumeration value="VATEX-EU-148-D"/>
+    <enumeration value="VATEX-EU-148-E"/>
+    <enumeration value="VATEX-EU-148-F"/>
+    <enumeration value="VATEX-EU-148-G"/>
+    <enumeration value="VATEX-EU-151"/>
+    <enumeration value="VATEX-EU-151-1A"/>
+    <enumeration value="VATEX-EU-151-1AA"/>
+    <enumeration value="VATEX-EU-151-1B"/>
+    <enumeration value="VATEX-EU-151-1C"/>
+    <enumeration value="VATEX-EU-151-1D"/>
+    <enumeration value="VATEX-EU-151-1E"/>
+    <enumeration value="VATEX-EU-159"/>
+    <enumeration value="VATEX-EU-309"/>
+    <enumeration value="VATEX-EU-79-C"/>
+    <enumeration value="VATEX-EU-AE"/>
+    <enumeration value="VATEX-EU-D"/>
+    <enumeration value="VATEX-EU-F"/>
+    <enumeration value="VATEX-EU-G"/>
+    <enumeration value="VATEX-EU-I"/>
+    <enumeration value="VATEX-EU-IC"/>
+    <enumeration value="VATEX-EU-J"/>
+    <enumeration value="VATEX-EU-O"/>
+    <enumeration value="VATEX-FR-CNWVAT"/>
+    <enumeration value="VATEX-FR-FRANCHISE"/>
+  </cl>
+  <cl id="27">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="28">
+    <enumeration value="5"/>
+    <enumeration value="29"/>
+    <enumeration value="72"/>
+  </cl>
+  <cl id="29">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="30">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="31">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="32">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="33">
+    <enumeration value="102"/>
+  </cl>
+</codedb>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED.xslt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED.xslt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED.xslt	(revision 8542)
@@ -0,0 +1,39738 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsl:stylesheet xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:saxon="http://saxon.sf.net/" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<!--Implementers: please note that overriding process-prolog or process-root is 
+    the preferred method for meta-stylesheets to use where possible. -->
+
+<xsl:param name="archiveDirParameter" />
+  <xsl:param name="archiveNameParameter" />
+  <xsl:param name="fileNameParameter" />
+  <xsl:param name="fileDirParameter" />
+  <xsl:variable name="document-uri">
+    <xsl:value-of select="document-uri(/)" />
+  </xsl:variable>
+
+<!--PHASES-->
+
+
+<!--PROLOG-->
+<xsl:output indent="yes" method="xml" omit-xml-declaration="no" standalone="yes" />
+
+<!--XSD TYPES FOR XSLT2-->
+
+
+<!--KEYS AND FUNCTIONS-->
+
+
+<!--DEFAULT RULES-->
+
+
+<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-select-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="." />
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">
+        <xsl:value-of select="name()" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>*:</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>[namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])" />
+    <xsl:text>[</xsl:text>
+    <xsl:value-of select="1+ $preceding" />
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+  <xsl:template match="@*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">@<xsl:value-of select="name()" />
+</xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@*[local-name()='</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>' and namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-2-->
+<!--This mode can be used to generate prefixed XPath for humans-->
+<xsl:template match="node() | @*" mode="schematron-get-full-path-2">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="preceding-sibling::*[name(.)=name(current())]">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+<!--MODE: SCHEMATRON-FULL-PATH-3-->
+<!--This mode can be used to generate prefixed XPath for humans 
+	(Top-level element has index)-->
+
+<xsl:template match="node() | @*" mode="schematron-get-full-path-3">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="parent::*">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-FROM-PATH -->
+<xsl:template match="/" mode="generate-id-from-path" />
+  <xsl:template match="text()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')" />
+  </xsl:template>
+  <xsl:template match="comment()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')" />
+  </xsl:template>
+  <xsl:template match="processing-instruction()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.@', name())" />
+  </xsl:template>
+  <xsl:template match="*" mode="generate-id-from-path" priority="-0.5">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:text>.</xsl:text>
+    <xsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')" />
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-2 -->
+<xsl:template match="/" mode="generate-id-2">U</xsl:template>
+  <xsl:template match="*" mode="generate-id-2" priority="2">
+    <xsl:text>U</xsl:text>
+    <xsl:number count="*" level="multiple" />
+  </xsl:template>
+  <xsl:template match="node()" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>n</xsl:text>
+    <xsl:number count="node()" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="string-length(local-name(.))" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="translate(name(),':','.')" />
+  </xsl:template>
+<!--Strip characters-->  <xsl:template match="text()" priority="-1" />
+
+<!--SCHEMA SETUP-->
+<xsl:template match="/">
+    <svrl:schematron-output schemaVersion="iso" title="Schema for Factur-X; 1.07.2; EN16931-CONFORMANT-EXTENDED">
+      <xsl:comment>
+        <xsl:value-of select="$archiveDirParameter" />  Â 
+		 <xsl:value-of select="$archiveNameParameter" /> Â 
+		 <xsl:value-of select="$fileNameParameter" /> Â 
+		 <xsl:value-of select="$fileDirParameter" />
+      </xsl:comment>
+      <svrl:ns-prefix-in-attribute-values prefix="rsm" uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="qdt" uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="ram" uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="udt" uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M5" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M6" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M7" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M8" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M9" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M10" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M11" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M12" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M13" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M14" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M15" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M16" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M17" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M18" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M19" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M20" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M21" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M22" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M23" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M24" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M25" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M26" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M27" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M28" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M29" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M30" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M31" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M32" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M33" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M34" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M35" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M36" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M37" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M38" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M39" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M40" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M41" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M42" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M43" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M44" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M45" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M46" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M47" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M48" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M49" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M50" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M51" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M52" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M53" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M54" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M55" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M56" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M57" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M58" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M59" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M60" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M61" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M62" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M63" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M64" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M65" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M66" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M67" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M68" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M69" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M70" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M71" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M72" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M73" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M74" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M75" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M76" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M77" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M78" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M79" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M80" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M81" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M82" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M83" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M84" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M85" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M86" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M87" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M88" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M89" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M90" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M91" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M92" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M93" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M94" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M95" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M96" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M97" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M98" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M99" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M100" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M101" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M102" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M103" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M104" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M105" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M106" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M107" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M108" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M109" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M110" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M111" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M112" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M113" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M114" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M115" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M116" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M117" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M118" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M119" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M120" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M121" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M122" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M123" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M124" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M125" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M126" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M127" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M128" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M129" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M130" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M131" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M132" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M133" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M134" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M135" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M136" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M137" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M138" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M139" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M140" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M141" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M142" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M143" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M144" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M145" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M146" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M147" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M148" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M149" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M150" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M151" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M152" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M153" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M154" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M155" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M156" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M157" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M158" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M159" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M160" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M161" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M162" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M163" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M164" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M165" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M166" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M167" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M168" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M169" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M170" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M171" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M172" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M173" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M174" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M175" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M176" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M177" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M178" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M179" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M180" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M181" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M182" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M183" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M184" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M185" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M186" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M187" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M188" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M189" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M190" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M191" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M192" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M193" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M194" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M195" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M196" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M197" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M198" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M199" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M200" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M201" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M202" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M203" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M204" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M205" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M206" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M207" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M208" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M209" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M210" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M211" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M212" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M213" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M214" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M215" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M216" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M217" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M218" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M219" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M220" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M221" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M222" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M223" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M224" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M225" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M226" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M227" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M228" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M229" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M230" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M231" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M232" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M233" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M234" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M235" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M236" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M237" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M238" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M239" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M240" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M241" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M242" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M243" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M244" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M245" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M246" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M247" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M248" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M249" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M250" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M251" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M252" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M253" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M254" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M255" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M256" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M257" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M258" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M259" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M260" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M261" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M262" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M263" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M264" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M265" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M266" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M267" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M268" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M269" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M270" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M271" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M272" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M273" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M274" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M275" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M276" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M277" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M278" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M279" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M280" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M281" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M282" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M283" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M284" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M285" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M286" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M287" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M288" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M289" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M290" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M291" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M292" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M293" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M294" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M295" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M296" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M297" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M298" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M299" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M300" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M301" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M302" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M303" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M304" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M305" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M306" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M307" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M308" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M309" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M310" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M311" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M312" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M313" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M314" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M315" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M316" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M317" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M318" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M319" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M320" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M321" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M322" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M323" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M324" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M325" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M326" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M327" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M328" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M329" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M330" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M331" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M332" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M333" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M334" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M335" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M336" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M337" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M338" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M339" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M340" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M341" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M342" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M343" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M344" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M345" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M346" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M347" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M348" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M349" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M350" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M351" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M352" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M353" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M354" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M355" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M356" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M357" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M358" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M359" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M360" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M361" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M362" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M363" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M364" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M365" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M366" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M367" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M368" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M369" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M370" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M371" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M372" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M373" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M374" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M375" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M376" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M377" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M378" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M379" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M380" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M381" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M382" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M383" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M384" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M385" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M386" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M387" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M388" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M389" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M390" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M391" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M392" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M393" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M394" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M395" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M396" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M397" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M398" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M399" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M400" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M401" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M402" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M403" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M404" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M405" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M406" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M407" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M408" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M409" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M410" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M411" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M412" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M413" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M414" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M415" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M416" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M417" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M418" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M419" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M420" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M421" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M422" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M423" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M424" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M425" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M426" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M427" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M428" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M429" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M430" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M431" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M432" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M433" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M434" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M435" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M436" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M437" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M438" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M439" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M440" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M441" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M442" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M443" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M444" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M445" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M446" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M447" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M448" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M449" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M450" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M451" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M452" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M453" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M454" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M455" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M456" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M457" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M458" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M459" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M460" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M461" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M462" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M463" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M464" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M465" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M466" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M467" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M468" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M469" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M470" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M471" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M472" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M473" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M474" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M475" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M476" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M477" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M478" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M479" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M480" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M481" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M482" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M483" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M484" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M485" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M486" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M487" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M488" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M489" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M490" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M491" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M492" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M493" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M494" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M495" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M496" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M497" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M498" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M499" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M500" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M501" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M502" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M503" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M504" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M505" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M506" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M507" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M508" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M509" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M510" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M511" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M512" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M513" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M514" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M515" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M516" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M517" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M518" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M519" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M520" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M521" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M522" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M523" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M524" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M525" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M526" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M527" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M528" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M529" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M530" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M531" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M532" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M533" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M534" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M535" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M536" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M537" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M538" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M539" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M540" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M541" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M542" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M543" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M544" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M545" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M546" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M547" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M548" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M549" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M550" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M551" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M552" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M553" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M554" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M555" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M556" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M557" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M558" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M559" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M560" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M561" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M562" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M563" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M564" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M565" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M566" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M567" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M568" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M569" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M570" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M571" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M572" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M573" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M574" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M575" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M576" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M577" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M578" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M579" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M580" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M581" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M582" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M583" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M584" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M585" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M586" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M587" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M588" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M589" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M590" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M591" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M592" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M593" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M594" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M595" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M596" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M597" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M598" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M599" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M600" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M601" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M602" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M603" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M604" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M605" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M606" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M607" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M608" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M609" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M610" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M611" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M612" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M613" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M614" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M615" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M616" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M617" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M618" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M619" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M620" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M621" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M622" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M623" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M624" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M625" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M626" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M627" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M628" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M629" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M630" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M631" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M632" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M633" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M634" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M635" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M636" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M637" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M638" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M639" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M640" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M641" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M642" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M643" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M644" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M645" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M646" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M647" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M648" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M649" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M650" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M651" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M652" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M653" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M654" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M655" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M656" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M657" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M658" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M659" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M660" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M661" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M662" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M663" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M664" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M665" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M666" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M667" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M668" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M669" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M670" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M671" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M672" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M673" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M674" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M675" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M676" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M677" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M678" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M679" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M680" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M681" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M682" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M683" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M684" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M685" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M686" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M687" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M688" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M689" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M690" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M691" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M692" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M693" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M694" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M695" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M696" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M697" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M698" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M699" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M700" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M701" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M702" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M703" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M704" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M705" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M706" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M707" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M708" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M709" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M710" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M711" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M712" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M713" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M714" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M715" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M716" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M717" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M718" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M719" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M720" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M721" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M722" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M723" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M724" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M725" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M726" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M727" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M728" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M729" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M730" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M731" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M732" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M733" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M734" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M735" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M736" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M737" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M738" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M739" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M740" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M741" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M742" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M743" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M744" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M745" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M746" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M747" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M748" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M749" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M750" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M751" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M752" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M753" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M754" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M755" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M756" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M757" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M758" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M759" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M760" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M761" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M762" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M763" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M764" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M765" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M766" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M767" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M768" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M769" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M770" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M771" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M772" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M773" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M774" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M775" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M776" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M777" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M778" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M779" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M780" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M781" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M782" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M783" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M784" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M785" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M786" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M787" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M788" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M789" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M790" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M791" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M792" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M793" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M794" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M795" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M796" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M797" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M798" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M799" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M800" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M801" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M802" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M803" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M804" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M805" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M806" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M807" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M808" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M809" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M810" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M811" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M812" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M813" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M814" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M815" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M816" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M817" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M818" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M819" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M820" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M821" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M822" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M823" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M824" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M825" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M826" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M827" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M828" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M829" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M830" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M831" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M832" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M833" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M834" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M835" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M836" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M837" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M838" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M839" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M840" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M841" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M842" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M843" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M844" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M845" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M846" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M847" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M848" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M849" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M850" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M851" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M852" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M853" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M854" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M855" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M856" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M857" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M858" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M859" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M860" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M861" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M862" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M863" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M864" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M865" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M866" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M867" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M868" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M869" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M870" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M871" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M872" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M873" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M874" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M875" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M876" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M877" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M878" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M879" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M880" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M881" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M882" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M883" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M884" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M885" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M886" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M887" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M888" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M889" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M890" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M891" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M892" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M893" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M894" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M895" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M896" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M897" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M898" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M899" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M900" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M901" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M902" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M903" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M904" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M905" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M906" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M907" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M908" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M909" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M910" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M911" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M912" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M913" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M914" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M915" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M916" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M917" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M918" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M919" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M920" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M921" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M922" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M923" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M924" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M925" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M926" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M927" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M928" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M929" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M930" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M931" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M932" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M933" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M934" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M935" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M936" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M937" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M938" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M939" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M940" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M941" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M942" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M943" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M944" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M945" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M946" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M947" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M948" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M949" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M950" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M951" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M952" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M953" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M954" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M955" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M956" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M957" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M958" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M959" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M960" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M961" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M962" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M963" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M964" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M965" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M966" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M967" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M968" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M969" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M970" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M971" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M972" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M973" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M974" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M975" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M976" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M977" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M978" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M979" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M980" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M981" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M982" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M983" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M984" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M985" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M986" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M987" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M988" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M989" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M990" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M991" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M992" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M993" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M994" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M995" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M996" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M997" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M998" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M999" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1000" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1001" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1002" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1003" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1004" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1005" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1006" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1007" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1008" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1009" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1010" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1011" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1012" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1013" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1014" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1015" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1016" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1017" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1018" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1019" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1020" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1021" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1022" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1023" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1024" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1025" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1026" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1027" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1028" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1029" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1030" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1031" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1032" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1033" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1034" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1035" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1036" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1037" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1038" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1039" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1040" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1041" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1042" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1043" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1044" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1045" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1046" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1047" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1048" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1049" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1050" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M1051" select="/" />
+    </svrl:schematron-output>
+  </xsl:template>
+
+<!--SCHEMATRON PATTERNS-->
+<svrl:text>Schema for Factur-X; 1.07.2; EN16931-CONFORMANT-EXTENDED</svrl:text>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:AdditionalReferencedDocument" mode="M5" priority="1000">
+    <svrl:fired-rule context="//ram:AdditionalReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000280</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-52]-Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M5" priority="-1" />
+  <xsl:template match="@*|node()" mode="M5" priority="-2">
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M6" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:BasisAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:BasisAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000047</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-45]-Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CalculatedAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CalculatedAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000048</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-46]-Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000049</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-47]-Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:RateApplicablePercent) or (ram:CategoryCode = 'O')">
+          <xsl:attribute name="id">FX-SCH-A-000050</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-48]-Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))">
+          <xsl:attribute name="id">FX-SCH-A-000051</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-03]-Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000053</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-19]-The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:CalculatedAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000054</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-20]-The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M6" priority="-1" />
+  <xsl:template match="@*|node()" mode="M6" priority="-2">
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" mode="M7" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'Z'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='Z'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='Z'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'Z']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='Z']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'Z'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='Z'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='Z'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000298</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-Z-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âZâ ("Zero Rated"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charge amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is "Zero Rated" (Z).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000055</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000056</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M7" priority="-1" />
+  <xsl:template match="@*|node()" mode="M7" priority="-2">
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" mode="M8" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000058</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (&#xD;&#xA;            for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance&#xD;&#xA;        )" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies ( for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'S' and ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance )">
+          <xsl:attribute name="id">FX-SCH-A-000299</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is equal to âSâ ("Standard rated"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is "Standard rated" (S) and the VAT rate (BT-152, BT-96, BT-103, BT-X-274) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M8" priority="-1" />
+  <xsl:template match="@*|node()" mode="M8" priority="-2">
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']" mode="M9" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for&#xD;&#xA; $BT117 in xs:decimal(ram:CalculatedAmount), &#xD;&#xA; $BT116 in xs:decimal(ram:BasisAmount),&#xD;&#xA; $BT118 in xs:decimal(ram:RateApplicablePercent),&#xD;&#xA; $calculatedAmount in xs:decimal(round($BT116 * $BT118 * xs:decimal(100)) div xs:decimal(100*100)),&#xD;&#xA; $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)),&#xD;&#xA; $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])),&#xD;&#xA; $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)),&#xD;&#xA; $tolerance in xs:decimal(0.01),&#xD;&#xA; $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems),&#xD;&#xA; $diff in xs:decimal($BT117 - $calculatedAmount),&#xD;&#xA; $abs in xs:decimal(abs($diff))&#xD;&#xA;return&#xD;&#xA; $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $BT117 in xs:decimal(ram:CalculatedAmount), $BT116 in xs:decimal(ram:BasisAmount), $BT118 in xs:decimal(ram:RateApplicablePercent), $calculatedAmount in xs:decimal(round($BT116 * $BT118 * xs:decimal(100)) div xs:decimal(100*100)), $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])), $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems), $diff in xs:decimal($BT117 - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000300</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-S-09]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is equal to âSâ ("Standard rated"), Absolute Value of (VAT  category  tax  amount  (BT-117) - VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119)/100) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Standard rated " (S), and the VAT rate (BT-152, BT-96, BT-103, BT-X-274) equals the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M9" priority="-1" />
+  <xsl:template match="@*|node()" mode="M9" priority="-2">
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" mode="M10" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000059</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000060</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M10" priority="-1" />
+  <xsl:template match="@*|node()" mode="M10" priority="-2">
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" mode="M11" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000061</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000062</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000063</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000064</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-05]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000065</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-21]-Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000066</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-01]-The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000067</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-02]-The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M11" priority="-1" />
+  <xsl:template match="@*|node()" mode="M11" priority="-2">
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" mode="M12" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000068</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000069</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000070</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-38]-Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000071</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-06]-Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000072</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-22]-Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000073</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-05]-The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000074</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-06]-The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M12" priority="-1" />
+  <xsl:template match="@*|node()" mode="M12" priority="-2">
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableProductCharacteristic" mode="M13" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableProductCharacteristic" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Description) and (ram:Value)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Description) and (ram:Value)">
+          <xsl:attribute name="id">FX-SCH-A-000199</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-54]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M13" priority="-1" />
+  <xsl:template match="@*|node()" mode="M13" priority="-2">
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableProductCharacteristic/ram:TypeCode" mode="M14" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableProductCharacteristic/ram:TypeCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(contains(normalize-space(.), ' ')) and contains(' A AAA AAB AAC AAD AAF AAG AAH AAI AAJ AAK AAM AAN AAO AAP AAQ AAR AAS AAT AAU AAV AAW AAX AAY AAZ ABA ABB ABC ABD ABE ABF ABG ABH ABI ABJ ABK ABL ABM ABN ABO ABP ABS ABT ABX ABY ABZ ACA ACE ACG ACN ACP ACS ACV ACW ACX ADR ADS ADT ADU ADV ADW ADX ADY ADZ AEA AEB AEC AED AEE AEF AEG AEH AEI AEJ AEK AEL AEM AEN AEO AEP AEQ AER AES AET AEU AEV AEW AEX AEY AEZ AF AFA AFB AFC AFD AFE AFF AFG AFH AFI AFJ AFK AFL AFM AFN AFO AFP AFQ AFR AFS AFT AFU AFV AFW AFX B BL BMY BMZ BNA BNB BNC BND BNE BNF BNG BNH BNI BNJ BNK BNL BNM BNN BNO BNP BNQ BNR BNS BNT BNU BNV BNW BNX BNY BNZ BR BRA BRB BRC BRD BRE BRF BRG BRH BRI BRJ BRK BRL BRM BRN BRO BRP BRQ BRR BRS BRT BRU BRV BS BSW BSX BSY BSZ BTA BTB BTC BTD BTE BTF BTG BTH BTI BTJ BTK BTL BTM BW CHN CHO CM CT CV CZ D DI DL DN DP DR DS DW E EA F FI FL FN FV GG GW HF HM HT IB ID L LM LN LND M MO MW N OD PRS PTN RA RF RJ RMW RP RUN RY SQ T TC TH TN TT VGM VH VW WA WD WM WU XH XQ XZ YS ZAL ZAS ZB ZBI ZC ZCA ZCB ZCE ZCL ZCO ZCR ZCU ZFE ZFS ZGE ZH ZK ZMG ZMN ZMO ZN ZNA ZNB ZNI ZO ZP ZPB ZS ZSB ZSE ZSI ZSL ZSN ZTA ZTE ZTI ZV ZW ZWA ZZN ZZR ZZZ BEST_BEFORE_DATE COLOR_TEXT COMMISSION DEPOSIT_SYSTEM DEPOSIT_TYPE ENERGY_CLASS EXPIRATION_DATE FEE KIND_OF_ARTICLE MATERIAL METER_LOCATION METER_NUMBER ORGANIC_CONTROL_BODY PACKAGING_MATERIAL PACKAGING_TYPE PROMOTIONAL_VARIANT SEAL_NUMBER SIZE_CODE SIZE_TEXT TRADING_UNIT WASTE_CODE WASTE_FRACTION WEEE_NUMBER ', concat(' ', normalize-space(.), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(contains(normalize-space(.), ' ')) and contains(' A AAA AAB AAC AAD AAF AAG AAH AAI AAJ AAK AAM AAN AAO AAP AAQ AAR AAS AAT AAU AAV AAW AAX AAY AAZ ABA ABB ABC ABD ABE ABF ABG ABH ABI ABJ ABK ABL ABM ABN ABO ABP ABS ABT ABX ABY ABZ ACA ACE ACG ACN ACP ACS ACV ACW ACX ADR ADS ADT ADU ADV ADW ADX ADY ADZ AEA AEB AEC AED AEE AEF AEG AEH AEI AEJ AEK AEL AEM AEN AEO AEP AEQ AER AES AET AEU AEV AEW AEX AEY AEZ AF AFA AFB AFC AFD AFE AFF AFG AFH AFI AFJ AFK AFL AFM AFN AFO AFP AFQ AFR AFS AFT AFU AFV AFW AFX B BL BMY BMZ BNA BNB BNC BND BNE BNF BNG BNH BNI BNJ BNK BNL BNM BNN BNO BNP BNQ BNR BNS BNT BNU BNV BNW BNX BNY BNZ BR BRA BRB BRC BRD BRE BRF BRG BRH BRI BRJ BRK BRL BRM BRN BRO BRP BRQ BRR BRS BRT BRU BRV BS BSW BSX BSY BSZ BTA BTB BTC BTD BTE BTF BTG BTH BTI BTJ BTK BTL BTM BW CHN CHO CM CT CV CZ D DI DL DN DP DR DS DW E EA F FI FL FN FV GG GW HF HM HT IB ID L LM LN LND M MO MW N OD PRS PTN RA RF RJ RMW RP RUN RY SQ T TC TH TN TT VGM VH VW WA WD WM WU XH XQ XZ YS ZAL ZAS ZB ZBI ZC ZCA ZCB ZCE ZCL ZCO ZCR ZCU ZFE ZFS ZGE ZH ZK ZMG ZMN ZMO ZN ZNA ZNB ZNI ZO ZP ZPB ZS ZSB ZSE ZSI ZSL ZSN ZTA ZTE ZTI ZV ZW ZWA ZZN ZZR ZZZ BEST_BEFORE_DATE COLOR_TEXT COMMISSION DEPOSIT_SYSTEM DEPOSIT_TYPE ENERGY_CLASS EXPIRATION_DATE FEE KIND_OF_ARTICLE MATERIAL METER_LOCATION METER_NUMBER ORGANIC_CONTROL_BODY PACKAGING_MATERIAL PACKAGING_TYPE PROMOTIONAL_VARIANT SEAL_NUMBER SIZE_CODE SIZE_TEXT TRADING_UNIT WASTE_CODE WASTE_FRACTION WEEE_NUMBER ', concat(' ', normalize-space(.), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000345</xsl:attribute>
+          <xsl:attribute name="flag">warning</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-04]-To ensure automated processing of the article attributes without bilateral reconciliation, only values from the code list UNTDED 6313+Factur-X-Extension should be used. </svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M14" priority="-1" />
+  <xsl:template match="@*|node()" mode="M14" priority="-2">
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:ApplicableTradeSettlementFinancialCard" mode="M15" priority="1000">
+    <svrl:fired-rule context="//ram:ApplicableTradeSettlementFinancialCard" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(ram:ID)&lt;=10" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(ram:ID)&lt;=10">
+          <xsl:attribute name="id">FX-SCH-A-000281</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-51]-In accordance with card payments security standards an invoice should never include a full card primary account number (BT-87). At the moment PCI Security Standards Council has defined that the first 6 digits and last 4 digits are the maximum number of digits to be shown.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M15" priority="-1" />
+  <xsl:template match="@*|node()" mode="M15" priority="-2">
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:AssociatedDocumentLineDocument/ram:IncludedNote[ram:SubjectCode]" mode="M16" priority="1000">
+    <svrl:fired-rule context="//ram:AssociatedDocumentLineDocument/ram:IncludedNote[ram:SubjectCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ContentCode) or (ram:Content)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ContentCode) or (ram:Content)">
+          <xsl:attribute name="id">FX-SCH-A-000301</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-02]-If the invoice line item free text subject code (BT-X-10) is specified, either the coded invoice line item free text (BT-X-9) or the invoice line item free text (BT-127) must be specified, or both. If both BT-X-9 and BT-127 are specified, both must have the same meaning.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M16" priority="-1" />
+  <xsl:template match="@*|node()" mode="M16" priority="-2">
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:IncludedSupplyChainTradeLineItem" mode="M17" priority="1000">
+    <svrl:fired-rule context="//ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:AssociatedDocumentLineDocument/ram:LineID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000200</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-21]-Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)">
+          <xsl:attribute name="id">FX-SCH-A-000201</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)">
+          <xsl:attribute name="id">FX-SCH-A-000202</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-23]-An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000203</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-24]-Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000204</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-25]-Each Invoice line (BG-25) shall contain the Item name (BT-153).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000205</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-26]-Each Invoice line (BG-25) shall contain the Item net price (BT-146).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000206</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-27]-The Item net price (BT-146) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount >= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000207</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-28]-The Item gross price (BT-148) shall NOT be negative.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!='' or not (ram:SpecifiedTradeProduct/ram:GlobalID)">
+          <xsl:attribute name="id">FX-SCH-A-000208</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-64]-The Item standard identifier (BT-157) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!='') or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)">
+          <xsl:attribute name="id">FX-SCH-A-000209</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-65]-The Item classification identifier (BT-158) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)">
+          <xsl:attribute name="id">FX-SCH-A-000210</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000211</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-23]-The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M17" priority="-1" />
+  <xsl:template match="@*|node()" mode="M17" priority="-2">
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:PayeeTradeParty" mode="M18" priority="1000">
+    <svrl:fired-rule context="//ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))">
+          <xsl:attribute name="id">FX-SCH-A-000075</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-17]-The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M18" priority="-1" />
+  <xsl:template match="@*|node()" mode="M18" priority="-2">
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTaxRepresentativeTradeParty" mode="M19" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:Name)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:Name)">
+          <xsl:attribute name="id">FX-SCH-A-000076</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-18]-The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000077</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-19]-The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PostalTradeAddress/ram:CountryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PostalTradeAddress/ram:CountryID)">
+          <xsl:attribute name="id">FX-SCH-A-000078</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-20]-The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000079</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-56]-Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M19" priority="-1" />
+  <xsl:template match="@*|node()" mode="M19" priority="-2">
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTradeParty" mode="M20" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000001</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M20" priority="-1" />
+  <xsl:template match="@*|node()" mode="M20" priority="-2">
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" mode="M21" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000212</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-30]-If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:StartDateTime) or (ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:StartDateTime) or (ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000213</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-20]-If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M21" priority="-1" />
+  <xsl:template match="@*|node()" mode="M21" priority="-2">
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" mode="M22" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000214</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-42]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M22" priority="-1" />
+  <xsl:template match="@*|node()" mode="M22" priority="-2">
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" mode="M23" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']&#xD;&#xA;" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000215</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-41]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000216</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-07]-Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000217</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-23]-Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000218</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-24]-The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000219</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-25]-The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M23" priority="-1" />
+  <xsl:template match="@*|node()" mode="M23" priority="-2">
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" mode="M24" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ActualAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ActualAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000220</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-43]-Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000221</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-44]-Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000222</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-08]-Invoice line charge reason code (BT-145) and Invoice line charge reason (BT-144) shall indicate the same type of charge reason.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:Reason) or (../ram:ReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:Reason) or (../ram:ReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000223</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:ActualAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000224</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-27]-The allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(../ram:BasisAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000225</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-28]-The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M24" priority="-1" />
+  <xsl:template match="@*|node()" mode="M24" priority="-2">
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" mode="M25" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000002</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix âELâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M25" priority="-1" />
+  <xsl:template match="@*|node()" mode="M25" priority="-2">
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[not(ancestor::ram:SellerTradeParty)]" mode="M26" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[not(ancestor::ram:SellerTradeParty)]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID='VA'" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID='VA'">
+          <xsl:attribute name="id">FX-SCH-A-000302</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-03]-Only a VAT registration ID may be provided for the following business partners: the line level Ship-To (BT-X-66), the line level Ultimate-Ship-To (BT-X-84), the Sales-Agent (BT-X-340), the Buyer-Tax-Representative (BT-X-367), the Product-Enduser (BT-X-144), the Buyer-Agent (BT-X-411), the document level Ship-To (BT-X-161), the document level Ultimate-Ship-To (BT-X-180), the Ship-From (BT-X-199), the Invoicer (BT-X-223), the Invoicee (BT-X-242), the document level Payee (BT-X-257), the Payer (BT-X-481), or the payment-term-specific Payee (BT-X-509).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M26" priority="-1" />
+  <xsl:template match="@*|node()" mode="M26" priority="-2">
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge" mode="M27" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ChargeIndicator)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ChargeIndicator)">
+          <xsl:attribute name="id">FX-SCH-A-000080</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-66]-Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M27" priority="-1" />
+  <xsl:template match="@*|node()" mode="M27" priority="-2">
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M28" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000081</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000082</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M28" priority="-1" />
+  <xsl:template match="@*|node()" mode="M28" priority="-2">
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M29" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000083</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000084</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M29" priority="-1" />
+  <xsl:template match="@*|node()" mode="M29" priority="-2">
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M30" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000085</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000086</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M30" priority="-1" />
+  <xsl:template match="@*|node()" mode="M30" priority="-2">
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M31" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000087</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000088</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M31" priority="-1" />
+  <xsl:template match="@*|node()" mode="M31" priority="-2">
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M32" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000089</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000090</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M32" priority="-1" />
+  <xsl:template match="@*|node()" mode="M32" priority="-2">
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M33" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000091</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000092</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M33" priority="-1" />
+  <xsl:template match="@*|node()" mode="M33" priority="-2">
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M34" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000094</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-06]-A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M34" priority="-1" />
+  <xsl:template match="@*|node()" mode="M34" priority="-2">
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M35" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000095</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000096</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M35" priority="-1" />
+  <xsl:template match="@*|node()" mode="M35" priority="-2">
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M36" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000097</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000098</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M36" priority="-1" />
+  <xsl:template match="@*|node()" mode="M36" priority="-2">
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" mode="M37" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000099</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000100</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M37" priority="-1" />
+  <xsl:template match="@*|node()" mode="M37" priority="-2">
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" mode="M38" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000101</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000102</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M38" priority="-1" />
+  <xsl:template match="@*|node()" mode="M38" priority="-2">
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" mode="M39" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000103</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000104</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M39" priority="-1" />
+  <xsl:template match="@*|node()" mode="M39" priority="-2">
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" mode="M40" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000105</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000106</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M40" priority="-1" />
+  <xsl:template match="@*|node()" mode="M40" priority="-2">
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" mode="M41" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000107</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000108</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M41" priority="-1" />
+  <xsl:template match="@*|node()" mode="M41" priority="-2">
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" mode="M42" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000109</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000110</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M42" priority="-1" />
+  <xsl:template match="@*|node()" mode="M42" priority="-2">
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" mode="M43" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000112</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-07]-A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M43" priority="-1" />
+  <xsl:template match="@*|node()" mode="M43" priority="-2">
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" mode="M44" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000113</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000114</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M44" priority="-1" />
+  <xsl:template match="@*|node()" mode="M44" priority="-2">
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" mode="M45" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:CategoryTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000115</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-04]-An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000116</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M45" priority="-1" />
+  <xsl:template match="@*|node()" mode="M45" priority="-2">
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M46" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for $calculatedAmount in xs:decimal(round(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount) * xs:decimal(100)) div xs:decimal(100)),&#xD;&#xA;            $totalAmount in xs:decimal(ram:LineTotalAmount),&#xD;&#xA;            $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)),&#xD;&#xA;            $tolerance in xs:decimal(0.01),&#xD;&#xA;            $maxTolerance in $nbLineItems * $tolerance,&#xD;&#xA;            $diff in xs:decimal($totalAmount - $calculatedAmount),&#xD;&#xA;            $abs in xs:decimal(abs($diff))&#xD;&#xA;        return&#xD;&#xA;        $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $calculatedAmount in xs:decimal(round(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount) * xs:decimal(100)) div xs:decimal(100)), $totalAmount in xs:decimal(ram:LineTotalAmount), $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)), $tolerance in xs:decimal(0.01), $maxTolerance in $nbLineItems * $tolerance, $diff in xs:decimal($totalAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000303</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-CO-10]-Absolute Value of (Sum of Invoice line net amount (BT-106) - Î£ Invoice line net amounts (BT-131))&lt;= 0,01 * Number of line net amounts (BT-131).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:LineTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:LineTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000117</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-12]-An Invoice shall have the Sum of Invoice line net amount (BT-106).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TaxBasisTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TaxBasisTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000003</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:GrandTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:GrandTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000004</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:DuePayableAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:DuePayableAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000005</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-15]-An Invoice shall have the Amount due for payment (BT-115).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']) and not (ram:AllowanceTotalAmount)) or&#xD;&#xA;(for $calculatedAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100),&#xD;&#xA;            $totalAmount in xs:decimal(ram:AllowanceTotalAmount),&#xD;&#xA;            $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])),&#xD;&#xA;            $tolerance in xs:decimal(0.01),&#xD;&#xA;            $maxTolerance in $nbAllowanceItems * $tolerance,&#xD;&#xA;            $diff in xs:decimal($totalAmount - $calculatedAmount),&#xD;&#xA;            $abs in xs:decimal(abs($diff))&#xD;&#xA;        return&#xD;&#xA;        $abs le $maxTolerance)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']) and not (ram:AllowanceTotalAmount)) or (for $calculatedAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100), $totalAmount in xs:decimal(ram:AllowanceTotalAmount), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])), $tolerance in xs:decimal(0.01), $maxTolerance in $nbAllowanceItems * $tolerance, $diff in xs:decimal($totalAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance)">
+          <xsl:attribute name="id">FX-SCH-A-000304</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-CO-11]-Absolute Value of (Sum of allowances on document level (BT-107) - Î£ Document level allowance amounts (BT-92))&lt;= 0,01 * Number of Document level allowance amounts (BT-92).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) &#xD;&#xA;or&#xD;&#xA;(for $calculatedAmount in xs:decimal(xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 100 ) div 100)+ xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100)),&#xD;&#xA;            $totalAmount in xs:decimal(ram:ChargeTotalAmount),&#xD;&#xA;                        $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)),&#xD;&#xA;            $tolerance in xs:decimal(0.01),&#xD;&#xA;            $maxTolerance in $nbChargeItems * $tolerance,&#xD;&#xA;            $diff in xs:decimal($totalAmount - $calculatedAmount),&#xD;&#xA;            $abs in xs:decimal(abs($diff))&#xD;&#xA;        return&#xD;&#xA;        $abs le $maxTolerance)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (for $calculatedAmount in xs:decimal(xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 100 ) div 100)+ xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100)), $totalAmount in xs:decimal(ram:ChargeTotalAmount), $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)), $tolerance in xs:decimal(0.01), $maxTolerance in $nbChargeItems * $tolerance, $diff in xs:decimal($totalAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance)">
+          <xsl:attribute name="id">FX-SCH-A-000305</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-CO-12]-Absolute Value of (Sum of charges on document level (BT-108) - Î£ Document level charge amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272))&lt;= 0,01 * (Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for $BT109 in xs:decimal(ram:TaxBasisTotalAmount),&#xD;&#xA;   $BT131Sum in xs:decimal(round(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount) * xs:decimal(100)) div xs:decimal(100)),&#xD;&#xA;   $BT92Sum in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100),&#xD;&#xA;   $BT99Sum in xs:decimal(xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 100 ) div 100)+ xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100)),&#xD;&#xA;   $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)),&#xD;&#xA;   $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])),&#xD;&#xA;   $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)),&#xD;&#xA;            $tolerance in xs:decimal(0.01),&#xD;&#xA;            $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems),&#xD;&#xA;            $diff in xs:decimal($BT109 - $BT131Sum + $BT92Sum - $BT99Sum),&#xD;&#xA;            $abs in xs:decimal(abs($diff))&#xD;&#xA;        return&#xD;&#xA;        $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $BT109 in xs:decimal(ram:TaxBasisTotalAmount), $BT131Sum in xs:decimal(round(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount) * xs:decimal(100)) div xs:decimal(100)), $BT92Sum in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount)* 10 * 10 ) div 100), $BT99Sum in xs:decimal(xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount)* 100 ) div 100)+ xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100)), $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])), $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems), $diff in xs:decimal($BT109 - $BT131Sum + $BT92Sum - $BT99Sum), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000306</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-CO-13]-Absolute Value of (Invoice total amount without VAT (BT-109) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charge amounts (BT-99)) &lt;= 0,01 * (Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99)).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for $Currency in ../ram:InvoiceCurrencyCode,&#xD;&#xA;   $BT109 in xs:decimal(ram:TaxBasisTotalAmount),&#xD;&#xA;   $BT110 in xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]),   &#xD;&#xA;   $BT112 in xs:decimal(ram:GrandTotalAmount),&#xD;&#xA;   $nbTaxTotalAmountInvoiceCurrency in count (ram:TaxTotalAmount[@currencyID=$Currency] ),&#xD;&#xA;   $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)),&#xD;&#xA;   $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])),&#xD;&#xA;   $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)),&#xD;&#xA;   $tolerance in xs:decimal(0.01),&#xD;&#xA;   $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems),&#xD;&#xA;   $diff in xs:decimal($BT112 - $BT110 - $BT109),&#xD;&#xA;   $abs in xs:decimal(abs($diff))&#xD;&#xA;return&#xD;&#xA;  ($abs le $maxTolerance and $nbTaxTotalAmountInvoiceCurrency eq 1) or&#xD;&#xA;  ($BT109 eq $BT112 and $nbTaxTotalAmountInvoiceCurrency ne 1)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $Currency in ../ram:InvoiceCurrencyCode, $BT109 in xs:decimal(ram:TaxBasisTotalAmount), $BT110 in xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]), $BT112 in xs:decimal(ram:GrandTotalAmount), $nbTaxTotalAmountInvoiceCurrency in count (ram:TaxTotalAmount[@currencyID=$Currency] ), $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])), $nbChargeItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']) + count(../ram:SpecifiedLogisticsServiceCharge)), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowanceItems + $nbChargeItems), $diff in xs:decimal($BT112 - $BT110 - $BT109), $abs in xs:decimal(abs($diff)) return ($abs le $maxTolerance and $nbTaxTotalAmountInvoiceCurrency eq 1) or ($BT109 eq $BT112 and $nbTaxTotalAmountInvoiceCurrency ne 1)">
+          <xsl:attribute name="id">FX-SCH-A-000307</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-CO-15]-If Invoice Total VAT amount (BT-110) ,where currency (BT-110-0) is equal to BT-5, is present, then the Absolute Value of (Invoice total amount with VAT (BT-112) - Invoice total amount without VAT (BT-109) - Invoice total VAT amount (BT-110)) &lt;= 0,01 * (Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charges amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272). Else, Invoice total amount with VAT (BT-112) is equal to Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or &#xD;&#xA;    ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))">
+          <xsl:attribute name="id">FX-SCH-A-000122</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:LineTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000123</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-09]-The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:AllowanceTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000124</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-10]-The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:ChargeTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000125</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-11]-The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000006</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000007</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000008</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000126</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-15]-The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TotalPrepaidAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000127</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-16]-The allowed maximum number of decimals for the Paid amount (BT-113) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:RoundingAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000128</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-17]-The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000009</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))">
+          <xsl:attribute name="id">FX-SCH-A-000129</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-53]-If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M46" priority="-1" />
+  <xsl:template match="@*|node()" mode="M46" priority="-2">
+    <xsl:apply-templates mode="M46" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" mode="M47" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)">
+          <xsl:attribute name="id">FX-SCH-A-000130</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-14]-Invoice total VAT amount (BT-110) = Î£ VAT category tax amount (BT-117).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M47" priority="-1" />
+  <xsl:template match="@*|node()" mode="M47" priority="-2">
+    <xsl:apply-templates mode="M47" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans" mode="M48" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TypeCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TypeCode)">
+          <xsl:attribute name="id">FX-SCH-A-000131</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-49]-A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))">
+          <xsl:attribute name="id">FX-SCH-A-000132</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-27]-Either the IBAN or a Proprietary ID (BT-84) shall be used.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M48" priority="-1" />
+  <xsl:template match="@*|node()" mode="M48" priority="-2">
+    <xsl:apply-templates mode="M48" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" mode="M49" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000134</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M49" priority="-1" />
+  <xsl:template match="@*|node()" mode="M49" priority="-2">
+    <xsl:apply-templates mode="M49" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" mode="M50" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IBANID) or (ram:ProprietaryID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IBANID) or (ram:ProprietaryID)">
+          <xsl:attribute name="id">FX-SCH-A-000133</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-50]-A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M50" priority="-1" />
+  <xsl:template match="@*|node()" mode="M50" priority="-2">
+    <xsl:apply-templates mode="M50" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M51" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:ApplicableTradeTax" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:ApplicableTradeTax">
+          <xsl:attribute name="id">FX-SCH-A-000135</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M51" priority="-1" />
+  <xsl:template match="@*|node()" mode="M51" priority="-2">
+    <xsl:apply-templates mode="M51" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" mode="M52" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'AE'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='AE'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='AE'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'AE']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='AE']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'AE'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='AE'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='AE'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000308</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-AE-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âAEâ ("Reverse Charge"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charge amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is "Reversed Charge" (AE).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000136</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000137</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M52" priority="-1" />
+  <xsl:template match="@*|node()" mode="M52" priority="-2">
+    <xsl:apply-templates mode="M52" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" mode="M53" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='E']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'E'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='E'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='E'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'E']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='E']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='E']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='E']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'E'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='E'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='E'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000309</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-E-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âEâ ("Exempt from VAT"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Exempt from VAT" (E).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000138</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-09]-The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000139</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M53" priority="-1" />
+  <xsl:template match="@*|node()" mode="M53" priority="-2">
+    <xsl:apply-templates mode="M53" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" mode="M54" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='G']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'G'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='G'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='G'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'G']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='G']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='G']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='G']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'G'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='G'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='G'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000310</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-G-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âGâ ("Export outside the EU"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Export outside the EU " (G).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000140</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000141</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M54" priority="-1" />
+  <xsl:template match="@*|node()" mode="M54" priority="-2">
+    <xsl:apply-templates mode="M54" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" mode="M55" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='K']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'K'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='K'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='K'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'K']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='K']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='K']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='K']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'K'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='K'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='K'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000311</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-IC-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âKâ ("Intra-community supply"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Intra-community supply " (K)</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="../ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="../ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000142</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000143</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)">
+          <xsl:attribute name="id">FX-SCH-A-000144</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
+          <xsl:attribute name="id">FX-SCH-A-000145</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-12]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M55" priority="-1" />
+  <xsl:template match="@*|node()" mode="M55" priority="-2">
+    <xsl:apply-templates mode="M55" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M56" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='L']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'L'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='L'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='L'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'L']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='L']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='L']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'L'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='L'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='L'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000312</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-AF-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âLâ ("Canary Islands tax"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Canary Islands tax " (L).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000146</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000147</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M56" priority="-1" />
+  <xsl:template match="@*|node()" mode="M56" priority="-2">
+    <xsl:apply-templates mode="M56" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M57" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(../ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='M']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'M'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='M'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='M'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(../ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'M']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='M']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='M']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='M']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'M'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='M'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='M'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000313</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-AG-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âMâ ("Ceuta and Mellita tax"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Ceuta and Mellita tax " (M).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="true()" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="true()">
+          <xsl:attribute name="id">FX-SCH-A-000148</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000149</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M57" priority="-1" />
+  <xsl:template match="@*|node()" mode="M57" priority="-2">
+    <xsl:apply-templates mode="M57" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M58" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="for &#xD;&#xA;    $basisAmount in xs:decimal(ram:BasisAmount),&#xD;&#xA;    $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), &#xD;&#xA;       $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='O']/xs:decimal(ram:AppliedAmount)) * 100) div 100),&#xD;&#xA;    $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount)) * 100) div 100),&#xD;&#xA;    $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount),&#xD;&#xA;    $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'O'])),&#xD;&#xA;    $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='O'])),&#xD;&#xA;    $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='O'])),&#xD;&#xA;    $tolerance in xs:decimal(0.01),&#xD;&#xA;    $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges),&#xD;&#xA;    $diff in xs:decimal($basisAmount - $calculatedAmount),&#xD;&#xA;    $abs in xs:decimal(abs($diff))&#xD;&#xA;            return&#xD;&#xA;                $abs le $maxTolerance" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="for $basisAmount in xs:decimal(ram:BasisAmount), $lineAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = 'O']/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $chargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount)) * 100) div 100), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='O']/xs:decimal(ram:AppliedAmount)) * 100) div 100), $allowanceAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='O']/xs:decimal(ram:ActualAmount)) * 100) div 100), $calculatedAmount in xs:decimal($lineAmount + $chargeAmount + $logisticChargeAmount - $allowanceAmount), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'O'])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:CategoryTradeTax/ram:CategoryCode='O'])), $nbLogisticCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ram:AppliedTradeTax/ram:CategoryCode='O'])), $tolerance in xs:decimal(0.01), $maxTolerance in $tolerance * ($nbLineItems + $nbAllowancesOrCharges + $nbLogisticCharges), $diff in xs:decimal($basisAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance">
+          <xsl:attribute name="id">FX-SCH-A-000314</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-O-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to âOâ ("Not subject to VAT"), Absolute Value of (VAT category taxable amount (BT-116) - â Invoice line net amounts (BT-131) + Î£ Document level allowance amounts (BT-92) - Î£ Document level charges amounts (BT-99) - Î£ Logistics Service fee amounts (BT-x-272)) &lt;= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is " Not subject to VAT " (O).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:CalculatedAmount = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:CalculatedAmount = 0">
+          <xsl:attribute name="id">FX-SCH-A-000150</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)">
+          <xsl:attribute name="id">FX-SCH-A-000151</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M58" priority="-1" />
+  <xsl:template match="@*|node()" mode="M58" priority="-2">
+    <xsl:apply-templates mode="M58" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" mode="M59" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'AE']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
+          <xsl:attribute name="id">FX-SCH-A-000235</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000236</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M59" priority="-1" />
+  <xsl:template match="@*|node()" mode="M59" priority="-2">
+    <xsl:apply-templates mode="M59" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" mode="M60" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'E']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000237</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000238</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M60" priority="-1" />
+  <xsl:template match="@*|node()" mode="M60" priority="-2">
+    <xsl:apply-templates mode="M60" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" mode="M61" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'G']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000239</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000240</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M61" priority="-1" />
+  <xsl:template match="@*|node()" mode="M61" priority="-2">
+    <xsl:apply-templates mode="M61" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" mode="M62" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'K']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000241</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000242</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M62" priority="-1" />
+  <xsl:template match="@*|node()" mode="M62" priority="-2">
+    <xsl:apply-templates mode="M62" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" mode="M63" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'L']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000243</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000244</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M63" priority="-1" />
+  <xsl:template match="@*|node()" mode="M63" priority="-2">
+    <xsl:apply-templates mode="M63" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" mode="M64" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'M']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000245</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent >= 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent >= 0">
+          <xsl:attribute name="id">FX-SCH-A-000246</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M64" priority="-1" />
+  <xsl:template match="@*|node()" mode="M64" priority="-2">
+    <xsl:apply-templates mode="M64" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" mode="M65" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'O']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:RateApplicablePercent)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:RateApplicablePercent)">
+          <xsl:attribute name="id">FX-SCH-A-000248</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-05]-An Invoice line (BG-25) where the VAT category code (BT-151) is "Not subject to VAT" shall not contain an Invoiced item VAT rate (BT-152).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M65" priority="-1" />
+  <xsl:template match="@*|node()" mode="M65" priority="-2">
+    <xsl:apply-templates mode="M65" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" mode="M66" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000249</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent > 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent > 0">
+          <xsl:attribute name="id">FX-SCH-A-000250</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M66" priority="-1" />
+  <xsl:template match="@*|node()" mode="M66" priority="-2">
+    <xsl:apply-templates mode="M66" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" mode="M67" priority="1000">
+    <svrl:fired-rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'Z']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']">
+          <xsl:attribute name="id">FX-SCH-A-000251</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-02]-An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="ram:RateApplicablePercent = 0" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="ram:RateApplicablePercent = 0">
+          <xsl:attribute name="id">FX-SCH-A-000252</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Zero rated" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M67" priority="-1" />
+  <xsl:template match="@*|node()" mode="M67" priority="-2">
+    <xsl:apply-templates mode="M67" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice" mode="M68" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:IncludedSupplyChainTradeLineItem" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:IncludedSupplyChainTradeLineItem">
+          <xsl:attribute name="id">FX-SCH-A-000253</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-16]-An Invoice shall have at least one Invoice line (BG-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) > 0)">
+          <xsl:attribute name="id">FX-SCH-A-000155</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')">
+          <xsl:attribute name="id">FX-SCH-A-000010</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-01]-An Invoice shall have a Specification identifier (BT-24).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:ID !='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:ID !='')">
+          <xsl:attribute name="id">FX-SCH-A-000011</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-02]-An Invoice shall have an Invoice number (BT-1).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000012</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-03]-An Invoice shall have an Invoice issue date (BT-2).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:TypeCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:TypeCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000013</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-04]-An Invoice shall have an Invoice type code (BT-3).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000014</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-05]-An Invoice shall have an Invoice currency code (BT-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000015</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-06]-An Invoice shall contain the Seller name (BT-27).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000016</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-07]-An Invoice shall contain the Buyer name (BT-44).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000017</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-08]-An Invoice shall contain the Seller postal address (BG-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000018</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000156</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-10]-An Invoice shall contain the Buyer postal address (BG-8).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000157</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-11]-The Buyer postal address shall contain a Buyer country code (BT-55).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000158</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-62]-The Seller electronic address (BT-34) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)">
+          <xsl:attribute name="id">FX-SCH-A-000159</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-63]-The Buyer electronic address (BT-49) shall have a Scheme identifier.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and     ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='S']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='S'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='S']))">
+          <xsl:attribute name="id">FX-SCH-A-000254</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-S-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='Z'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='Z']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='Z'])))">
+          <xsl:attribute name="id">FX-SCH-A-000255</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-Z-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='E'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='E']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='E'])))">
+          <xsl:attribute name="id">FX-SCH-A-000256</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-E-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âExempt from VATâ shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='AE'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='AE']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='AE'])))">
+          <xsl:attribute name="id">FX-SCH-A-000257</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AE-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='K'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='K']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='K'])))">
+          <xsl:attribute name="id">FX-SCH-A-000258</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-IC-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode='G'])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='G']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='G'])))">
+          <xsl:attribute name="id">FX-SCH-A-000259</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-G-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( &#xD;&#xA;    count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and &#xD;&#xA;    (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or&#xD;&#xA;    exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O']) or exists(//ram:CategoryTradeTax[ram:CategoryCode='O'])))">
+          <xsl:attribute name="id">FX-SCH-A-000260</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-O-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='L']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='L'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='L']))">
+          <xsl:attribute name="id">FX-SCH-A-000261</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AF-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and &#xD;&#xA;    ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode='M']) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='M'])) >=2 or not (//ram:CategoryTradeTax[ram:CategoryCode='M']))">
+          <xsl:attribute name="id">FX-SCH-A-000262</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-AG-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(not(//ram:CountryID != 'IT') and //ram:CategoryCode ='B') or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000263</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-01]-An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is âSplit paymentâ shall be a domestic Italian invoice.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(//ram:CategoryCode ='B' and (not(//ram:CategoryCode ='S'))) or (not(//ram:CategoryCode ='B'))">
+          <xsl:attribute name="id">FX-SCH-A-000264</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-B-02]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âSplit payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or  a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is âStandard ratedâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M68" priority="-1" />
+  <xsl:template match="@*|node()" mode="M68" priority="-2">
+    <xsl:apply-templates mode="M68" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" mode="M69" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000283</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LanguageID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LanguageID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000315</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LanguageID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M69" priority="-1" />
+  <xsl:template match="@*|node()" mode="M69" priority="-2">
+    <xsl:apply-templates mode="M69" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod" mode="M70" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000316</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M70" priority="-1" />
+  <xsl:template match="@*|node()" mode="M70" priority="-2">
+    <xsl:apply-templates mode="M70" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:CompleteDateTime/udt:DateTimeString" mode="M71" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:CompleteDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M71" priority="-1" />
+  <xsl:template match="@*|node()" mode="M71" priority="-2">
+    <xsl:apply-templates mode="M71" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:CompleteDateTime/udt:DateTimeString[@format]" mode="M72" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:CompleteDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M72" priority="-1" />
+  <xsl:template match="@*|node()" mode="M72" priority="-2">
+    <xsl:apply-templates mode="M72" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:Description" mode="M73" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M73" priority="-1" />
+  <xsl:template match="@*|node()" mode="M73" priority="-2">
+    <xsl:apply-templates mode="M73" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:EndDateTime" mode="M74" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:EndDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:EndDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M74" priority="-1" />
+  <xsl:template match="@*|node()" mode="M74" priority="-2">
+    <xsl:apply-templates mode="M74" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:StartDateTime" mode="M75" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:EffectiveSpecifiedPeriod/ram:StartDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:StartDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M75" priority="-1" />
+  <xsl:template match="@*|node()" mode="M75" priority="-2">
+    <xsl:apply-templates mode="M75" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" mode="M76" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M76" priority="-1" />
+  <xsl:template match="@*|node()" mode="M76" priority="-2">
+    <xsl:apply-templates mode="M76" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" mode="M77" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000317</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SubjectCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SubjectCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000161</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SubjectCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M77" priority="-1" />
+  <xsl:template match="@*|node()" mode="M77" priority="-2">
+    <xsl:apply-templates mode="M77" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:ContentCode[@listID]" mode="M78" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:ContentCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M78" priority="-1" />
+  <xsl:template match="@*|node()" mode="M78" priority="-2">
+    <xsl:apply-templates mode="M78" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:ContentCode[@listVersionID]" mode="M79" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:ContentCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M79" priority="-1" />
+  <xsl:template match="@*|node()" mode="M79" priority="-2">
+    <xsl:apply-templates mode="M79" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" mode="M80" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode" />
+    <xsl:variable name="codeValue4" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000162</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SubjectCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M80" priority="-1" />
+  <xsl:template match="@*|node()" mode="M80" priority="-2">
+    <xsl:apply-templates mode="M80" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listID]" mode="M81" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M81" priority="-1" />
+  <xsl:template match="@*|node()" mode="M81" priority="-2">
+    <xsl:apply-templates mode="M81" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" mode="M82" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M82" priority="-1" />
+  <xsl:template match="@*|node()" mode="M82" priority="-2">
+    <xsl:apply-templates mode="M82" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote[ram:SubjectCode]" mode="M83" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote[ram:SubjectCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ContentCode) or (ram:Content)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ContentCode) or (ram:Content)">
+          <xsl:attribute name="id">FX-SCH-A-000318</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-FXEXT-01]-If the Invoice Free Text subject Code (BT-21) is specified, either the coded message free text (BT-X-5) or the message free text (BT-22) must be specified, or both. If both BT-X-5 and BT-22 are specified, both must have the same meaning.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M83" priority="-1" />
+  <xsl:template match="@*|node()" mode="M83" priority="-2">
+    <xsl:apply-templates mode="M83" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" mode="M84" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M84" priority="-1" />
+  <xsl:template match="@*|node()" mode="M84" priority="-2">
+    <xsl:apply-templates mode="M84" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" mode="M85" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M85" priority="-1" />
+  <xsl:template match="@*|node()" mode="M85" priority="-2">
+    <xsl:apply-templates mode="M85" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:LanguageID[@schemeID]" mode="M86" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:LanguageID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M86" priority="-1" />
+  <xsl:template match="@*|node()" mode="M86" priority="-2">
+    <xsl:apply-templates mode="M86" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" mode="M87" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue2" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M87" priority="-1" />
+  <xsl:template match="@*|node()" mode="M87" priority="-2">
+    <xsl:apply-templates mode="M87" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" mode="M88" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000024</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
+          <xsl:attribute name="id">FX-SCH-A-000025</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M88" priority="-1" />
+  <xsl:template match="@*|node()" mode="M88" priority="-2">
+    <xsl:apply-templates mode="M88" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" mode="M89" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M89" priority="-1" />
+  <xsl:template match="@*|node()" mode="M89" priority="-2">
+    <xsl:apply-templates mode="M89" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M90" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M90" priority="-1" />
+  <xsl:template match="@*|node()" mode="M90" priority="-2">
+    <xsl:apply-templates mode="M90" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" mode="M91" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M91" priority="-1" />
+  <xsl:template match="@*|node()" mode="M91" priority="-2">
+    <xsl:apply-templates mode="M91" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" mode="M92" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" />
+    <xsl:variable name="codeValue1" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M92" priority="-1" />
+  <xsl:template match="@*|node()" mode="M92" priority="-2">
+    <xsl:apply-templates mode="M92" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M93" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M93" priority="-1" />
+  <xsl:template match="@*|node()" mode="M93" priority="-2">
+    <xsl:apply-templates mode="M93" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" mode="M94" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedSupplyChainTradeLineItem)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedSupplyChainTradeLineItem)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000265</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedSupplyChainTradeLineItem' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M94" priority="-1" />
+  <xsl:template match="@*|node()" mode="M94" priority="-2">
+    <xsl:apply-templates mode="M94" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" mode="M95" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SellerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SellerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000027</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SellerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BuyerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BuyerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000028</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BuyerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M95" priority="-1" />
+  <xsl:template match="@*|node()" mode="M95" priority="-2">
+    <xsl:apply-templates mode="M95" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ not(ram:TypeCode=&quot;916&quot;) and  not(ram:TypeCode=&quot;50&quot;) and  not(ram:TypeCode=&quot;130&quot;)]" mode="M96" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ not(ram:TypeCode=&quot;916&quot;) and  not(ram:TypeCode=&quot;50&quot;) and  not(ram:TypeCode=&quot;130&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:AdditionalReferencedDocument[ not(ram:TypeCode="916") and  not(ram:TypeCode="50") and  not(ram:TypeCode="130")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M96" priority="-1" />
+  <xsl:template match="@*|node()" mode="M96" priority="-2">
+    <xsl:apply-templates mode="M96" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]" mode="M97" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M97" priority="-1" />
+  <xsl:template match="@*|node()" mode="M97" priority="-2">
+    <xsl:apply-templates mode="M97" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:AttachmentBinaryObject" mode="M98" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M98" priority="-1" />
+  <xsl:template match="@*|node()" mode="M98" priority="-2">
+    <xsl:apply-templates mode="M98" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M99" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M99" priority="-1" />
+  <xsl:template match="@*|node()" mode="M99" priority="-2">
+    <xsl:apply-templates mode="M99" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M100" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M100" priority="-1" />
+  <xsl:template match="@*|node()" mode="M100" priority="-2">
+    <xsl:apply-templates mode="M100" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M101" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M101" priority="-1" />
+  <xsl:template match="@*|node()" mode="M101" priority="-2">
+    <xsl:apply-templates mode="M101" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:LineID" mode="M102" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M102" priority="-1" />
+  <xsl:template match="@*|node()" mode="M102" priority="-2">
+    <xsl:apply-templates mode="M102" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:Name" mode="M103" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M103" priority="-1" />
+  <xsl:template match="@*|node()" mode="M103" priority="-2">
+    <xsl:apply-templates mode="M103" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:ReferenceTypeCode" mode="M104" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue15" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M104" priority="-1" />
+  <xsl:template match="@*|node()" mode="M104" priority="-2">
+    <xsl:apply-templates mode="M104" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:TypeCode" mode="M105" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue33" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=33]/enumeration[@value=$codeValue33]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=33]/enumeration[@value=$codeValue33]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M105" priority="-1" />
+  <xsl:template match="@*|node()" mode="M105" priority="-2">
+    <xsl:apply-templates mode="M105" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:URIID" mode="M106" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M106" priority="-1" />
+  <xsl:template match="@*|node()" mode="M106" priority="-2">
+    <xsl:apply-templates mode="M106" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]" mode="M107" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M107" priority="-1" />
+  <xsl:template match="@*|node()" mode="M107" priority="-2">
+    <xsl:apply-templates mode="M107" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:AttachmentBinaryObject" mode="M108" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M108" priority="-1" />
+  <xsl:template match="@*|node()" mode="M108" priority="-2">
+    <xsl:apply-templates mode="M108" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M109" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M109" priority="-1" />
+  <xsl:template match="@*|node()" mode="M109" priority="-2">
+    <xsl:apply-templates mode="M109" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M110" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M110" priority="-1" />
+  <xsl:template match="@*|node()" mode="M110" priority="-2">
+    <xsl:apply-templates mode="M110" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M111" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M111" priority="-1" />
+  <xsl:template match="@*|node()" mode="M111" priority="-2">
+    <xsl:apply-templates mode="M111" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:LineID" mode="M112" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M112" priority="-1" />
+  <xsl:template match="@*|node()" mode="M112" priority="-2">
+    <xsl:apply-templates mode="M112" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:Name" mode="M113" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M113" priority="-1" />
+  <xsl:template match="@*|node()" mode="M113" priority="-2">
+    <xsl:apply-templates mode="M113" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:ReferenceTypeCode" mode="M114" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M114" priority="-1" />
+  <xsl:template match="@*|node()" mode="M114" priority="-2">
+    <xsl:apply-templates mode="M114" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:TypeCode" mode="M115" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue32" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=32]/enumeration[@value=$codeValue32]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=32]/enumeration[@value=$codeValue32]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M115" priority="-1" />
+  <xsl:template match="@*|node()" mode="M115" priority="-2">
+    <xsl:apply-templates mode="M115" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:URIID" mode="M116" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M116" priority="-1" />
+  <xsl:template match="@*|node()" mode="M116" priority="-2">
+    <xsl:apply-templates mode="M116" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]" mode="M117" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000283</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AttachmentBinaryObject)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AttachmentBinaryObject)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000284</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AttachmentBinaryObject' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M117" priority="-1" />
+  <xsl:template match="@*|node()" mode="M117" priority="-2">
+    <xsl:apply-templates mode="M117" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject" mode="M118" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@mimeCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@mimeCode">
+          <xsl:attribute name="id">FX-SCH-A-000285</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@mimeCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@filename" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@filename">
+          <xsl:attribute name="id">FX-SCH-A-000286</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@filename' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M118" priority="-1" />
+  <xsl:template match="@*|node()" mode="M118" priority="-2">
+    <xsl:apply-templates mode="M118" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject[@mimeCode]" mode="M119" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject[@mimeCode]" />
+    <xsl:variable name="codeValue14" select="@mimeCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000287</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@mimeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M119" priority="-1" />
+  <xsl:template match="@*|node()" mode="M119" priority="-2">
+    <xsl:apply-templates mode="M119" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M120" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M120" priority="-1" />
+  <xsl:template match="@*|node()" mode="M120" priority="-2">
+    <xsl:apply-templates mode="M120" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M121" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M121" priority="-1" />
+  <xsl:template match="@*|node()" mode="M121" priority="-2">
+    <xsl:apply-templates mode="M121" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:IssuerAssignedID[@schemeID]" mode="M122" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M122" priority="-1" />
+  <xsl:template match="@*|node()" mode="M122" priority="-2">
+    <xsl:apply-templates mode="M122" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:LineID" mode="M123" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M123" priority="-1" />
+  <xsl:template match="@*|node()" mode="M123" priority="-2">
+    <xsl:apply-templates mode="M123" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:ReferenceTypeCode" mode="M124" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M124" priority="-1" />
+  <xsl:template match="@*|node()" mode="M124" priority="-2">
+    <xsl:apply-templates mode="M124" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:TypeCode" mode="M125" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:TypeCode" />
+    <xsl:variable name="codeValue31" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=31]/enumeration[@value=$codeValue31]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=31]/enumeration[@value=$codeValue31]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M125" priority="-1" />
+  <xsl:template match="@*|node()" mode="M125" priority="-2">
+    <xsl:apply-templates mode="M125" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:URIID[@schemeID]" mode="M126" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M126" priority="-1" />
+  <xsl:template match="@*|node()" mode="M126" priority="-2">
+    <xsl:apply-templates mode="M126" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ApplicableTradeDeliveryTerms" mode="M127" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ApplicableTradeDeliveryTerms" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DeliveryTypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DeliveryTypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000319</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DeliveryTypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M127" priority="-1" />
+  <xsl:template match="@*|node()" mode="M127" priority="-2">
+    <xsl:apply-templates mode="M127" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ApplicableTradeDeliveryTerms/ram:DeliveryTypeCode" mode="M128" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ApplicableTradeDeliveryTerms/ram:DeliveryTypeCode" />
+    <xsl:variable name="codeValue30" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=30]/enumeration[@value=$codeValue30]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=30]/enumeration[@value=$codeValue30]">
+          <xsl:attribute name="id">FX-SCH-A-000320</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:DeliveryTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M128" priority="-1" />
+  <xsl:template match="@*|node()" mode="M128" priority="-2">
+    <xsl:apply-templates mode="M128" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty" mode="M129" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M129" priority="-1" />
+  <xsl:template match="@*|node()" mode="M129" priority="-2">
+    <xsl:apply-templates mode="M129" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M130" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M130" priority="-1" />
+  <xsl:template match="@*|node()" mode="M130" priority="-2">
+    <xsl:apply-templates mode="M130" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M131" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M131" priority="-1" />
+  <xsl:template match="@*|node()" mode="M131" priority="-2">
+    <xsl:apply-templates mode="M131" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M132" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M132" priority="-1" />
+  <xsl:template match="@*|node()" mode="M132" priority="-2">
+    <xsl:apply-templates mode="M132" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M133" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M133" priority="-1" />
+  <xsl:template match="@*|node()" mode="M133" priority="-2">
+    <xsl:apply-templates mode="M133" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M134" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M134" priority="-1" />
+  <xsl:template match="@*|node()" mode="M134" priority="-2">
+    <xsl:apply-templates mode="M134" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M135" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M135" priority="-1" />
+  <xsl:template match="@*|node()" mode="M135" priority="-2">
+    <xsl:apply-templates mode="M135" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M136" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M136" priority="-1" />
+  <xsl:template match="@*|node()" mode="M136" priority="-2">
+    <xsl:apply-templates mode="M136" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:Description" mode="M137" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M137" priority="-1" />
+  <xsl:template match="@*|node()" mode="M137" priority="-2">
+    <xsl:apply-templates mode="M137" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:GlobalID" mode="M138" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M138" priority="-1" />
+  <xsl:template match="@*|node()" mode="M138" priority="-2">
+    <xsl:apply-templates mode="M138" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:GlobalID[@schemeID]" mode="M139" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M139" priority="-1" />
+  <xsl:template match="@*|node()" mode="M139" priority="-2">
+    <xsl:apply-templates mode="M139" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:ID[@schemeID]" mode="M140" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M140" priority="-1" />
+  <xsl:template match="@*|node()" mode="M140" priority="-2">
+    <xsl:apply-templates mode="M140" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress" mode="M141" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M141" priority="-1" />
+  <xsl:template match="@*|node()" mode="M141" priority="-2">
+    <xsl:apply-templates mode="M141" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M142" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M142" priority="-1" />
+  <xsl:template match="@*|node()" mode="M142" priority="-2">
+    <xsl:apply-templates mode="M142" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M143" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M143" priority="-1" />
+  <xsl:template match="@*|node()" mode="M143" priority="-2">
+    <xsl:apply-templates mode="M143" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M144" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M144" priority="-1" />
+  <xsl:template match="@*|node()" mode="M144" priority="-2">
+    <xsl:apply-templates mode="M144" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M145" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M145" priority="-1" />
+  <xsl:template match="@*|node()" mode="M145" priority="-2">
+    <xsl:apply-templates mode="M145" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M146" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M146" priority="-1" />
+  <xsl:template match="@*|node()" mode="M146" priority="-2">
+    <xsl:apply-templates mode="M146" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M147" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M147" priority="-1" />
+  <xsl:template match="@*|node()" mode="M147" priority="-2">
+    <xsl:apply-templates mode="M147" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M148" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M148" priority="-1" />
+  <xsl:template match="@*|node()" mode="M148" priority="-2">
+    <xsl:apply-templates mode="M148" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M149" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M149" priority="-1" />
+  <xsl:template match="@*|node()" mode="M149" priority="-2">
+    <xsl:apply-templates mode="M149" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedTaxRegistration" mode="M150" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M150" priority="-1" />
+  <xsl:template match="@*|node()" mode="M150" priority="-2">
+    <xsl:apply-templates mode="M150" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M151" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M151" priority="-1" />
+  <xsl:template match="@*|node()" mode="M151" priority="-2">
+    <xsl:apply-templates mode="M151" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication" mode="M152" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M152" priority="-1" />
+  <xsl:template match="@*|node()" mode="M152" priority="-2">
+    <xsl:apply-templates mode="M152" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M153" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M153" priority="-1" />
+  <xsl:template match="@*|node()" mode="M153" priority="-2">
+    <xsl:apply-templates mode="M153" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M154" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M154" priority="-1" />
+  <xsl:template match="@*|node()" mode="M154" priority="-2">
+    <xsl:apply-templates mode="M154" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M155" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerAgentTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M155" priority="-1" />
+  <xsl:template match="@*|node()" mode="M155" priority="-2">
+    <xsl:apply-templates mode="M155" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" mode="M156" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M156" priority="-1" />
+  <xsl:template match="@*|node()" mode="M156" priority="-2">
+    <xsl:apply-templates mode="M156" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M157" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M157" priority="-1" />
+  <xsl:template match="@*|node()" mode="M157" priority="-2">
+    <xsl:apply-templates mode="M157" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M158" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M158" priority="-1" />
+  <xsl:template match="@*|node()" mode="M158" priority="-2">
+    <xsl:apply-templates mode="M158" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M159" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M159" priority="-1" />
+  <xsl:template match="@*|node()" mode="M159" priority="-2">
+    <xsl:apply-templates mode="M159" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M160" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M160" priority="-1" />
+  <xsl:template match="@*|node()" mode="M160" priority="-2">
+    <xsl:apply-templates mode="M160" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID" mode="M161" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M161" priority="-1" />
+  <xsl:template match="@*|node()" mode="M161" priority="-2">
+    <xsl:apply-templates mode="M161" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" mode="M162" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M162" priority="-1" />
+  <xsl:template match="@*|node()" mode="M162" priority="-2">
+    <xsl:apply-templates mode="M162" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M163" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M163" priority="-1" />
+  <xsl:template match="@*|node()" mode="M163" priority="-2">
+    <xsl:apply-templates mode="M163" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" mode="M164" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M164" priority="-1" />
+  <xsl:template match="@*|node()" mode="M164" priority="-2">
+    <xsl:apply-templates mode="M164" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" mode="M165" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M165" priority="-1" />
+  <xsl:template match="@*|node()" mode="M165" priority="-2">
+    <xsl:apply-templates mode="M165" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty" mode="M166" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)=1">
+          <xsl:attribute name="id">FX-SCH-A-000169</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M166" priority="-1" />
+  <xsl:template match="@*|node()" mode="M166" priority="-2">
+    <xsl:apply-templates mode="M166" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M167" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M167" priority="-1" />
+  <xsl:template match="@*|node()" mode="M167" priority="-2">
+    <xsl:apply-templates mode="M167" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M168" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M168" priority="-1" />
+  <xsl:template match="@*|node()" mode="M168" priority="-2">
+    <xsl:apply-templates mode="M168" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M169" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M169" priority="-1" />
+  <xsl:template match="@*|node()" mode="M169" priority="-2">
+    <xsl:apply-templates mode="M169" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M170" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M170" priority="-1" />
+  <xsl:template match="@*|node()" mode="M170" priority="-2">
+    <xsl:apply-templates mode="M170" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M171" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M171" priority="-1" />
+  <xsl:template match="@*|node()" mode="M171" priority="-2">
+    <xsl:apply-templates mode="M171" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M172" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M172" priority="-1" />
+  <xsl:template match="@*|node()" mode="M172" priority="-2">
+    <xsl:apply-templates mode="M172" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M173" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M173" priority="-1" />
+  <xsl:template match="@*|node()" mode="M173" priority="-2">
+    <xsl:apply-templates mode="M173" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:Description" mode="M174" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M174" priority="-1" />
+  <xsl:template match="@*|node()" mode="M174" priority="-2">
+    <xsl:apply-templates mode="M174" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:GlobalID" mode="M175" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M175" priority="-1" />
+  <xsl:template match="@*|node()" mode="M175" priority="-2">
+    <xsl:apply-templates mode="M175" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:GlobalID[@schemeID]" mode="M176" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M176" priority="-1" />
+  <xsl:template match="@*|node()" mode="M176" priority="-2">
+    <xsl:apply-templates mode="M176" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:ID[@schemeID]" mode="M177" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M177" priority="-1" />
+  <xsl:template match="@*|node()" mode="M177" priority="-2">
+    <xsl:apply-templates mode="M177" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress" mode="M178" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M178" priority="-1" />
+  <xsl:template match="@*|node()" mode="M178" priority="-2">
+    <xsl:apply-templates mode="M178" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M179" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M179" priority="-1" />
+  <xsl:template match="@*|node()" mode="M179" priority="-2">
+    <xsl:apply-templates mode="M179" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M180" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M180" priority="-1" />
+  <xsl:template match="@*|node()" mode="M180" priority="-2">
+    <xsl:apply-templates mode="M180" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M181" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M181" priority="-1" />
+  <xsl:template match="@*|node()" mode="M181" priority="-2">
+    <xsl:apply-templates mode="M181" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M182" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M182" priority="-1" />
+  <xsl:template match="@*|node()" mode="M182" priority="-2">
+    <xsl:apply-templates mode="M182" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M183" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M183" priority="-1" />
+  <xsl:template match="@*|node()" mode="M183" priority="-2">
+    <xsl:apply-templates mode="M183" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M184" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M184" priority="-1" />
+  <xsl:template match="@*|node()" mode="M184" priority="-2">
+    <xsl:apply-templates mode="M184" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M185" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M185" priority="-1" />
+  <xsl:template match="@*|node()" mode="M185" priority="-2">
+    <xsl:apply-templates mode="M185" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M186" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M186" priority="-1" />
+  <xsl:template match="@*|node()" mode="M186" priority="-2">
+    <xsl:apply-templates mode="M186" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" mode="M187" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M187" priority="-1" />
+  <xsl:template match="@*|node()" mode="M187" priority="-2">
+    <xsl:apply-templates mode="M187" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M188" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M188" priority="-1" />
+  <xsl:template match="@*|node()" mode="M188" priority="-2">
+    <xsl:apply-templates mode="M188" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" mode="M189" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M189" priority="-1" />
+  <xsl:template match="@*|node()" mode="M189" priority="-2">
+    <xsl:apply-templates mode="M189" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M190" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M190" priority="-1" />
+  <xsl:template match="@*|node()" mode="M190" priority="-2">
+    <xsl:apply-templates mode="M190" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M191" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M191" priority="-1" />
+  <xsl:template match="@*|node()" mode="M191" priority="-2">
+    <xsl:apply-templates mode="M191" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M192" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M192" priority="-1" />
+  <xsl:template match="@*|node()" mode="M192" priority="-2">
+    <xsl:apply-templates mode="M192" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" mode="M193" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M193" priority="-1" />
+  <xsl:template match="@*|node()" mode="M193" priority="-2">
+    <xsl:apply-templates mode="M193" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M194" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M194" priority="-1" />
+  <xsl:template match="@*|node()" mode="M194" priority="-2">
+    <xsl:apply-templates mode="M194" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M195" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M195" priority="-1" />
+  <xsl:template match="@*|node()" mode="M195" priority="-2">
+    <xsl:apply-templates mode="M195" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M196" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M196" priority="-1" />
+  <xsl:template match="@*|node()" mode="M196" priority="-2">
+    <xsl:apply-templates mode="M196" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M197" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M197" priority="-1" />
+  <xsl:template match="@*|node()" mode="M197" priority="-2">
+    <xsl:apply-templates mode="M197" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M198" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M198" priority="-1" />
+  <xsl:template match="@*|node()" mode="M198" priority="-2">
+    <xsl:apply-templates mode="M198" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M199" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M199" priority="-1" />
+  <xsl:template match="@*|node()" mode="M199" priority="-2">
+    <xsl:apply-templates mode="M199" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M200" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M200" priority="-1" />
+  <xsl:template match="@*|node()" mode="M200" priority="-2">
+    <xsl:apply-templates mode="M200" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" mode="M201" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M201" priority="-1" />
+  <xsl:template match="@*|node()" mode="M201" priority="-2">
+    <xsl:apply-templates mode="M201" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" mode="M202" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M202" priority="-1" />
+  <xsl:template match="@*|node()" mode="M202" priority="-2">
+    <xsl:apply-templates mode="M202" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" mode="M203" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M203" priority="-1" />
+  <xsl:template match="@*|node()" mode="M203" priority="-2">
+    <xsl:apply-templates mode="M203" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" mode="M204" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M204" priority="-1" />
+  <xsl:template match="@*|node()" mode="M204" priority="-2">
+    <xsl:apply-templates mode="M204" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M205" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M205" priority="-1" />
+  <xsl:template match="@*|node()" mode="M205" priority="-2">
+    <xsl:apply-templates mode="M205" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M206" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M206" priority="-1" />
+  <xsl:template match="@*|node()" mode="M206" priority="-2">
+    <xsl:apply-templates mode="M206" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M207" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M207" priority="-1" />
+  <xsl:template match="@*|node()" mode="M207" priority="-2">
+    <xsl:apply-templates mode="M207" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M208" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M208" priority="-1" />
+  <xsl:template match="@*|node()" mode="M208" priority="-2">
+    <xsl:apply-templates mode="M208" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M209" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M209" priority="-1" />
+  <xsl:template match="@*|node()" mode="M209" priority="-2">
+    <xsl:apply-templates mode="M209" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M210" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M210" priority="-1" />
+  <xsl:template match="@*|node()" mode="M210" priority="-2">
+    <xsl:apply-templates mode="M210" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M211" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M211" priority="-1" />
+  <xsl:template match="@*|node()" mode="M211" priority="-2">
+    <xsl:apply-templates mode="M211" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M212" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M212" priority="-1" />
+  <xsl:template match="@*|node()" mode="M212" priority="-2">
+    <xsl:apply-templates mode="M212" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" mode="M213" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M213" priority="-1" />
+  <xsl:template match="@*|node()" mode="M213" priority="-2">
+    <xsl:apply-templates mode="M213" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M214" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M214" priority="-1" />
+  <xsl:template match="@*|node()" mode="M214" priority="-2">
+    <xsl:apply-templates mode="M214" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M215" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue28" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=28]/enumeration[@value=$codeValue28]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=28]/enumeration[@value=$codeValue28]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M215" priority="-1" />
+  <xsl:template match="@*|node()" mode="M215" priority="-2">
+    <xsl:apply-templates mode="M215" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" mode="M216" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M216" priority="-1" />
+  <xsl:template match="@*|node()" mode="M216" priority="-2">
+    <xsl:apply-templates mode="M216" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M217" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M217" priority="-1" />
+  <xsl:template match="@*|node()" mode="M217" priority="-2">
+    <xsl:apply-templates mode="M217" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M218" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M218" priority="-1" />
+  <xsl:template match="@*|node()" mode="M218" priority="-2">
+    <xsl:apply-templates mode="M218" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M219" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M219" priority="-1" />
+  <xsl:template match="@*|node()" mode="M219" priority="-2">
+    <xsl:apply-templates mode="M219" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" mode="M220" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M220" priority="-1" />
+  <xsl:template match="@*|node()" mode="M220" priority="-2">
+    <xsl:apply-templates mode="M220" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" mode="M221" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M221" priority="-1" />
+  <xsl:template match="@*|node()" mode="M221" priority="-2">
+    <xsl:apply-templates mode="M221" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M222" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M222" priority="-1" />
+  <xsl:template match="@*|node()" mode="M222" priority="-2">
+    <xsl:apply-templates mode="M222" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M223" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M223" priority="-1" />
+  <xsl:template match="@*|node()" mode="M223" priority="-2">
+    <xsl:apply-templates mode="M223" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M224" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M224" priority="-1" />
+  <xsl:template match="@*|node()" mode="M224" priority="-2">
+    <xsl:apply-templates mode="M224" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:LineID" mode="M225" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M225" priority="-1" />
+  <xsl:template match="@*|node()" mode="M225" priority="-2">
+    <xsl:apply-templates mode="M225" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:Name" mode="M226" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M226" priority="-1" />
+  <xsl:template match="@*|node()" mode="M226" priority="-2">
+    <xsl:apply-templates mode="M226" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" mode="M227" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue15" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M227" priority="-1" />
+  <xsl:template match="@*|node()" mode="M227" priority="-2">
+    <xsl:apply-templates mode="M227" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" mode="M228" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M228" priority="-1" />
+  <xsl:template match="@*|node()" mode="M228" priority="-2">
+    <xsl:apply-templates mode="M228" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:URIID" mode="M229" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M229" priority="-1" />
+  <xsl:template match="@*|node()" mode="M229" priority="-2">
+    <xsl:apply-templates mode="M229" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty" mode="M230" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M230" priority="-1" />
+  <xsl:template match="@*|node()" mode="M230" priority="-2">
+    <xsl:apply-templates mode="M230" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M231" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M231" priority="-1" />
+  <xsl:template match="@*|node()" mode="M231" priority="-2">
+    <xsl:apply-templates mode="M231" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M232" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M232" priority="-1" />
+  <xsl:template match="@*|node()" mode="M232" priority="-2">
+    <xsl:apply-templates mode="M232" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M233" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M233" priority="-1" />
+  <xsl:template match="@*|node()" mode="M233" priority="-2">
+    <xsl:apply-templates mode="M233" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M234" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M234" priority="-1" />
+  <xsl:template match="@*|node()" mode="M234" priority="-2">
+    <xsl:apply-templates mode="M234" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M235" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M235" priority="-1" />
+  <xsl:template match="@*|node()" mode="M235" priority="-2">
+    <xsl:apply-templates mode="M235" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M236" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M236" priority="-1" />
+  <xsl:template match="@*|node()" mode="M236" priority="-2">
+    <xsl:apply-templates mode="M236" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M237" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M237" priority="-1" />
+  <xsl:template match="@*|node()" mode="M237" priority="-2">
+    <xsl:apply-templates mode="M237" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:Description" mode="M238" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M238" priority="-1" />
+  <xsl:template match="@*|node()" mode="M238" priority="-2">
+    <xsl:apply-templates mode="M238" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:GlobalID" mode="M239" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M239" priority="-1" />
+  <xsl:template match="@*|node()" mode="M239" priority="-2">
+    <xsl:apply-templates mode="M239" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:GlobalID[@schemeID]" mode="M240" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M240" priority="-1" />
+  <xsl:template match="@*|node()" mode="M240" priority="-2">
+    <xsl:apply-templates mode="M240" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:ID[@schemeID]" mode="M241" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M241" priority="-1" />
+  <xsl:template match="@*|node()" mode="M241" priority="-2">
+    <xsl:apply-templates mode="M241" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress" mode="M242" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M242" priority="-1" />
+  <xsl:template match="@*|node()" mode="M242" priority="-2">
+    <xsl:apply-templates mode="M242" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M243" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M243" priority="-1" />
+  <xsl:template match="@*|node()" mode="M243" priority="-2">
+    <xsl:apply-templates mode="M243" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M244" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M244" priority="-1" />
+  <xsl:template match="@*|node()" mode="M244" priority="-2">
+    <xsl:apply-templates mode="M244" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M245" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M245" priority="-1" />
+  <xsl:template match="@*|node()" mode="M245" priority="-2">
+    <xsl:apply-templates mode="M245" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M246" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M246" priority="-1" />
+  <xsl:template match="@*|node()" mode="M246" priority="-2">
+    <xsl:apply-templates mode="M246" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M247" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M247" priority="-1" />
+  <xsl:template match="@*|node()" mode="M247" priority="-2">
+    <xsl:apply-templates mode="M247" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M248" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M248" priority="-1" />
+  <xsl:template match="@*|node()" mode="M248" priority="-2">
+    <xsl:apply-templates mode="M248" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M249" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M249" priority="-1" />
+  <xsl:template match="@*|node()" mode="M249" priority="-2">
+    <xsl:apply-templates mode="M249" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M250" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M250" priority="-1" />
+  <xsl:template match="@*|node()" mode="M250" priority="-2">
+    <xsl:apply-templates mode="M250" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedTaxRegistration" mode="M251" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M251" priority="-1" />
+  <xsl:template match="@*|node()" mode="M251" priority="-2">
+    <xsl:apply-templates mode="M251" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M252" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M252" priority="-1" />
+  <xsl:template match="@*|node()" mode="M252" priority="-2">
+    <xsl:apply-templates mode="M252" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication" mode="M253" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M253" priority="-1" />
+  <xsl:template match="@*|node()" mode="M253" priority="-2">
+    <xsl:apply-templates mode="M253" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M254" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M254" priority="-1" />
+  <xsl:template match="@*|node()" mode="M254" priority="-2">
+    <xsl:apply-templates mode="M254" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M255" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M255" priority="-1" />
+  <xsl:template match="@*|node()" mode="M255" priority="-2">
+    <xsl:apply-templates mode="M255" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M256" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ProductEndUserTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M256" priority="-1" />
+  <xsl:template match="@*|node()" mode="M256" priority="-2">
+    <xsl:apply-templates mode="M256" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument" mode="M257" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M257" priority="-1" />
+  <xsl:template match="@*|node()" mode="M257" priority="-2">
+    <xsl:apply-templates mode="M257" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:AttachmentBinaryObject" mode="M258" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M258" priority="-1" />
+  <xsl:template match="@*|node()" mode="M258" priority="-2">
+    <xsl:apply-templates mode="M258" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M259" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M259" priority="-1" />
+  <xsl:template match="@*|node()" mode="M259" priority="-2">
+    <xsl:apply-templates mode="M259" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M260" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M260" priority="-1" />
+  <xsl:template match="@*|node()" mode="M260" priority="-2">
+    <xsl:apply-templates mode="M260" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M261" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M261" priority="-1" />
+  <xsl:template match="@*|node()" mode="M261" priority="-2">
+    <xsl:apply-templates mode="M261" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:LineID" mode="M262" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M262" priority="-1" />
+  <xsl:template match="@*|node()" mode="M262" priority="-2">
+    <xsl:apply-templates mode="M262" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:Name" mode="M263" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M263" priority="-1" />
+  <xsl:template match="@*|node()" mode="M263" priority="-2">
+    <xsl:apply-templates mode="M263" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:ReferenceTypeCode" mode="M264" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M264" priority="-1" />
+  <xsl:template match="@*|node()" mode="M264" priority="-2">
+    <xsl:apply-templates mode="M264" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:TypeCode" mode="M265" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M265" priority="-1" />
+  <xsl:template match="@*|node()" mode="M265" priority="-2">
+    <xsl:apply-templates mode="M265" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:URIID" mode="M266" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:QuotationReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M266" priority="-1" />
+  <xsl:template match="@*|node()" mode="M266" priority="-2">
+    <xsl:apply-templates mode="M266" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty" mode="M267" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M267" priority="-1" />
+  <xsl:template match="@*|node()" mode="M267" priority="-2">
+    <xsl:apply-templates mode="M267" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M268" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M268" priority="-1" />
+  <xsl:template match="@*|node()" mode="M268" priority="-2">
+    <xsl:apply-templates mode="M268" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M269" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M269" priority="-1" />
+  <xsl:template match="@*|node()" mode="M269" priority="-2">
+    <xsl:apply-templates mode="M269" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M270" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M270" priority="-1" />
+  <xsl:template match="@*|node()" mode="M270" priority="-2">
+    <xsl:apply-templates mode="M270" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M271" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M271" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M271" priority="-1" />
+  <xsl:template match="@*|node()" mode="M271" priority="-2">
+    <xsl:apply-templates mode="M271" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M272" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M272" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M272" priority="-1" />
+  <xsl:template match="@*|node()" mode="M272" priority="-2">
+    <xsl:apply-templates mode="M272" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M273" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M273" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M273" priority="-1" />
+  <xsl:template match="@*|node()" mode="M273" priority="-2">
+    <xsl:apply-templates mode="M273" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M274" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M274" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M274" priority="-1" />
+  <xsl:template match="@*|node()" mode="M274" priority="-2">
+    <xsl:apply-templates mode="M274" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:Description" mode="M275" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M275" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M275" priority="-1" />
+  <xsl:template match="@*|node()" mode="M275" priority="-2">
+    <xsl:apply-templates mode="M275" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:GlobalID" mode="M276" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M276" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M276" priority="-1" />
+  <xsl:template match="@*|node()" mode="M276" priority="-2">
+    <xsl:apply-templates mode="M276" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:GlobalID[@schemeID]" mode="M277" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M277" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M277" priority="-1" />
+  <xsl:template match="@*|node()" mode="M277" priority="-2">
+    <xsl:apply-templates mode="M277" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:ID[@schemeID]" mode="M278" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M278" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M278" priority="-1" />
+  <xsl:template match="@*|node()" mode="M278" priority="-2">
+    <xsl:apply-templates mode="M278" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress" mode="M279" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M279" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M279" priority="-1" />
+  <xsl:template match="@*|node()" mode="M279" priority="-2">
+    <xsl:apply-templates mode="M279" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M280" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M280" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M280" priority="-1" />
+  <xsl:template match="@*|node()" mode="M280" priority="-2">
+    <xsl:apply-templates mode="M280" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M281" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M281" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M281" priority="-1" />
+  <xsl:template match="@*|node()" mode="M281" priority="-2">
+    <xsl:apply-templates mode="M281" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M282" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M282" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M282" priority="-1" />
+  <xsl:template match="@*|node()" mode="M282" priority="-2">
+    <xsl:apply-templates mode="M282" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M283" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M283" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M283" priority="-1" />
+  <xsl:template match="@*|node()" mode="M283" priority="-2">
+    <xsl:apply-templates mode="M283" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M284" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M284" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M284" priority="-1" />
+  <xsl:template match="@*|node()" mode="M284" priority="-2">
+    <xsl:apply-templates mode="M284" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M285" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M285" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M285" priority="-1" />
+  <xsl:template match="@*|node()" mode="M285" priority="-2">
+    <xsl:apply-templates mode="M285" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M286" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M286" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M286" priority="-1" />
+  <xsl:template match="@*|node()" mode="M286" priority="-2">
+    <xsl:apply-templates mode="M286" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M287" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M287" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M287" priority="-1" />
+  <xsl:template match="@*|node()" mode="M287" priority="-2">
+    <xsl:apply-templates mode="M287" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedTaxRegistration" mode="M288" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M288" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M288" priority="-1" />
+  <xsl:template match="@*|node()" mode="M288" priority="-2">
+    <xsl:apply-templates mode="M288" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M289" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M289" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M289" priority="-1" />
+  <xsl:template match="@*|node()" mode="M289" priority="-2">
+    <xsl:apply-templates mode="M289" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication" mode="M290" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M290" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M290" priority="-1" />
+  <xsl:template match="@*|node()" mode="M290" priority="-2">
+    <xsl:apply-templates mode="M290" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M291" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M291" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M291" priority="-1" />
+  <xsl:template match="@*|node()" mode="M291" priority="-2">
+    <xsl:apply-templates mode="M291" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M292" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M292" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M292" priority="-1" />
+  <xsl:template match="@*|node()" mode="M292" priority="-2">
+    <xsl:apply-templates mode="M292" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M293" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SalesAgentTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M293" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M293" priority="-1" />
+  <xsl:template match="@*|node()" mode="M293" priority="-2">
+    <xsl:apply-templates mode="M293" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument" mode="M294" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M294" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M294" priority="-1" />
+  <xsl:template match="@*|node()" mode="M294" priority="-2">
+    <xsl:apply-templates mode="M294" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M295" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M295" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M295" priority="-1" />
+  <xsl:template match="@*|node()" mode="M295" priority="-2">
+    <xsl:apply-templates mode="M295" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M296" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M296" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M296" priority="-1" />
+  <xsl:template match="@*|node()" mode="M296" priority="-2">
+    <xsl:apply-templates mode="M296" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M297" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M297" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M297" priority="-1" />
+  <xsl:template match="@*|node()" mode="M297" priority="-2">
+    <xsl:apply-templates mode="M297" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M298" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M298" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M298" priority="-1" />
+  <xsl:template match="@*|node()" mode="M298" priority="-2">
+    <xsl:apply-templates mode="M298" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID" mode="M299" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M299" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M299" priority="-1" />
+  <xsl:template match="@*|node()" mode="M299" priority="-2">
+    <xsl:apply-templates mode="M299" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" mode="M300" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M300" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M300" priority="-1" />
+  <xsl:template match="@*|node()" mode="M300" priority="-2">
+    <xsl:apply-templates mode="M300" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M301" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M301" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M301" priority="-1" />
+  <xsl:template match="@*|node()" mode="M301" priority="-2">
+    <xsl:apply-templates mode="M301" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" mode="M302" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M302" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M302" priority="-1" />
+  <xsl:template match="@*|node()" mode="M302" priority="-2">
+    <xsl:apply-templates mode="M302" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" mode="M303" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M303" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M303" priority="-1" />
+  <xsl:template match="@*|node()" mode="M303" priority="-2">
+    <xsl:apply-templates mode="M303" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" mode="M304" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)=1">
+          <xsl:attribute name="id">FX-SCH-A-000169</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M304" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M304" priority="-1" />
+  <xsl:template match="@*|node()" mode="M304" priority="-2">
+    <xsl:apply-templates mode="M304" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M305" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M305" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M305" priority="-1" />
+  <xsl:template match="@*|node()" mode="M305" priority="-2">
+    <xsl:apply-templates mode="M305" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M306" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M306" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M306" priority="-1" />
+  <xsl:template match="@*|node()" mode="M306" priority="-2">
+    <xsl:apply-templates mode="M306" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M307" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M307" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M307" priority="-1" />
+  <xsl:template match="@*|node()" mode="M307" priority="-2">
+    <xsl:apply-templates mode="M307" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M308" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M308" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M308" priority="-1" />
+  <xsl:template match="@*|node()" mode="M308" priority="-2">
+    <xsl:apply-templates mode="M308" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M309" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M309" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M309" priority="-1" />
+  <xsl:template match="@*|node()" mode="M309" priority="-2">
+    <xsl:apply-templates mode="M309" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M310" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M310" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M310" priority="-1" />
+  <xsl:template match="@*|node()" mode="M310" priority="-2">
+    <xsl:apply-templates mode="M310" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M311" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M311" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M311" priority="-1" />
+  <xsl:template match="@*|node()" mode="M311" priority="-2">
+    <xsl:apply-templates mode="M311" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Description" mode="M312" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M312" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M312" priority="-1" />
+  <xsl:template match="@*|node()" mode="M312" priority="-2">
+    <xsl:apply-templates mode="M312" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" mode="M313" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M313" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M313" priority="-1" />
+  <xsl:template match="@*|node()" mode="M313" priority="-2">
+    <xsl:apply-templates mode="M313" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID[@schemeID]" mode="M314" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M314" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M314" priority="-1" />
+  <xsl:template match="@*|node()" mode="M314" priority="-2">
+    <xsl:apply-templates mode="M314" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID[@schemeID]" mode="M315" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M315" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M315" priority="-1" />
+  <xsl:template match="@*|node()" mode="M315" priority="-2">
+    <xsl:apply-templates mode="M315" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" mode="M316" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M316" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M316" priority="-1" />
+  <xsl:template match="@*|node()" mode="M316" priority="-2">
+    <xsl:apply-templates mode="M316" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M317" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M317" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M317" priority="-1" />
+  <xsl:template match="@*|node()" mode="M317" priority="-2">
+    <xsl:apply-templates mode="M317" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M318" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M318" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M318" priority="-1" />
+  <xsl:template match="@*|node()" mode="M318" priority="-2">
+    <xsl:apply-templates mode="M318" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M319" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M319" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M319" priority="-1" />
+  <xsl:template match="@*|node()" mode="M319" priority="-2">
+    <xsl:apply-templates mode="M319" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M320" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M320" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M320" priority="-1" />
+  <xsl:template match="@*|node()" mode="M320" priority="-2">
+    <xsl:apply-templates mode="M320" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M321" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M321" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M321" priority="-1" />
+  <xsl:template match="@*|node()" mode="M321" priority="-2">
+    <xsl:apply-templates mode="M321" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M322" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M322" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M322" priority="-1" />
+  <xsl:template match="@*|node()" mode="M322" priority="-2">
+    <xsl:apply-templates mode="M322" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M323" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M323" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M323" priority="-1" />
+  <xsl:template match="@*|node()" mode="M323" priority="-2">
+    <xsl:apply-templates mode="M323" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M324" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M324" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M324" priority="-1" />
+  <xsl:template match="@*|node()" mode="M324" priority="-2">
+    <xsl:apply-templates mode="M324" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" mode="M325" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M325" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M325" priority="-1" />
+  <xsl:template match="@*|node()" mode="M325" priority="-2">
+    <xsl:apply-templates mode="M325" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M326" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M326" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M326" priority="-1" />
+  <xsl:template match="@*|node()" mode="M326" priority="-2">
+    <xsl:apply-templates mode="M326" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" mode="M327" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue29" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=29]/enumeration[@value=$codeValue29]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=29]/enumeration[@value=$codeValue29]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M327" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M327" priority="-1" />
+  <xsl:template match="@*|node()" mode="M327" priority="-2">
+    <xsl:apply-templates mode="M327" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" mode="M328" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M328" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M328" priority="-1" />
+  <xsl:template match="@*|node()" mode="M328" priority="-2">
+    <xsl:apply-templates mode="M328" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M329" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M329" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M329" priority="-1" />
+  <xsl:template match="@*|node()" mode="M329" priority="-2">
+    <xsl:apply-templates mode="M329" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M330" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M330" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M330" priority="-1" />
+  <xsl:template match="@*|node()" mode="M330" priority="-2">
+    <xsl:apply-templates mode="M330" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M331" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M331" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M331" priority="-1" />
+  <xsl:template match="@*|node()" mode="M331" priority="-2">
+    <xsl:apply-templates mode="M331" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" mode="M332" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000033</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000034</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M332" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M332" priority="-1" />
+  <xsl:template match="@*|node()" mode="M332" priority="-2">
+    <xsl:apply-templates mode="M332" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M333" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M333" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M333" priority="-1" />
+  <xsl:template match="@*|node()" mode="M333" priority="-2">
+    <xsl:apply-templates mode="M333" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M334" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M334" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M334" priority="-1" />
+  <xsl:template match="@*|node()" mode="M334" priority="-2">
+    <xsl:apply-templates mode="M334" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M335" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M335" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M335" priority="-1" />
+  <xsl:template match="@*|node()" mode="M335" priority="-2">
+    <xsl:apply-templates mode="M335" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M336" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M336" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M336" priority="-1" />
+  <xsl:template match="@*|node()" mode="M336" priority="-2">
+    <xsl:apply-templates mode="M336" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M337" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M337" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M337" priority="-1" />
+  <xsl:template match="@*|node()" mode="M337" priority="-2">
+    <xsl:apply-templates mode="M337" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M338" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M338" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M338" priority="-1" />
+  <xsl:template match="@*|node()" mode="M338" priority="-2">
+    <xsl:apply-templates mode="M338" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M339" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M339" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M339" priority="-1" />
+  <xsl:template match="@*|node()" mode="M339" priority="-2">
+    <xsl:apply-templates mode="M339" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" mode="M340" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M340" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M340" priority="-1" />
+  <xsl:template match="@*|node()" mode="M340" priority="-2">
+    <xsl:apply-templates mode="M340" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" mode="M341" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M341" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M341" priority="-1" />
+  <xsl:template match="@*|node()" mode="M341" priority="-2">
+    <xsl:apply-templates mode="M341" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" mode="M342" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M342" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M342" priority="-1" />
+  <xsl:template match="@*|node()" mode="M342" priority="-2">
+    <xsl:apply-templates mode="M342" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" mode="M343" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M343" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M343" priority="-1" />
+  <xsl:template match="@*|node()" mode="M343" priority="-2">
+    <xsl:apply-templates mode="M343" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M344" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M344" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M344" priority="-1" />
+  <xsl:template match="@*|node()" mode="M344" priority="-2">
+    <xsl:apply-templates mode="M344" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M345" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M345" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M345" priority="-1" />
+  <xsl:template match="@*|node()" mode="M345" priority="-2">
+    <xsl:apply-templates mode="M345" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M346" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M346" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M346" priority="-1" />
+  <xsl:template match="@*|node()" mode="M346" priority="-2">
+    <xsl:apply-templates mode="M346" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M347" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M347" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M347" priority="-1" />
+  <xsl:template match="@*|node()" mode="M347" priority="-2">
+    <xsl:apply-templates mode="M347" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M348" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M348" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M348" priority="-1" />
+  <xsl:template match="@*|node()" mode="M348" priority="-2">
+    <xsl:apply-templates mode="M348" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M349" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M349" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M349" priority="-1" />
+  <xsl:template match="@*|node()" mode="M349" priority="-2">
+    <xsl:apply-templates mode="M349" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M350" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M350" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M350" priority="-1" />
+  <xsl:template match="@*|node()" mode="M350" priority="-2">
+    <xsl:apply-templates mode="M350" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M351" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M351" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M351" priority="-1" />
+  <xsl:template match="@*|node()" mode="M351" priority="-2">
+    <xsl:apply-templates mode="M351" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" mode="M352" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and  not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M352" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M352" priority="-1" />
+  <xsl:template match="@*|node()" mode="M352" priority="-2">
+    <xsl:apply-templates mode="M352" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" mode="M353" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M353" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M353" priority="-1" />
+  <xsl:template match="@*|node()" mode="M353" priority="-2">
+    <xsl:apply-templates mode="M353" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" mode="M354" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M354" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M354" priority="-1" />
+  <xsl:template match="@*|node()" mode="M354" priority="-2">
+    <xsl:apply-templates mode="M354" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" mode="M355" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M355" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M355" priority="-1" />
+  <xsl:template match="@*|node()" mode="M355" priority="-2">
+    <xsl:apply-templates mode="M355" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" mode="M356" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M356" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M356" priority="-1" />
+  <xsl:template match="@*|node()" mode="M356" priority="-2">
+    <xsl:apply-templates mode="M356" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" mode="M357" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M357" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M357" priority="-1" />
+  <xsl:template match="@*|node()" mode="M357" priority="-2">
+    <xsl:apply-templates mode="M357" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M358" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M358" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M358" priority="-1" />
+  <xsl:template match="@*|node()" mode="M358" priority="-2">
+    <xsl:apply-templates mode="M358" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M359" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M359" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M359" priority="-1" />
+  <xsl:template match="@*|node()" mode="M359" priority="-2">
+    <xsl:apply-templates mode="M359" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M360" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M360" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M360" priority="-1" />
+  <xsl:template match="@*|node()" mode="M360" priority="-2">
+    <xsl:apply-templates mode="M360" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID[@schemeID]" mode="M361" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M361" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M361" priority="-1" />
+  <xsl:template match="@*|node()" mode="M361" priority="-2">
+    <xsl:apply-templates mode="M361" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument" mode="M362" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M362" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M362" priority="-1" />
+  <xsl:template match="@*|node()" mode="M362" priority="-2">
+    <xsl:apply-templates mode="M362" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M363" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M363" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M363" priority="-1" />
+  <xsl:template match="@*|node()" mode="M363" priority="-2">
+    <xsl:apply-templates mode="M363" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M364" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M364" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M364" priority="-1" />
+  <xsl:template match="@*|node()" mode="M364" priority="-2">
+    <xsl:apply-templates mode="M364" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M365" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M365" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M365" priority="-1" />
+  <xsl:template match="@*|node()" mode="M365" priority="-2">
+    <xsl:apply-templates mode="M365" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M366" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M366" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M366" priority="-1" />
+  <xsl:template match="@*|node()" mode="M366" priority="-2">
+    <xsl:apply-templates mode="M366" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:LineID" mode="M367" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M367" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M367" priority="-1" />
+  <xsl:template match="@*|node()" mode="M367" priority="-2">
+    <xsl:apply-templates mode="M367" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:Name" mode="M368" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M368" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M368" priority="-1" />
+  <xsl:template match="@*|node()" mode="M368" priority="-2">
+    <xsl:apply-templates mode="M368" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M369" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M369" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M369" priority="-1" />
+  <xsl:template match="@*|node()" mode="M369" priority="-2">
+    <xsl:apply-templates mode="M369" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:TypeCode" mode="M370" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M370" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M370" priority="-1" />
+  <xsl:template match="@*|node()" mode="M370" priority="-2">
+    <xsl:apply-templates mode="M370" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:URIID" mode="M371" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M371" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M371" priority="-1" />
+  <xsl:template match="@*|node()" mode="M371" priority="-2">
+    <xsl:apply-templates mode="M371" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" mode="M372" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!='') or not (ram:ShipToTradeParty/ram:PostalTradeAddress)">
+          <xsl:attribute name="id">FX-SCH-A-000170</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-57]-Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M372" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M372" priority="-1" />
+  <xsl:template match="@*|node()" mode="M372" priority="-2">
+    <xsl:apply-templates mode="M372" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" mode="M373" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:OccurrenceDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:OccurrenceDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000171</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M373" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M373" priority="-1" />
+  <xsl:template match="@*|node()" mode="M373" priority="-2">
+    <xsl:apply-templates mode="M373" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" mode="M374" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M374" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M374" priority="-1" />
+  <xsl:template match="@*|node()" mode="M374" priority="-2">
+    <xsl:apply-templates mode="M374" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" mode="M375" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M375" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M375" priority="-1" />
+  <xsl:template match="@*|node()" mode="M375" priority="-2">
+    <xsl:apply-templates mode="M375" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument" mode="M376" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M376" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M376" priority="-1" />
+  <xsl:template match="@*|node()" mode="M376" priority="-2">
+    <xsl:apply-templates mode="M376" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:AttachmentBinaryObject" mode="M377" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M377" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M377" priority="-1" />
+  <xsl:template match="@*|node()" mode="M377" priority="-2">
+    <xsl:apply-templates mode="M377" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M378" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M378" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M378" priority="-1" />
+  <xsl:template match="@*|node()" mode="M378" priority="-2">
+    <xsl:apply-templates mode="M378" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M379" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M379" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M379" priority="-1" />
+  <xsl:template match="@*|node()" mode="M379" priority="-2">
+    <xsl:apply-templates mode="M379" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M380" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M380" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M380" priority="-1" />
+  <xsl:template match="@*|node()" mode="M380" priority="-2">
+    <xsl:apply-templates mode="M380" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:LineID" mode="M381" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M381" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M381" priority="-1" />
+  <xsl:template match="@*|node()" mode="M381" priority="-2">
+    <xsl:apply-templates mode="M381" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:Name" mode="M382" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M382" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M382" priority="-1" />
+  <xsl:template match="@*|node()" mode="M382" priority="-2">
+    <xsl:apply-templates mode="M382" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:ReferenceTypeCode" mode="M383" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M383" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M383" priority="-1" />
+  <xsl:template match="@*|node()" mode="M383" priority="-2">
+    <xsl:apply-templates mode="M383" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:TypeCode" mode="M384" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M384" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M384" priority="-1" />
+  <xsl:template match="@*|node()" mode="M384" priority="-2">
+    <xsl:apply-templates mode="M384" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:URIID" mode="M385" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M385" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M385" priority="-1" />
+  <xsl:template match="@*|node()" mode="M385" priority="-2">
+    <xsl:apply-templates mode="M385" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" mode="M386" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M386" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M386" priority="-1" />
+  <xsl:template match="@*|node()" mode="M386" priority="-2">
+    <xsl:apply-templates mode="M386" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M387" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M387" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M387" priority="-1" />
+  <xsl:template match="@*|node()" mode="M387" priority="-2">
+    <xsl:apply-templates mode="M387" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M388" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M388" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M388" priority="-1" />
+  <xsl:template match="@*|node()" mode="M388" priority="-2">
+    <xsl:apply-templates mode="M388" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M389" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M389" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M389" priority="-1" />
+  <xsl:template match="@*|node()" mode="M389" priority="-2">
+    <xsl:apply-templates mode="M389" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M390" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M390" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M390" priority="-1" />
+  <xsl:template match="@*|node()" mode="M390" priority="-2">
+    <xsl:apply-templates mode="M390" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID" mode="M391" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M391" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M391" priority="-1" />
+  <xsl:template match="@*|node()" mode="M391" priority="-2">
+    <xsl:apply-templates mode="M391" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" mode="M392" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M392" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M392" priority="-1" />
+  <xsl:template match="@*|node()" mode="M392" priority="-2">
+    <xsl:apply-templates mode="M392" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M393" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M393" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M393" priority="-1" />
+  <xsl:template match="@*|node()" mode="M393" priority="-2">
+    <xsl:apply-templates mode="M393" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" mode="M394" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M394" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M394" priority="-1" />
+  <xsl:template match="@*|node()" mode="M394" priority="-2">
+    <xsl:apply-templates mode="M394" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" mode="M395" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M395" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M395" priority="-1" />
+  <xsl:template match="@*|node()" mode="M395" priority="-2">
+    <xsl:apply-templates mode="M395" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument" mode="M396" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M396" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M396" priority="-1" />
+  <xsl:template match="@*|node()" mode="M396" priority="-2">
+    <xsl:apply-templates mode="M396" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M397" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M397" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M397" priority="-1" />
+  <xsl:template match="@*|node()" mode="M397" priority="-2">
+    <xsl:apply-templates mode="M397" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M398" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M398" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M398" priority="-1" />
+  <xsl:template match="@*|node()" mode="M398" priority="-2">
+    <xsl:apply-templates mode="M398" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M399" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M399" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M399" priority="-1" />
+  <xsl:template match="@*|node()" mode="M399" priority="-2">
+    <xsl:apply-templates mode="M399" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M400" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M400" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M400" priority="-1" />
+  <xsl:template match="@*|node()" mode="M400" priority="-2">
+    <xsl:apply-templates mode="M400" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID" mode="M401" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M401" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M401" priority="-1" />
+  <xsl:template match="@*|node()" mode="M401" priority="-2">
+    <xsl:apply-templates mode="M401" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" mode="M402" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M402" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M402" priority="-1" />
+  <xsl:template match="@*|node()" mode="M402" priority="-2">
+    <xsl:apply-templates mode="M402" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M403" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M403" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M403" priority="-1" />
+  <xsl:template match="@*|node()" mode="M403" priority="-2">
+    <xsl:apply-templates mode="M403" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" mode="M404" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M404" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M404" priority="-1" />
+  <xsl:template match="@*|node()" mode="M404" priority="-2">
+    <xsl:apply-templates mode="M404" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" mode="M405" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M405" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M405" priority="-1" />
+  <xsl:template match="@*|node()" mode="M405" priority="-2">
+    <xsl:apply-templates mode="M405" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:RelatedSupplyChainConsignment/ram:SpecifiedLogisticsTransportMovement" mode="M406" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:RelatedSupplyChainConsignment/ram:SpecifiedLogisticsTransportMovement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ModeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ModeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000322</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ModeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M406" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M406" priority="-1" />
+  <xsl:template match="@*|node()" mode="M406" priority="-2">
+    <xsl:apply-templates mode="M406" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:RelatedSupplyChainConsignment/ram:SpecifiedLogisticsTransportMovement/ram:ModeCode" mode="M407" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:RelatedSupplyChainConsignment/ram:SpecifiedLogisticsTransportMovement/ram:ModeCode" />
+    <xsl:variable name="codeValue34" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=34]/enumeration[@value=$codeValue34]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=34]/enumeration[@value=$codeValue34]">
+          <xsl:attribute name="id">FX-SCH-A-000346</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ModeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M407" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M407" priority="-1" />
+  <xsl:template match="@*|node()" mode="M407" priority="-2">
+    <xsl:apply-templates mode="M407" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty" mode="M408" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M408" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M408" priority="-1" />
+  <xsl:template match="@*|node()" mode="M408" priority="-2">
+    <xsl:apply-templates mode="M408" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M409" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M409" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M409" priority="-1" />
+  <xsl:template match="@*|node()" mode="M409" priority="-2">
+    <xsl:apply-templates mode="M409" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M410" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M410" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M410" priority="-1" />
+  <xsl:template match="@*|node()" mode="M410" priority="-2">
+    <xsl:apply-templates mode="M410" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M411" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M411" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M411" priority="-1" />
+  <xsl:template match="@*|node()" mode="M411" priority="-2">
+    <xsl:apply-templates mode="M411" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M412" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M412" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M412" priority="-1" />
+  <xsl:template match="@*|node()" mode="M412" priority="-2">
+    <xsl:apply-templates mode="M412" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M413" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M413" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M413" priority="-1" />
+  <xsl:template match="@*|node()" mode="M413" priority="-2">
+    <xsl:apply-templates mode="M413" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M414" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M414" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M414" priority="-1" />
+  <xsl:template match="@*|node()" mode="M414" priority="-2">
+    <xsl:apply-templates mode="M414" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M415" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M415" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M415" priority="-1" />
+  <xsl:template match="@*|node()" mode="M415" priority="-2">
+    <xsl:apply-templates mode="M415" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:Description" mode="M416" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M416" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M416" priority="-1" />
+  <xsl:template match="@*|node()" mode="M416" priority="-2">
+    <xsl:apply-templates mode="M416" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:GlobalID" mode="M417" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M417" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M417" priority="-1" />
+  <xsl:template match="@*|node()" mode="M417" priority="-2">
+    <xsl:apply-templates mode="M417" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:GlobalID[@schemeID]" mode="M418" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M418" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M418" priority="-1" />
+  <xsl:template match="@*|node()" mode="M418" priority="-2">
+    <xsl:apply-templates mode="M418" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:ID[@schemeID]" mode="M419" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M419" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M419" priority="-1" />
+  <xsl:template match="@*|node()" mode="M419" priority="-2">
+    <xsl:apply-templates mode="M419" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress" mode="M420" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M420" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M420" priority="-1" />
+  <xsl:template match="@*|node()" mode="M420" priority="-2">
+    <xsl:apply-templates mode="M420" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M421" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M421" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M421" priority="-1" />
+  <xsl:template match="@*|node()" mode="M421" priority="-2">
+    <xsl:apply-templates mode="M421" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M422" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M422" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M422" priority="-1" />
+  <xsl:template match="@*|node()" mode="M422" priority="-2">
+    <xsl:apply-templates mode="M422" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M423" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M423" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M423" priority="-1" />
+  <xsl:template match="@*|node()" mode="M423" priority="-2">
+    <xsl:apply-templates mode="M423" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M424" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M424" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M424" priority="-1" />
+  <xsl:template match="@*|node()" mode="M424" priority="-2">
+    <xsl:apply-templates mode="M424" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M425" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M425" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M425" priority="-1" />
+  <xsl:template match="@*|node()" mode="M425" priority="-2">
+    <xsl:apply-templates mode="M425" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M426" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M426" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M426" priority="-1" />
+  <xsl:template match="@*|node()" mode="M426" priority="-2">
+    <xsl:apply-templates mode="M426" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M427" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M427" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M427" priority="-1" />
+  <xsl:template match="@*|node()" mode="M427" priority="-2">
+    <xsl:apply-templates mode="M427" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M428" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M428" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M428" priority="-1" />
+  <xsl:template match="@*|node()" mode="M428" priority="-2">
+    <xsl:apply-templates mode="M428" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedTaxRegistration" mode="M429" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M429" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M429" priority="-1" />
+  <xsl:template match="@*|node()" mode="M429" priority="-2">
+    <xsl:apply-templates mode="M429" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M430" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M430" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M430" priority="-1" />
+  <xsl:template match="@*|node()" mode="M430" priority="-2">
+    <xsl:apply-templates mode="M430" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication" mode="M431" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M431" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M431" priority="-1" />
+  <xsl:template match="@*|node()" mode="M431" priority="-2">
+    <xsl:apply-templates mode="M431" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M432" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M432" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M432" priority="-1" />
+  <xsl:template match="@*|node()" mode="M432" priority="-2">
+    <xsl:apply-templates mode="M432" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M433" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M433" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M433" priority="-1" />
+  <xsl:template match="@*|node()" mode="M433" priority="-2">
+    <xsl:apply-templates mode="M433" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M434" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipFromTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M434" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M434" priority="-1" />
+  <xsl:template match="@*|node()" mode="M434" priority="-2">
+    <xsl:apply-templates mode="M434" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" mode="M435" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M435" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M435" priority="-1" />
+  <xsl:template match="@*|node()" mode="M435" priority="-2">
+    <xsl:apply-templates mode="M435" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M436" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M436" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M436" priority="-1" />
+  <xsl:template match="@*|node()" mode="M436" priority="-2">
+    <xsl:apply-templates mode="M436" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M437" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M437" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M437" priority="-1" />
+  <xsl:template match="@*|node()" mode="M437" priority="-2">
+    <xsl:apply-templates mode="M437" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M438" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M438" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M438" priority="-1" />
+  <xsl:template match="@*|node()" mode="M438" priority="-2">
+    <xsl:apply-templates mode="M438" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M439" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M439" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M439" priority="-1" />
+  <xsl:template match="@*|node()" mode="M439" priority="-2">
+    <xsl:apply-templates mode="M439" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M440" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M440" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M440" priority="-1" />
+  <xsl:template match="@*|node()" mode="M440" priority="-2">
+    <xsl:apply-templates mode="M440" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M441" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M441" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M441" priority="-1" />
+  <xsl:template match="@*|node()" mode="M441" priority="-2">
+    <xsl:apply-templates mode="M441" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M442" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M442" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M442" priority="-1" />
+  <xsl:template match="@*|node()" mode="M442" priority="-2">
+    <xsl:apply-templates mode="M442" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Description" mode="M443" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M443" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M443" priority="-1" />
+  <xsl:template match="@*|node()" mode="M443" priority="-2">
+    <xsl:apply-templates mode="M443" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" mode="M444" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M444" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M444" priority="-1" />
+  <xsl:template match="@*|node()" mode="M444" priority="-2">
+    <xsl:apply-templates mode="M444" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" mode="M445" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M445" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M445" priority="-1" />
+  <xsl:template match="@*|node()" mode="M445" priority="-2">
+    <xsl:apply-templates mode="M445" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" mode="M446" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M446" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M446" priority="-1" />
+  <xsl:template match="@*|node()" mode="M446" priority="-2">
+    <xsl:apply-templates mode="M446" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" mode="M447" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M447" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M447" priority="-1" />
+  <xsl:template match="@*|node()" mode="M447" priority="-2">
+    <xsl:apply-templates mode="M447" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M448" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M448" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M448" priority="-1" />
+  <xsl:template match="@*|node()" mode="M448" priority="-2">
+    <xsl:apply-templates mode="M448" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M449" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M449" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M449" priority="-1" />
+  <xsl:template match="@*|node()" mode="M449" priority="-2">
+    <xsl:apply-templates mode="M449" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M450" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M450" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M450" priority="-1" />
+  <xsl:template match="@*|node()" mode="M450" priority="-2">
+    <xsl:apply-templates mode="M450" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M451" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M451" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M451" priority="-1" />
+  <xsl:template match="@*|node()" mode="M451" priority="-2">
+    <xsl:apply-templates mode="M451" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M452" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M452" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M452" priority="-1" />
+  <xsl:template match="@*|node()" mode="M452" priority="-2">
+    <xsl:apply-templates mode="M452" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M453" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M453" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M453" priority="-1" />
+  <xsl:template match="@*|node()" mode="M453" priority="-2">
+    <xsl:apply-templates mode="M453" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M454" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M454" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M454" priority="-1" />
+  <xsl:template match="@*|node()" mode="M454" priority="-2">
+    <xsl:apply-templates mode="M454" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M455" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M455" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M455" priority="-1" />
+  <xsl:template match="@*|node()" mode="M455" priority="-2">
+    <xsl:apply-templates mode="M455" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M456" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M456" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M456" priority="-1" />
+  <xsl:template match="@*|node()" mode="M456" priority="-2">
+    <xsl:apply-templates mode="M456" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M457" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M457" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M457" priority="-1" />
+  <xsl:template match="@*|node()" mode="M457" priority="-2">
+    <xsl:apply-templates mode="M457" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" mode="M458" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M458" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M458" priority="-1" />
+  <xsl:template match="@*|node()" mode="M458" priority="-2">
+    <xsl:apply-templates mode="M458" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M459" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M459" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M459" priority="-1" />
+  <xsl:template match="@*|node()" mode="M459" priority="-2">
+    <xsl:apply-templates mode="M459" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M460" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M460" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M460" priority="-1" />
+  <xsl:template match="@*|node()" mode="M460" priority="-2">
+    <xsl:apply-templates mode="M460" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M461" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M461" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M461" priority="-1" />
+  <xsl:template match="@*|node()" mode="M461" priority="-2">
+    <xsl:apply-templates mode="M461" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty" mode="M462" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M462" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M462" priority="-1" />
+  <xsl:template match="@*|node()" mode="M462" priority="-2">
+    <xsl:apply-templates mode="M462" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M463" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M463" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M463" priority="-1" />
+  <xsl:template match="@*|node()" mode="M463" priority="-2">
+    <xsl:apply-templates mode="M463" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M464" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M464" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M464" priority="-1" />
+  <xsl:template match="@*|node()" mode="M464" priority="-2">
+    <xsl:apply-templates mode="M464" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M465" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M465" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M465" priority="-1" />
+  <xsl:template match="@*|node()" mode="M465" priority="-2">
+    <xsl:apply-templates mode="M465" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M466" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M466" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M466" priority="-1" />
+  <xsl:template match="@*|node()" mode="M466" priority="-2">
+    <xsl:apply-templates mode="M466" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M467" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M467" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M467" priority="-1" />
+  <xsl:template match="@*|node()" mode="M467" priority="-2">
+    <xsl:apply-templates mode="M467" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M468" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M468" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M468" priority="-1" />
+  <xsl:template match="@*|node()" mode="M468" priority="-2">
+    <xsl:apply-templates mode="M468" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M469" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M469" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M469" priority="-1" />
+  <xsl:template match="@*|node()" mode="M469" priority="-2">
+    <xsl:apply-templates mode="M469" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:Description" mode="M470" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M470" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M470" priority="-1" />
+  <xsl:template match="@*|node()" mode="M470" priority="-2">
+    <xsl:apply-templates mode="M470" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID" mode="M471" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M471" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M471" priority="-1" />
+  <xsl:template match="@*|node()" mode="M471" priority="-2">
+    <xsl:apply-templates mode="M471" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID[@schemeID]" mode="M472" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M472" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M472" priority="-1" />
+  <xsl:template match="@*|node()" mode="M472" priority="-2">
+    <xsl:apply-templates mode="M472" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:ID[@schemeID]" mode="M473" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M473" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M473" priority="-1" />
+  <xsl:template match="@*|node()" mode="M473" priority="-2">
+    <xsl:apply-templates mode="M473" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress" mode="M474" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M474" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M474" priority="-1" />
+  <xsl:template match="@*|node()" mode="M474" priority="-2">
+    <xsl:apply-templates mode="M474" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M475" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M475" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M475" priority="-1" />
+  <xsl:template match="@*|node()" mode="M475" priority="-2">
+    <xsl:apply-templates mode="M475" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M476" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M476" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M476" priority="-1" />
+  <xsl:template match="@*|node()" mode="M476" priority="-2">
+    <xsl:apply-templates mode="M476" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M477" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M477" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M477" priority="-1" />
+  <xsl:template match="@*|node()" mode="M477" priority="-2">
+    <xsl:apply-templates mode="M477" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M478" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M478" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M478" priority="-1" />
+  <xsl:template match="@*|node()" mode="M478" priority="-2">
+    <xsl:apply-templates mode="M478" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M479" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M479" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M479" priority="-1" />
+  <xsl:template match="@*|node()" mode="M479" priority="-2">
+    <xsl:apply-templates mode="M479" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M480" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M480" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M480" priority="-1" />
+  <xsl:template match="@*|node()" mode="M480" priority="-2">
+    <xsl:apply-templates mode="M480" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M481" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M481" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M481" priority="-1" />
+  <xsl:template match="@*|node()" mode="M481" priority="-2">
+    <xsl:apply-templates mode="M481" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M482" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M482" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M482" priority="-1" />
+  <xsl:template match="@*|node()" mode="M482" priority="-2">
+    <xsl:apply-templates mode="M482" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M483" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M483" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M483" priority="-1" />
+  <xsl:template match="@*|node()" mode="M483" priority="-2">
+    <xsl:apply-templates mode="M483" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M484" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M484" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M484" priority="-1" />
+  <xsl:template match="@*|node()" mode="M484" priority="-2">
+    <xsl:apply-templates mode="M484" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication" mode="M485" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M485" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M485" priority="-1" />
+  <xsl:template match="@*|node()" mode="M485" priority="-2">
+    <xsl:apply-templates mode="M485" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M486" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M486" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M486" priority="-1" />
+  <xsl:template match="@*|node()" mode="M486" priority="-2">
+    <xsl:apply-templates mode="M486" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M487" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M487" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M487" priority="-1" />
+  <xsl:template match="@*|node()" mode="M487" priority="-2">
+    <xsl:apply-templates mode="M487" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M488" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M488" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M488" priority="-1" />
+  <xsl:template match="@*|node()" mode="M488" priority="-2">
+    <xsl:apply-templates mode="M488" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M489" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PaymentReference)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PaymentReference)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000172</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PaymentReference' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceCurrencyCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceCurrencyCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000038</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000173</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000039</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M489" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M489" priority="-1" />
+  <xsl:template match="@*|node()" mode="M489" priority="-2">
+    <xsl:apply-templates mode="M489" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" mode="M490" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BasisAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BasisAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000177</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BasisAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalBasisAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalBasisAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000323</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalBasisAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceChargeBasisAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceChargeBasisAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000324</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M490" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M490" priority="-1" />
+  <xsl:template match="@*|node()" mode="M490" priority="-2">
+    <xsl:apply-templates mode="M490" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:AllowanceChargeBasisAmount[@currencyID]" mode="M491" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:AllowanceChargeBasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M491" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M491" priority="-1" />
+  <xsl:template match="@*|node()" mode="M491" priority="-2">
+    <xsl:apply-templates mode="M491" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" mode="M492" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M492" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M492" priority="-1" />
+  <xsl:template match="@*|node()" mode="M492" priority="-2">
+    <xsl:apply-templates mode="M492" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" mode="M493" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M493" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M493" priority="-1" />
+  <xsl:template match="@*|node()" mode="M493" priority="-2">
+    <xsl:apply-templates mode="M493" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M494" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M494" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M494" priority="-1" />
+  <xsl:template match="@*|node()" mode="M494" priority="-2">
+    <xsl:apply-templates mode="M494" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M495" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+    <xsl:variable name="codeValue38" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=38]/enumeration[@value=$codeValue38]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=38]/enumeration[@value=$codeValue38]">
+          <xsl:attribute name="id">FX-SCH-A-000180</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:DueDateTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M495" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M495" priority="-1" />
+  <xsl:template match="@*|node()" mode="M495" priority="-2">
+    <xsl:apply-templates mode="M495" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M496" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M496" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M496" priority="-1" />
+  <xsl:template match="@*|node()" mode="M496" priority="-2">
+    <xsl:apply-templates mode="M496" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" mode="M497" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M497" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M497" priority="-1" />
+  <xsl:template match="@*|node()" mode="M497" priority="-2">
+    <xsl:apply-templates mode="M497" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" mode="M498" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M498" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M498" priority="-1" />
+  <xsl:template match="@*|node()" mode="M498" priority="-2">
+    <xsl:apply-templates mode="M498" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:LineTotalBasisAmount[@currencyID]" mode="M499" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:LineTotalBasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M499" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M499" priority="-1" />
+  <xsl:template match="@*|node()" mode="M499" priority="-2">
+    <xsl:apply-templates mode="M499" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString" mode="M500" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M500" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M500" priority="-1" />
+  <xsl:template match="@*|node()" mode="M500" priority="-2">
+    <xsl:apply-templates mode="M500" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format]" mode="M501" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format]" />
+    <xsl:variable name="codeValue37" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=37]/enumeration[@value=$codeValue37]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=37]/enumeration[@value=$codeValue37]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M501" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M501" priority="-1" />
+  <xsl:template match="@*|node()" mode="M501" priority="-2">
+    <xsl:apply-templates mode="M501" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M502" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M502" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M502" priority="-1" />
+  <xsl:template match="@*|node()" mode="M502" priority="-2">
+    <xsl:apply-templates mode="M502" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" mode="M503" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M503" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M503" priority="-1" />
+  <xsl:template match="@*|node()" mode="M503" priority="-2">
+    <xsl:apply-templates mode="M503" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:CompleteDateTime" mode="M504" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:CompleteDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M504" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M504" priority="-1" />
+  <xsl:template match="@*|node()" mode="M504" priority="-2">
+    <xsl:apply-templates mode="M504" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M505" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M505" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M505" priority="-1" />
+  <xsl:template match="@*|node()" mode="M505" priority="-2">
+    <xsl:apply-templates mode="M505" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M506" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M506" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M506" priority="-1" />
+  <xsl:template match="@*|node()" mode="M506" priority="-2">
+    <xsl:apply-templates mode="M506" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M507" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M507" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M507" priority="-1" />
+  <xsl:template match="@*|node()" mode="M507" priority="-2">
+    <xsl:apply-templates mode="M507" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M508" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M508" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M508" priority="-1" />
+  <xsl:template match="@*|node()" mode="M508" priority="-2">
+    <xsl:apply-templates mode="M508" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" mode="M509" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M509" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M509" priority="-1" />
+  <xsl:template match="@*|node()" mode="M509" priority="-2">
+    <xsl:apply-templates mode="M509" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" mode="M510" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" />
+    <xsl:variable name="codeValue35" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]">
+          <xsl:attribute name="id">FX-SCH-A-000040</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:InvoiceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M510" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M510" priority="-1" />
+  <xsl:template match="@*|node()" mode="M510" priority="-2">
+    <xsl:apply-templates mode="M510" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" mode="M511" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:IssuerAssignedID!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:IssuerAssignedID!='')">
+          <xsl:attribute name="id">FX-SCH-A-000182</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-55]-Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M511" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M511" priority="-1" />
+  <xsl:template match="@*|node()" mode="M511" priority="-2">
+    <xsl:apply-templates mode="M511" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" mode="M512" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M512" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M512" priority="-1" />
+  <xsl:template match="@*|node()" mode="M512" priority="-2">
+    <xsl:apply-templates mode="M512" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M513" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M513" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M513" priority="-1" />
+  <xsl:template match="@*|node()" mode="M513" priority="-2">
+    <xsl:apply-templates mode="M513" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M514" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M514" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M514" priority="-1" />
+  <xsl:template match="@*|node()" mode="M514" priority="-2">
+    <xsl:apply-templates mode="M514" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M515" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M515" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M515" priority="-1" />
+  <xsl:template match="@*|node()" mode="M515" priority="-2">
+    <xsl:apply-templates mode="M515" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID" mode="M516" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M516" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M516" priority="-1" />
+  <xsl:template match="@*|node()" mode="M516" priority="-2">
+    <xsl:apply-templates mode="M516" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" mode="M517" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M517" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M517" priority="-1" />
+  <xsl:template match="@*|node()" mode="M517" priority="-2">
+    <xsl:apply-templates mode="M517" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" mode="M518" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M518" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M518" priority="-1" />
+  <xsl:template match="@*|node()" mode="M518" priority="-2">
+    <xsl:apply-templates mode="M518" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" mode="M519" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue43" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=43]/enumeration[@value=$codeValue43]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=43]/enumeration[@value=$codeValue43]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M519" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M519" priority="-1" />
+  <xsl:template match="@*|node()" mode="M519" priority="-2">
+    <xsl:apply-templates mode="M519" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" mode="M520" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M520" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M520" priority="-1" />
+  <xsl:template match="@*|node()" mode="M520" priority="-2">
+    <xsl:apply-templates mode="M520" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty" mode="M521" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M521" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M521" priority="-1" />
+  <xsl:template match="@*|node()" mode="M521" priority="-2">
+    <xsl:apply-templates mode="M521" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M522" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M522" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M522" priority="-1" />
+  <xsl:template match="@*|node()" mode="M522" priority="-2">
+    <xsl:apply-templates mode="M522" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M523" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M523" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M523" priority="-1" />
+  <xsl:template match="@*|node()" mode="M523" priority="-2">
+    <xsl:apply-templates mode="M523" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M524" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M524" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M524" priority="-1" />
+  <xsl:template match="@*|node()" mode="M524" priority="-2">
+    <xsl:apply-templates mode="M524" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M525" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M525" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M525" priority="-1" />
+  <xsl:template match="@*|node()" mode="M525" priority="-2">
+    <xsl:apply-templates mode="M525" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M526" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M526" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M526" priority="-1" />
+  <xsl:template match="@*|node()" mode="M526" priority="-2">
+    <xsl:apply-templates mode="M526" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M527" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M527" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M527" priority="-1" />
+  <xsl:template match="@*|node()" mode="M527" priority="-2">
+    <xsl:apply-templates mode="M527" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M528" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M528" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M528" priority="-1" />
+  <xsl:template match="@*|node()" mode="M528" priority="-2">
+    <xsl:apply-templates mode="M528" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:Description" mode="M529" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M529" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M529" priority="-1" />
+  <xsl:template match="@*|node()" mode="M529" priority="-2">
+    <xsl:apply-templates mode="M529" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:GlobalID" mode="M530" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M530" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M530" priority="-1" />
+  <xsl:template match="@*|node()" mode="M530" priority="-2">
+    <xsl:apply-templates mode="M530" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:GlobalID[@schemeID]" mode="M531" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M531" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M531" priority="-1" />
+  <xsl:template match="@*|node()" mode="M531" priority="-2">
+    <xsl:apply-templates mode="M531" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:ID[@schemeID]" mode="M532" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M532" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M532" priority="-1" />
+  <xsl:template match="@*|node()" mode="M532" priority="-2">
+    <xsl:apply-templates mode="M532" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress" mode="M533" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M533" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M533" priority="-1" />
+  <xsl:template match="@*|node()" mode="M533" priority="-2">
+    <xsl:apply-templates mode="M533" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M534" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M534" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M534" priority="-1" />
+  <xsl:template match="@*|node()" mode="M534" priority="-2">
+    <xsl:apply-templates mode="M534" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M535" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M535" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M535" priority="-1" />
+  <xsl:template match="@*|node()" mode="M535" priority="-2">
+    <xsl:apply-templates mode="M535" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M536" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M536" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M536" priority="-1" />
+  <xsl:template match="@*|node()" mode="M536" priority="-2">
+    <xsl:apply-templates mode="M536" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M537" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M537" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M537" priority="-1" />
+  <xsl:template match="@*|node()" mode="M537" priority="-2">
+    <xsl:apply-templates mode="M537" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M538" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M538" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M538" priority="-1" />
+  <xsl:template match="@*|node()" mode="M538" priority="-2">
+    <xsl:apply-templates mode="M538" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M539" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M539" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M539" priority="-1" />
+  <xsl:template match="@*|node()" mode="M539" priority="-2">
+    <xsl:apply-templates mode="M539" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M540" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M540" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M540" priority="-1" />
+  <xsl:template match="@*|node()" mode="M540" priority="-2">
+    <xsl:apply-templates mode="M540" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M541" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M541" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M541" priority="-1" />
+  <xsl:template match="@*|node()" mode="M541" priority="-2">
+    <xsl:apply-templates mode="M541" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedTaxRegistration" mode="M542" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M542" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M542" priority="-1" />
+  <xsl:template match="@*|node()" mode="M542" priority="-2">
+    <xsl:apply-templates mode="M542" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M543" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M543" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M543" priority="-1" />
+  <xsl:template match="@*|node()" mode="M543" priority="-2">
+    <xsl:apply-templates mode="M543" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication" mode="M544" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M544" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M544" priority="-1" />
+  <xsl:template match="@*|node()" mode="M544" priority="-2">
+    <xsl:apply-templates mode="M544" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M545" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M545" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M545" priority="-1" />
+  <xsl:template match="@*|node()" mode="M545" priority="-2">
+    <xsl:apply-templates mode="M545" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M546" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M546" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M546" priority="-1" />
+  <xsl:template match="@*|node()" mode="M546" priority="-2">
+    <xsl:apply-templates mode="M546" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M547" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M547" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M547" priority="-1" />
+  <xsl:template match="@*|node()" mode="M547" priority="-2">
+    <xsl:apply-templates mode="M547" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty" mode="M548" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M548" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M548" priority="-1" />
+  <xsl:template match="@*|node()" mode="M548" priority="-2">
+    <xsl:apply-templates mode="M548" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M549" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M549" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M549" priority="-1" />
+  <xsl:template match="@*|node()" mode="M549" priority="-2">
+    <xsl:apply-templates mode="M549" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M550" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M550" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M550" priority="-1" />
+  <xsl:template match="@*|node()" mode="M550" priority="-2">
+    <xsl:apply-templates mode="M550" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M551" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M551" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M551" priority="-1" />
+  <xsl:template match="@*|node()" mode="M551" priority="-2">
+    <xsl:apply-templates mode="M551" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M552" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M552" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M552" priority="-1" />
+  <xsl:template match="@*|node()" mode="M552" priority="-2">
+    <xsl:apply-templates mode="M552" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M553" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M553" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M553" priority="-1" />
+  <xsl:template match="@*|node()" mode="M553" priority="-2">
+    <xsl:apply-templates mode="M553" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M554" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M554" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M554" priority="-1" />
+  <xsl:template match="@*|node()" mode="M554" priority="-2">
+    <xsl:apply-templates mode="M554" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M555" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M555" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M555" priority="-1" />
+  <xsl:template match="@*|node()" mode="M555" priority="-2">
+    <xsl:apply-templates mode="M555" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:Description" mode="M556" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M556" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M556" priority="-1" />
+  <xsl:template match="@*|node()" mode="M556" priority="-2">
+    <xsl:apply-templates mode="M556" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:GlobalID" mode="M557" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M557" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M557" priority="-1" />
+  <xsl:template match="@*|node()" mode="M557" priority="-2">
+    <xsl:apply-templates mode="M557" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:GlobalID[@schemeID]" mode="M558" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M558" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M558" priority="-1" />
+  <xsl:template match="@*|node()" mode="M558" priority="-2">
+    <xsl:apply-templates mode="M558" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:ID[@schemeID]" mode="M559" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M559" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M559" priority="-1" />
+  <xsl:template match="@*|node()" mode="M559" priority="-2">
+    <xsl:apply-templates mode="M559" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress" mode="M560" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M560" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M560" priority="-1" />
+  <xsl:template match="@*|node()" mode="M560" priority="-2">
+    <xsl:apply-templates mode="M560" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M561" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M561" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M561" priority="-1" />
+  <xsl:template match="@*|node()" mode="M561" priority="-2">
+    <xsl:apply-templates mode="M561" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M562" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M562" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M562" priority="-1" />
+  <xsl:template match="@*|node()" mode="M562" priority="-2">
+    <xsl:apply-templates mode="M562" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M563" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M563" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M563" priority="-1" />
+  <xsl:template match="@*|node()" mode="M563" priority="-2">
+    <xsl:apply-templates mode="M563" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M564" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M564" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M564" priority="-1" />
+  <xsl:template match="@*|node()" mode="M564" priority="-2">
+    <xsl:apply-templates mode="M564" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M565" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M565" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M565" priority="-1" />
+  <xsl:template match="@*|node()" mode="M565" priority="-2">
+    <xsl:apply-templates mode="M565" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M566" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M566" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M566" priority="-1" />
+  <xsl:template match="@*|node()" mode="M566" priority="-2">
+    <xsl:apply-templates mode="M566" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M567" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M567" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M567" priority="-1" />
+  <xsl:template match="@*|node()" mode="M567" priority="-2">
+    <xsl:apply-templates mode="M567" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M568" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M568" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M568" priority="-1" />
+  <xsl:template match="@*|node()" mode="M568" priority="-2">
+    <xsl:apply-templates mode="M568" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedTaxRegistration" mode="M569" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M569" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M569" priority="-1" />
+  <xsl:template match="@*|node()" mode="M569" priority="-2">
+    <xsl:apply-templates mode="M569" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M570" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M570" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M570" priority="-1" />
+  <xsl:template match="@*|node()" mode="M570" priority="-2">
+    <xsl:apply-templates mode="M570" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication" mode="M571" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M571" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M571" priority="-1" />
+  <xsl:template match="@*|node()" mode="M571" priority="-2">
+    <xsl:apply-templates mode="M571" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M572" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M572" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M572" priority="-1" />
+  <xsl:template match="@*|node()" mode="M572" priority="-2">
+    <xsl:apply-templates mode="M572" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M573" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M573" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M573" priority="-1" />
+  <xsl:template match="@*|node()" mode="M573" priority="-2">
+    <xsl:apply-templates mode="M573" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M574" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoicerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M574" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M574" priority="-1" />
+  <xsl:template match="@*|node()" mode="M574" priority="-2">
+    <xsl:apply-templates mode="M574" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" mode="M575" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M575" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M575" priority="-1" />
+  <xsl:template match="@*|node()" mode="M575" priority="-2">
+    <xsl:apply-templates mode="M575" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M576" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M576" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M576" priority="-1" />
+  <xsl:template match="@*|node()" mode="M576" priority="-2">
+    <xsl:apply-templates mode="M576" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M577" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M577" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M577" priority="-1" />
+  <xsl:template match="@*|node()" mode="M577" priority="-2">
+    <xsl:apply-templates mode="M577" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M578" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M578" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M578" priority="-1" />
+  <xsl:template match="@*|node()" mode="M578" priority="-2">
+    <xsl:apply-templates mode="M578" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M579" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M579" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M579" priority="-1" />
+  <xsl:template match="@*|node()" mode="M579" priority="-2">
+    <xsl:apply-templates mode="M579" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M580" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M580" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M580" priority="-1" />
+  <xsl:template match="@*|node()" mode="M580" priority="-2">
+    <xsl:apply-templates mode="M580" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M581" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M581" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M581" priority="-1" />
+  <xsl:template match="@*|node()" mode="M581" priority="-2">
+    <xsl:apply-templates mode="M581" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M582" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M582" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M582" priority="-1" />
+  <xsl:template match="@*|node()" mode="M582" priority="-2">
+    <xsl:apply-templates mode="M582" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Description" mode="M583" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M583" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M583" priority="-1" />
+  <xsl:template match="@*|node()" mode="M583" priority="-2">
+    <xsl:apply-templates mode="M583" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" mode="M584" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M584" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M584" priority="-1" />
+  <xsl:template match="@*|node()" mode="M584" priority="-2">
+    <xsl:apply-templates mode="M584" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" mode="M585" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M585" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M585" priority="-1" />
+  <xsl:template match="@*|node()" mode="M585" priority="-2">
+    <xsl:apply-templates mode="M585" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" mode="M586" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M586" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M586" priority="-1" />
+  <xsl:template match="@*|node()" mode="M586" priority="-2">
+    <xsl:apply-templates mode="M586" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" mode="M587" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M587" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M587" priority="-1" />
+  <xsl:template match="@*|node()" mode="M587" priority="-2">
+    <xsl:apply-templates mode="M587" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M588" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M588" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M588" priority="-1" />
+  <xsl:template match="@*|node()" mode="M588" priority="-2">
+    <xsl:apply-templates mode="M588" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M589" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M589" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M589" priority="-1" />
+  <xsl:template match="@*|node()" mode="M589" priority="-2">
+    <xsl:apply-templates mode="M589" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M590" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M590" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M590" priority="-1" />
+  <xsl:template match="@*|node()" mode="M590" priority="-2">
+    <xsl:apply-templates mode="M590" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M591" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M591" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M591" priority="-1" />
+  <xsl:template match="@*|node()" mode="M591" priority="-2">
+    <xsl:apply-templates mode="M591" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M592" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M592" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M592" priority="-1" />
+  <xsl:template match="@*|node()" mode="M592" priority="-2">
+    <xsl:apply-templates mode="M592" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M593" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M593" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M593" priority="-1" />
+  <xsl:template match="@*|node()" mode="M593" priority="-2">
+    <xsl:apply-templates mode="M593" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M594" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M594" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M594" priority="-1" />
+  <xsl:template match="@*|node()" mode="M594" priority="-2">
+    <xsl:apply-templates mode="M594" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M595" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M595" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M595" priority="-1" />
+  <xsl:template match="@*|node()" mode="M595" priority="-2">
+    <xsl:apply-templates mode="M595" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" mode="M596" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M596" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M596" priority="-1" />
+  <xsl:template match="@*|node()" mode="M596" priority="-2">
+    <xsl:apply-templates mode="M596" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M597" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M597" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M597" priority="-1" />
+  <xsl:template match="@*|node()" mode="M597" priority="-2">
+    <xsl:apply-templates mode="M597" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" mode="M598" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M598" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M598" priority="-1" />
+  <xsl:template match="@*|node()" mode="M598" priority="-2">
+    <xsl:apply-templates mode="M598" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M599" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M599" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M599" priority="-1" />
+  <xsl:template match="@*|node()" mode="M599" priority="-2">
+    <xsl:apply-templates mode="M599" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M600" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M600" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M600" priority="-1" />
+  <xsl:template match="@*|node()" mode="M600" priority="-2">
+    <xsl:apply-templates mode="M600" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M601" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M601" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M601" priority="-1" />
+  <xsl:template match="@*|node()" mode="M601" priority="-2">
+    <xsl:apply-templates mode="M601" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty" mode="M602" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M602" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M602" priority="-1" />
+  <xsl:template match="@*|node()" mode="M602" priority="-2">
+    <xsl:apply-templates mode="M602" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M603" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M603" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M603" priority="-1" />
+  <xsl:template match="@*|node()" mode="M603" priority="-2">
+    <xsl:apply-templates mode="M603" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M604" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M604" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M604" priority="-1" />
+  <xsl:template match="@*|node()" mode="M604" priority="-2">
+    <xsl:apply-templates mode="M604" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M605" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M605" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M605" priority="-1" />
+  <xsl:template match="@*|node()" mode="M605" priority="-2">
+    <xsl:apply-templates mode="M605" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M606" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M606" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M606" priority="-1" />
+  <xsl:template match="@*|node()" mode="M606" priority="-2">
+    <xsl:apply-templates mode="M606" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M607" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M607" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M607" priority="-1" />
+  <xsl:template match="@*|node()" mode="M607" priority="-2">
+    <xsl:apply-templates mode="M607" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M608" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M608" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M608" priority="-1" />
+  <xsl:template match="@*|node()" mode="M608" priority="-2">
+    <xsl:apply-templates mode="M608" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M609" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M609" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M609" priority="-1" />
+  <xsl:template match="@*|node()" mode="M609" priority="-2">
+    <xsl:apply-templates mode="M609" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:Description" mode="M610" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M610" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M610" priority="-1" />
+  <xsl:template match="@*|node()" mode="M610" priority="-2">
+    <xsl:apply-templates mode="M610" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:GlobalID" mode="M611" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M611" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M611" priority="-1" />
+  <xsl:template match="@*|node()" mode="M611" priority="-2">
+    <xsl:apply-templates mode="M611" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:GlobalID[@schemeID]" mode="M612" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M612" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M612" priority="-1" />
+  <xsl:template match="@*|node()" mode="M612" priority="-2">
+    <xsl:apply-templates mode="M612" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:ID[@schemeID]" mode="M613" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M613" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M613" priority="-1" />
+  <xsl:template match="@*|node()" mode="M613" priority="-2">
+    <xsl:apply-templates mode="M613" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress" mode="M614" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M614" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M614" priority="-1" />
+  <xsl:template match="@*|node()" mode="M614" priority="-2">
+    <xsl:apply-templates mode="M614" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M615" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M615" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M615" priority="-1" />
+  <xsl:template match="@*|node()" mode="M615" priority="-2">
+    <xsl:apply-templates mode="M615" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M616" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M616" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M616" priority="-1" />
+  <xsl:template match="@*|node()" mode="M616" priority="-2">
+    <xsl:apply-templates mode="M616" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M617" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M617" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M617" priority="-1" />
+  <xsl:template match="@*|node()" mode="M617" priority="-2">
+    <xsl:apply-templates mode="M617" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M618" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M618" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M618" priority="-1" />
+  <xsl:template match="@*|node()" mode="M618" priority="-2">
+    <xsl:apply-templates mode="M618" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M619" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M619" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M619" priority="-1" />
+  <xsl:template match="@*|node()" mode="M619" priority="-2">
+    <xsl:apply-templates mode="M619" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M620" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M620" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M620" priority="-1" />
+  <xsl:template match="@*|node()" mode="M620" priority="-2">
+    <xsl:apply-templates mode="M620" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M621" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M621" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M621" priority="-1" />
+  <xsl:template match="@*|node()" mode="M621" priority="-2">
+    <xsl:apply-templates mode="M621" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M622" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M622" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M622" priority="-1" />
+  <xsl:template match="@*|node()" mode="M622" priority="-2">
+    <xsl:apply-templates mode="M622" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedTaxRegistration" mode="M623" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M623" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M623" priority="-1" />
+  <xsl:template match="@*|node()" mode="M623" priority="-2">
+    <xsl:apply-templates mode="M623" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M624" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M624" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M624" priority="-1" />
+  <xsl:template match="@*|node()" mode="M624" priority="-2">
+    <xsl:apply-templates mode="M624" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication" mode="M625" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M625" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M625" priority="-1" />
+  <xsl:template match="@*|node()" mode="M625" priority="-2">
+    <xsl:apply-templates mode="M625" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M626" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M626" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M626" priority="-1" />
+  <xsl:template match="@*|node()" mode="M626" priority="-2">
+    <xsl:apply-templates mode="M626" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M627" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M627" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M627" priority="-1" />
+  <xsl:template match="@*|node()" mode="M627" priority="-2">
+    <xsl:apply-templates mode="M627" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M628" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M628" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M628" priority="-1" />
+  <xsl:template match="@*|node()" mode="M628" priority="-2">
+    <xsl:apply-templates mode="M628" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M629" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M629" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M629" priority="-1" />
+  <xsl:template match="@*|node()" mode="M629" priority="-2">
+    <xsl:apply-templates mode="M629" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:TypeCode" mode="M630" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:TypeCode" />
+    <xsl:variable name="codeValue44" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=44]/enumeration[@value=$codeValue44]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=44]/enumeration[@value=$codeValue44]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M630" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M630" priority="-1" />
+  <xsl:template match="@*|node()" mode="M630" priority="-2">
+    <xsl:apply-templates mode="M630" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment" mode="M631" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000325</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceSpecifiedReferencedDocument)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceSpecifiedReferencedDocument)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000326</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceSpecifiedReferencedDocument' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M631" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M631" priority="-1" />
+  <xsl:template match="@*|node()" mode="M631" priority="-2">
+    <xsl:apply-templates mode="M631" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:FormattedReceivedDateTime/qdt:DateTimeString" mode="M632" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:FormattedReceivedDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M632" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M632" priority="-1" />
+  <xsl:template match="@*|node()" mode="M632" priority="-2">
+    <xsl:apply-templates mode="M632" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:FormattedReceivedDateTime/qdt:DateTimeString[@format]" mode="M633" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:FormattedReceivedDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M633" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M633" priority="-1" />
+  <xsl:template match="@*|node()" mode="M633" priority="-2">
+    <xsl:apply-templates mode="M633" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax" mode="M634" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M634" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M634" priority="-1" />
+  <xsl:template match="@*|node()" mode="M634" priority="-2">
+    <xsl:apply-templates mode="M634" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:AllowanceChargeBasisAmount" mode="M635" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M635" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M635" priority="-1" />
+  <xsl:template match="@*|node()" mode="M635" priority="-2">
+    <xsl:apply-templates mode="M635" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:BasisAmount" mode="M636" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M636" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M636" priority="-1" />
+  <xsl:template match="@*|node()" mode="M636" priority="-2">
+    <xsl:apply-templates mode="M636" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:CalculatedAmount[@currencyID]" mode="M637" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M637" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M637" priority="-1" />
+  <xsl:template match="@*|node()" mode="M637" priority="-2">
+    <xsl:apply-templates mode="M637" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:CategoryCode" mode="M638" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M638" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M638" priority="-1" />
+  <xsl:template match="@*|node()" mode="M638" priority="-2">
+    <xsl:apply-templates mode="M638" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:DueDateTypeCode" mode="M639" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M639" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M639" priority="-1" />
+  <xsl:template match="@*|node()" mode="M639" priority="-2">
+    <xsl:apply-templates mode="M639" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode" mode="M640" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M640" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M640" priority="-1" />
+  <xsl:template match="@*|node()" mode="M640" priority="-2">
+    <xsl:apply-templates mode="M640" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listID]" mode="M641" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M641" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M641" priority="-1" />
+  <xsl:template match="@*|node()" mode="M641" priority="-2">
+    <xsl:apply-templates mode="M641" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listVersionID]" mode="M642" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M642" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M642" priority="-1" />
+  <xsl:template match="@*|node()" mode="M642" priority="-2">
+    <xsl:apply-templates mode="M642" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:LineTotalBasisAmount" mode="M643" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M643" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M643" priority="-1" />
+  <xsl:template match="@*|node()" mode="M643" priority="-2">
+    <xsl:apply-templates mode="M643" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:TaxPointDate" mode="M644" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M644" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M644" priority="-1" />
+  <xsl:template match="@*|node()" mode="M644" priority="-2">
+    <xsl:apply-templates mode="M644" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:TypeCode" mode="M645" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:IncludedTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M645" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M645" priority="-1" />
+  <xsl:template match="@*|node()" mode="M645" priority="-2">
+    <xsl:apply-templates mode="M645" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument" mode="M646" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M646" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M646" priority="-1" />
+  <xsl:template match="@*|node()" mode="M646" priority="-2">
+    <xsl:apply-templates mode="M646" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:AttachmentBinaryObject" mode="M647" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M647" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M647" priority="-1" />
+  <xsl:template match="@*|node()" mode="M647" priority="-2">
+    <xsl:apply-templates mode="M647" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M648" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M648" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M648" priority="-1" />
+  <xsl:template match="@*|node()" mode="M648" priority="-2">
+    <xsl:apply-templates mode="M648" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M649" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M649" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M649" priority="-1" />
+  <xsl:template match="@*|node()" mode="M649" priority="-2">
+    <xsl:apply-templates mode="M649" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M650" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M650" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M650" priority="-1" />
+  <xsl:template match="@*|node()" mode="M650" priority="-2">
+    <xsl:apply-templates mode="M650" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:LineID" mode="M651" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M651" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M651" priority="-1" />
+  <xsl:template match="@*|node()" mode="M651" priority="-2">
+    <xsl:apply-templates mode="M651" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:Name" mode="M652" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M652" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M652" priority="-1" />
+  <xsl:template match="@*|node()" mode="M652" priority="-2">
+    <xsl:apply-templates mode="M652" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:ReferenceTypeCode" mode="M653" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M653" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M653" priority="-1" />
+  <xsl:template match="@*|node()" mode="M653" priority="-2">
+    <xsl:apply-templates mode="M653" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:TypeCode" mode="M654" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue45" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=45]/enumeration[@value=$codeValue45]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=45]/enumeration[@value=$codeValue45]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M654" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M654" priority="-1" />
+  <xsl:template match="@*|node()" mode="M654" priority="-2">
+    <xsl:apply-templates mode="M654" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:URIID" mode="M655" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:InvoiceSpecifiedReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M655" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M655" priority="-1" />
+  <xsl:template match="@*|node()" mode="M655" priority="-2">
+    <xsl:apply-templates mode="M655" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:PaidAmount[@currencyID]" mode="M656" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedAdvancePayment/ram:PaidAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M656" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M656" priority="-1" />
+  <xsl:template match="@*|node()" mode="M656" priority="-2">
+    <xsl:apply-templates mode="M656" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge" mode="M657" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)=1">
+          <xsl:attribute name="id">FX-SCH-A-000294</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AppliedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AppliedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000327</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AppliedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AppliedTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AppliedTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000328</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AppliedTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M657" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M657" priority="-1" />
+  <xsl:template match="@*|node()" mode="M657" priority="-2">
+    <xsl:apply-templates mode="M657" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount[@currencyID]" mode="M658" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M658" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M658" priority="-1" />
+  <xsl:template match="@*|node()" mode="M658" priority="-2">
+    <xsl:apply-templates mode="M658" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax" mode="M659" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RateApplicablePercent)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RateApplicablePercent)=1">
+          <xsl:attribute name="id">FX-SCH-A-000329</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RateApplicablePercent' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M659" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M659" priority="-1" />
+  <xsl:template match="@*|node()" mode="M659" priority="-2">
+    <xsl:apply-templates mode="M659" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:AllowanceChargeBasisAmount" mode="M660" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M660" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M660" priority="-1" />
+  <xsl:template match="@*|node()" mode="M660" priority="-2">
+    <xsl:apply-templates mode="M660" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:BasisAmount" mode="M661" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M661" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M661" priority="-1" />
+  <xsl:template match="@*|node()" mode="M661" priority="-2">
+    <xsl:apply-templates mode="M661" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:CalculatedAmount" mode="M662" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M662" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M662" priority="-1" />
+  <xsl:template match="@*|node()" mode="M662" priority="-2">
+    <xsl:apply-templates mode="M662" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:CategoryCode" mode="M663" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M663" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M663" priority="-1" />
+  <xsl:template match="@*|node()" mode="M663" priority="-2">
+    <xsl:apply-templates mode="M663" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:DueDateTypeCode" mode="M664" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M664" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M664" priority="-1" />
+  <xsl:template match="@*|node()" mode="M664" priority="-2">
+    <xsl:apply-templates mode="M664" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:ExemptionReason" mode="M665" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M665" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M665" priority="-1" />
+  <xsl:template match="@*|node()" mode="M665" priority="-2">
+    <xsl:apply-templates mode="M665" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:ExemptionReasonCode" mode="M666" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M666" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M666" priority="-1" />
+  <xsl:template match="@*|node()" mode="M666" priority="-2">
+    <xsl:apply-templates mode="M666" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:LineTotalBasisAmount" mode="M667" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M667" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M667" priority="-1" />
+  <xsl:template match="@*|node()" mode="M667" priority="-2">
+    <xsl:apply-templates mode="M667" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:TaxPointDate" mode="M668" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M668" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M668" priority="-1" />
+  <xsl:template match="@*|node()" mode="M668" priority="-2">
+    <xsl:apply-templates mode="M668" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:TypeCode" mode="M669" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M669" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M669" priority="-1" />
+  <xsl:template match="@*|node()" mode="M669" priority="-2">
+    <xsl:apply-templates mode="M669" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M670" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M670" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M670" priority="-1" />
+  <xsl:template match="@*|node()" mode="M670" priority="-2">
+    <xsl:apply-templates mode="M670" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M671" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M671" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M671" priority="-1" />
+  <xsl:template match="@*|node()" mode="M671" priority="-2">
+    <xsl:apply-templates mode="M671" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M672" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M672" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M672" priority="-1" />
+  <xsl:template match="@*|node()" mode="M672" priority="-2">
+    <xsl:apply-templates mode="M672" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M673" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M673" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M673" priority="-1" />
+  <xsl:template match="@*|node()" mode="M673" priority="-2">
+    <xsl:apply-templates mode="M673" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity[@unitCode]" mode="M674" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M674" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M674" priority="-1" />
+  <xsl:template match="@*|node()" mode="M674" priority="-2">
+    <xsl:apply-templates mode="M674" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M675" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M675" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M675" priority="-1" />
+  <xsl:template match="@*|node()" mode="M675" priority="-2">
+    <xsl:apply-templates mode="M675" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:AllowanceChargeBasisAmount" mode="M676" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M676" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M676" priority="-1" />
+  <xsl:template match="@*|node()" mode="M676" priority="-2">
+    <xsl:apply-templates mode="M676" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M677" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M677" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M677" priority="-1" />
+  <xsl:template match="@*|node()" mode="M677" priority="-2">
+    <xsl:apply-templates mode="M677" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M678" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M678" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M678" priority="-1" />
+  <xsl:template match="@*|node()" mode="M678" priority="-2">
+    <xsl:apply-templates mode="M678" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M679" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M679" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M679" priority="-1" />
+  <xsl:template match="@*|node()" mode="M679" priority="-2">
+    <xsl:apply-templates mode="M679" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M680" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M680" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M680" priority="-1" />
+  <xsl:template match="@*|node()" mode="M680" priority="-2">
+    <xsl:apply-templates mode="M680" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M681" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M681" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M681" priority="-1" />
+  <xsl:template match="@*|node()" mode="M681" priority="-2">
+    <xsl:apply-templates mode="M681" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M682" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M682" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M682" priority="-1" />
+  <xsl:template match="@*|node()" mode="M682" priority="-2">
+    <xsl:apply-templates mode="M682" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:LineTotalBasisAmount" mode="M683" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M683" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M683" priority="-1" />
+  <xsl:template match="@*|node()" mode="M683" priority="-2">
+    <xsl:apply-templates mode="M683" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" mode="M684" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M684" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M684" priority="-1" />
+  <xsl:template match="@*|node()" mode="M684" priority="-2">
+    <xsl:apply-templates mode="M684" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M685" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M685" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M685" priority="-1" />
+  <xsl:template match="@*|node()" mode="M685" priority="-2">
+    <xsl:apply-templates mode="M685" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M686" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue39" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=39]/enumeration[@value=$codeValue39]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=39]/enumeration[@value=$codeValue39]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M686" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M686" priority="-1" />
+  <xsl:template match="@*|node()" mode="M686" priority="-2">
+    <xsl:apply-templates mode="M686" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M687" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryTradeTax)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryTradeTax)=1">
+          <xsl:attribute name="id">FX-SCH-A-000185</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryTradeTax' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M687" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M687" priority="-1" />
+  <xsl:template match="@*|node()" mode="M687" priority="-2">
+    <xsl:apply-templates mode="M687" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M688" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M688" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M688" priority="-1" />
+  <xsl:template match="@*|node()" mode="M688" priority="-2">
+    <xsl:apply-templates mode="M688" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M689" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M689" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M689" priority="-1" />
+  <xsl:template match="@*|node()" mode="M689" priority="-2">
+    <xsl:apply-templates mode="M689" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity[@unitCode]" mode="M690" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M690" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M690" priority="-1" />
+  <xsl:template match="@*|node()" mode="M690" priority="-2">
+    <xsl:apply-templates mode="M690" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M691" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M691" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M691" priority="-1" />
+  <xsl:template match="@*|node()" mode="M691" priority="-2">
+    <xsl:apply-templates mode="M691" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:AllowanceChargeBasisAmount" mode="M692" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M692" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M692" priority="-1" />
+  <xsl:template match="@*|node()" mode="M692" priority="-2">
+    <xsl:apply-templates mode="M692" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" mode="M693" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M693" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M693" priority="-1" />
+  <xsl:template match="@*|node()" mode="M693" priority="-2">
+    <xsl:apply-templates mode="M693" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" mode="M694" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CalculatedAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M694" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M694" priority="-1" />
+  <xsl:template match="@*|node()" mode="M694" priority="-2">
+    <xsl:apply-templates mode="M694" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" mode="M695" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M695" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M695" priority="-1" />
+  <xsl:template match="@*|node()" mode="M695" priority="-2">
+    <xsl:apply-templates mode="M695" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" mode="M696" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M696" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M696" priority="-1" />
+  <xsl:template match="@*|node()" mode="M696" priority="-2">
+    <xsl:apply-templates mode="M696" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" mode="M697" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReason' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M697" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M697" priority="-1" />
+  <xsl:template match="@*|node()" mode="M697" priority="-2">
+    <xsl:apply-templates mode="M697" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" mode="M698" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M698" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M698" priority="-1" />
+  <xsl:template match="@*|node()" mode="M698" priority="-2">
+    <xsl:apply-templates mode="M698" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:LineTotalBasisAmount" mode="M699" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M699" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M699" priority="-1" />
+  <xsl:template match="@*|node()" mode="M699" priority="-2">
+    <xsl:apply-templates mode="M699" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" mode="M700" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M700" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M700" priority="-1" />
+  <xsl:template match="@*|node()" mode="M700" priority="-2">
+    <xsl:apply-templates mode="M700" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" mode="M701" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M701" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M701" priority="-1" />
+  <xsl:template match="@*|node()" mode="M701" priority="-2">
+    <xsl:apply-templates mode="M701" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M702" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue40" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=40]/enumeration[@value=$codeValue40]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=40]/enumeration[@value=$codeValue40]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M702" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M702" priority="-1" />
+  <xsl:template match="@*|node()" mode="M702" priority="-2">
+    <xsl:apply-templates mode="M702" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" mode="M703" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DirectDebitMandateID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DirectDebitMandateID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000188</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DirectDebitMandateID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PartialPaymentAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PartialPaymentAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000330</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PartialPaymentAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PayeeTradeParty)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PayeeTradeParty)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000331</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PayeeTradeParty' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M703" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M703" priority="-1" />
+  <xsl:template match="@*|node()" mode="M703" priority="-2">
+    <xsl:apply-templates mode="M703" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:ActualDiscountAmount[@currencyID]" mode="M704" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:ActualDiscountAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M704" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M704" priority="-1" />
+  <xsl:template match="@*|node()" mode="M704" priority="-2">
+    <xsl:apply-templates mode="M704" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisAmount[@currencyID]" mode="M705" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M705" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M705" priority="-1" />
+  <xsl:template match="@*|node()" mode="M705" priority="-2">
+    <xsl:apply-templates mode="M705" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisDateTime/udt:DateTimeString" mode="M706" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M706" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M706" priority="-1" />
+  <xsl:template match="@*|node()" mode="M706" priority="-2">
+    <xsl:apply-templates mode="M706" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisDateTime/udt:DateTimeString[@format]" mode="M707" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentDiscountTerms/ram:BasisDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M707" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M707" priority="-1" />
+  <xsl:template match="@*|node()" mode="M707" priority="-2">
+    <xsl:apply-templates mode="M707" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:ActualPenaltyAmount[@currencyID]" mode="M708" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:ActualPenaltyAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M708" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M708" priority="-1" />
+  <xsl:template match="@*|node()" mode="M708" priority="-2">
+    <xsl:apply-templates mode="M708" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisAmount[@currencyID]" mode="M709" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M709" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M709" priority="-1" />
+  <xsl:template match="@*|node()" mode="M709" priority="-2">
+    <xsl:apply-templates mode="M709" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisDateTime/udt:DateTimeString" mode="M710" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M710" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M710" priority="-1" />
+  <xsl:template match="@*|node()" mode="M710" priority="-2">
+    <xsl:apply-templates mode="M710" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisDateTime/udt:DateTimeString[@format]" mode="M711" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M711" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M711" priority="-1" />
+  <xsl:template match="@*|node()" mode="M711" priority="-2">
+    <xsl:apply-templates mode="M711" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisPeriodMeasure" mode="M712" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:ApplicableTradePaymentPenaltyTerms/ram:BasisPeriodMeasure" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M712" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M712" priority="-1" />
+  <xsl:template match="@*|node()" mode="M712" priority="-2">
+    <xsl:apply-templates mode="M712" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" mode="M713" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M713" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M713" priority="-1" />
+  <xsl:template match="@*|node()" mode="M713" priority="-2">
+    <xsl:apply-templates mode="M713" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" mode="M714" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M714" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M714" priority="-1" />
+  <xsl:template match="@*|node()" mode="M714" priority="-2">
+    <xsl:apply-templates mode="M714" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" mode="M715" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M715" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M715" priority="-1" />
+  <xsl:template match="@*|node()" mode="M715" priority="-2">
+    <xsl:apply-templates mode="M715" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PartialPaymentAmount[@currencyID]" mode="M716" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PartialPaymentAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M716" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M716" priority="-1" />
+  <xsl:template match="@*|node()" mode="M716" priority="-2">
+    <xsl:apply-templates mode="M716" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty" mode="M717" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M717" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M717" priority="-1" />
+  <xsl:template match="@*|node()" mode="M717" priority="-2">
+    <xsl:apply-templates mode="M717" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M718" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M718" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M718" priority="-1" />
+  <xsl:template match="@*|node()" mode="M718" priority="-2">
+    <xsl:apply-templates mode="M718" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M719" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M719" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M719" priority="-1" />
+  <xsl:template match="@*|node()" mode="M719" priority="-2">
+    <xsl:apply-templates mode="M719" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M720" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M720" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M720" priority="-1" />
+  <xsl:template match="@*|node()" mode="M720" priority="-2">
+    <xsl:apply-templates mode="M720" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M721" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M721" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M721" priority="-1" />
+  <xsl:template match="@*|node()" mode="M721" priority="-2">
+    <xsl:apply-templates mode="M721" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M722" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M722" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M722" priority="-1" />
+  <xsl:template match="@*|node()" mode="M722" priority="-2">
+    <xsl:apply-templates mode="M722" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M723" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M723" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M723" priority="-1" />
+  <xsl:template match="@*|node()" mode="M723" priority="-2">
+    <xsl:apply-templates mode="M723" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M724" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M724" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M724" priority="-1" />
+  <xsl:template match="@*|node()" mode="M724" priority="-2">
+    <xsl:apply-templates mode="M724" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:Description" mode="M725" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M725" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M725" priority="-1" />
+  <xsl:template match="@*|node()" mode="M725" priority="-2">
+    <xsl:apply-templates mode="M725" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:GlobalID" mode="M726" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M726" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M726" priority="-1" />
+  <xsl:template match="@*|node()" mode="M726" priority="-2">
+    <xsl:apply-templates mode="M726" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" mode="M727" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M727" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M727" priority="-1" />
+  <xsl:template match="@*|node()" mode="M727" priority="-2">
+    <xsl:apply-templates mode="M727" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:ID[@schemeID]" mode="M728" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M728" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M728" priority="-1" />
+  <xsl:template match="@*|node()" mode="M728" priority="-2">
+    <xsl:apply-templates mode="M728" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress" mode="M729" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M729" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M729" priority="-1" />
+  <xsl:template match="@*|node()" mode="M729" priority="-2">
+    <xsl:apply-templates mode="M729" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M730" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M730" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M730" priority="-1" />
+  <xsl:template match="@*|node()" mode="M730" priority="-2">
+    <xsl:apply-templates mode="M730" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M731" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M731" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M731" priority="-1" />
+  <xsl:template match="@*|node()" mode="M731" priority="-2">
+    <xsl:apply-templates mode="M731" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M732" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M732" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M732" priority="-1" />
+  <xsl:template match="@*|node()" mode="M732" priority="-2">
+    <xsl:apply-templates mode="M732" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M733" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M733" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M733" priority="-1" />
+  <xsl:template match="@*|node()" mode="M733" priority="-2">
+    <xsl:apply-templates mode="M733" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M734" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M734" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M734" priority="-1" />
+  <xsl:template match="@*|node()" mode="M734" priority="-2">
+    <xsl:apply-templates mode="M734" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" mode="M735" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M735" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M735" priority="-1" />
+  <xsl:template match="@*|node()" mode="M735" priority="-2">
+    <xsl:apply-templates mode="M735" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M736" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M736" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M736" priority="-1" />
+  <xsl:template match="@*|node()" mode="M736" priority="-2">
+    <xsl:apply-templates mode="M736" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M737" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M737" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M737" priority="-1" />
+  <xsl:template match="@*|node()" mode="M737" priority="-2">
+    <xsl:apply-templates mode="M737" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" mode="M738" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M738" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M738" priority="-1" />
+  <xsl:template match="@*|node()" mode="M738" priority="-2">
+    <xsl:apply-templates mode="M738" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M739" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M739" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M739" priority="-1" />
+  <xsl:template match="@*|node()" mode="M739" priority="-2">
+    <xsl:apply-templates mode="M739" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication" mode="M740" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M740" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M740" priority="-1" />
+  <xsl:template match="@*|node()" mode="M740" priority="-2">
+    <xsl:apply-templates mode="M740" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M741" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M741" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M741" priority="-1" />
+  <xsl:template match="@*|node()" mode="M741" priority="-2">
+    <xsl:apply-templates mode="M741" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M742" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M742" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M742" priority="-1" />
+  <xsl:template match="@*|node()" mode="M742" priority="-2">
+    <xsl:apply-templates mode="M742" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M743" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:PayeeTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M743" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M743" priority="-1" />
+  <xsl:template match="@*|node()" mode="M743" priority="-2">
+    <xsl:apply-templates mode="M743" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M744" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000190</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000191</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxBasisTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxBasisTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000041</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000042</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000192</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoundingAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoundingAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000290</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoundingAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000043</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TotalPrepaidAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TotalPrepaidAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000193</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TotalPrepaidAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DuePayableAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DuePayableAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000044</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DuePayableAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M744" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M744" priority="-1" />
+  <xsl:template match="@*|node()" mode="M744" priority="-2">
+    <xsl:apply-templates mode="M744" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" mode="M745" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M745" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M745" priority="-1" />
+  <xsl:template match="@*|node()" mode="M745" priority="-2">
+    <xsl:apply-templates mode="M745" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" mode="M746" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M746" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M746" priority="-1" />
+  <xsl:template match="@*|node()" mode="M746" priority="-2">
+    <xsl:apply-templates mode="M746" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" mode="M747" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M747" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M747" priority="-1" />
+  <xsl:template match="@*|node()" mode="M747" priority="-2">
+    <xsl:apply-templates mode="M747" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M748" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M748" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M748" priority="-1" />
+  <xsl:template match="@*|node()" mode="M748" priority="-2">
+    <xsl:apply-templates mode="M748" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M749" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M749" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M749" priority="-1" />
+  <xsl:template match="@*|node()" mode="M749" priority="-2">
+    <xsl:apply-templates mode="M749" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount[@currencyID]" mode="M750" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M750" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M750" priority="-1" />
+  <xsl:template match="@*|node()" mode="M750" priority="-2">
+    <xsl:apply-templates mode="M750" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" mode="M751" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M751" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M751" priority="-1" />
+  <xsl:template match="@*|node()" mode="M751" priority="-2">
+    <xsl:apply-templates mode="M751" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" mode="M752" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M752" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M752" priority="-1" />
+  <xsl:template match="@*|node()" mode="M752" priority="-2">
+    <xsl:apply-templates mode="M752" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" mode="M753" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue41" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=41]/enumeration[@value=$codeValue41]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=41]/enumeration[@value=$codeValue41]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M753" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M753" priority="-1" />
+  <xsl:template match="@*|node()" mode="M753" priority="-2">
+    <xsl:apply-templates mode="M753" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" mode="M754" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M754" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M754" priority="-1" />
+  <xsl:template match="@*|node()" mode="M754" priority="-2">
+    <xsl:apply-templates mode="M754" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" mode="M755" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue42" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=42]/enumeration[@value=$codeValue42]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=42]/enumeration[@value=$codeValue42]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M755" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M755" priority="-1" />
+  <xsl:template match="@*|node()" mode="M755" priority="-2">
+    <xsl:apply-templates mode="M755" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" mode="M756" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M756" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M756" priority="-1" />
+  <xsl:template match="@*|node()" mode="M756" priority="-2">
+    <xsl:apply-templates mode="M756" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" mode="M757" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M757" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M757" priority="-1" />
+  <xsl:template match="@*|node()" mode="M757" priority="-2">
+    <xsl:apply-templates mode="M757" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" mode="M758" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Information)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Information)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000291</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Information' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000194</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PayeePartyCreditorFinancialAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M758" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M758" priority="-1" />
+  <xsl:template match="@*|node()" mode="M758" priority="-2">
+    <xsl:apply-templates mode="M758" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard" mode="M759" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M759" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M759" priority="-1" />
+  <xsl:template match="@*|node()" mode="M759" priority="-2">
+    <xsl:apply-templates mode="M759" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID[@schemeID]" mode="M760" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M760" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M760" priority="-1" />
+  <xsl:template match="@*|node()" mode="M760" priority="-2">
+    <xsl:apply-templates mode="M760" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" mode="M761" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M761" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M761" priority="-1" />
+  <xsl:template match="@*|node()" mode="M761" priority="-2">
+    <xsl:apply-templates mode="M761" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" mode="M762" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M762" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M762" priority="-1" />
+  <xsl:template match="@*|node()" mode="M762" priority="-2">
+    <xsl:apply-templates mode="M762" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution" mode="M763" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BICID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BICID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000292</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BICID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M763" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M763" priority="-1" />
+  <xsl:template match="@*|node()" mode="M763" priority="-2">
+    <xsl:apply-templates mode="M763" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID[@schemeID]" mode="M764" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M764" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M764" priority="-1" />
+  <xsl:template match="@*|node()" mode="M764" priority="-2">
+    <xsl:apply-templates mode="M764" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" mode="M765" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IBANID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IBANID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000195</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IBANID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M765" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M765" priority="-1" />
+  <xsl:template match="@*|node()" mode="M765" priority="-2">
+    <xsl:apply-templates mode="M765" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" mode="M766" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M766" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M766" priority="-1" />
+  <xsl:template match="@*|node()" mode="M766" priority="-2">
+    <xsl:apply-templates mode="M766" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" mode="M767" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode" />
+    <xsl:variable name="codeValue36" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=36]/enumeration[@value=$codeValue36]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=36]/enumeration[@value=$codeValue36]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M767" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M767" priority="-1" />
+  <xsl:template match="@*|node()" mode="M767" priority="-2">
+    <xsl:apply-templates mode="M767" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:ConversionRateDateTime/udt:DateTimeString" mode="M768" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:ConversionRateDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M768" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M768" priority="-1" />
+  <xsl:template match="@*|node()" mode="M768" priority="-2">
+    <xsl:apply-templates mode="M768" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:ConversionRateDateTime/udt:DateTimeString[@format]" mode="M769" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:ConversionRateDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M769" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M769" priority="-1" />
+  <xsl:template match="@*|node()" mode="M769" priority="-2">
+    <xsl:apply-templates mode="M769" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:SourceCurrencyCode" mode="M770" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:SourceCurrencyCode" />
+    <xsl:variable name="codeValue35" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]">
+          <xsl:attribute name="id">FX-SCH-A-000332</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SourceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M770" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M770" priority="-1" />
+  <xsl:template match="@*|node()" mode="M770" priority="-2">
+    <xsl:apply-templates mode="M770" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:TargetCurrencyCode" mode="M771" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxApplicableTradeCurrencyExchange/ram:TargetCurrencyCode" />
+    <xsl:variable name="codeValue35" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]">
+          <xsl:attribute name="id">FX-SCH-A-000333</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TargetCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M771" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M771" priority="-1" />
+  <xsl:template match="@*|node()" mode="M771" priority="-2">
+    <xsl:apply-templates mode="M771" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" mode="M772" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode" />
+    <xsl:variable name="codeValue35" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=35]/enumeration[@value=$codeValue35]">
+          <xsl:attribute name="id">FX-SCH-A-000196</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TaxCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M772" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M772" priority="-1" />
+  <xsl:template match="@*|node()" mode="M772" priority="-2">
+    <xsl:apply-templates mode="M772" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" mode="M773" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AssociatedDocumentLineDocument)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AssociatedDocumentLineDocument)=1">
+          <xsl:attribute name="id">FX-SCH-A-000266</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AssociatedDocumentLineDocument' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeProduct)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeProduct)=1">
+          <xsl:attribute name="id">FX-SCH-A-000267</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeProduct' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeAgreement)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeAgreement)=1">
+          <xsl:attribute name="id">FX-SCH-A-000268</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeAgreement' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedLineTradeDelivery)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedLineTradeDelivery)=1">
+          <xsl:attribute name="id">FX-SCH-A-000269</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedLineTradeDelivery' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M773" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M773" priority="-1" />
+  <xsl:template match="@*|node()" mode="M773" priority="-2">
+    <xsl:apply-templates mode="M773" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" mode="M774" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000270</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M774" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M774" priority="-1" />
+  <xsl:template match="@*|node()" mode="M774" priority="-2">
+    <xsl:apply-templates mode="M774" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" mode="M775" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Content)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Content)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000317</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Content' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SubjectCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SubjectCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000161</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SubjectCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M775" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M775" priority="-1" />
+  <xsl:template match="@*|node()" mode="M775" priority="-2">
+    <xsl:apply-templates mode="M775" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:ContentCode[@listID]" mode="M776" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:ContentCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M776" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M776" priority="-1" />
+  <xsl:template match="@*|node()" mode="M776" priority="-2">
+    <xsl:apply-templates mode="M776" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:ContentCode[@listVersionID]" mode="M777" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:ContentCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M777" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M777" priority="-1" />
+  <xsl:template match="@*|node()" mode="M777" priority="-2">
+    <xsl:apply-templates mode="M777" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" mode="M778" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode" />
+    <xsl:variable name="codeValue4" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000162</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:SubjectCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M778" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M778" priority="-1" />
+  <xsl:template match="@*|node()" mode="M778" priority="-2">
+    <xsl:apply-templates mode="M778" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode[@listID]" mode="M779" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M779" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M779" priority="-1" />
+  <xsl:template match="@*|node()" mode="M779" priority="-2">
+    <xsl:apply-templates mode="M779" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" mode="M780" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M780" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M780" priority="-1" />
+  <xsl:template match="@*|node()" mode="M780" priority="-2">
+    <xsl:apply-templates mode="M780" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" mode="M781" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M781" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M781" priority="-1" />
+  <xsl:template match="@*|node()" mode="M781" priority="-2">
+    <xsl:apply-templates mode="M781" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusCode" mode="M782" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusCode" />
+    <xsl:variable name="codeValue5" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000334</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:LineStatusCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M782" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M782" priority="-1" />
+  <xsl:template match="@*|node()" mode="M782" priority="-2">
+    <xsl:apply-templates mode="M782" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode" mode="M783" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode" />
+    <xsl:variable name="codeValue6" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000335</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:LineStatusReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M783" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M783" priority="-1" />
+  <xsl:template match="@*|node()" mode="M783" priority="-2">
+    <xsl:apply-templates mode="M783" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode[@listID]" mode="M784" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M784" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M784" priority="-1" />
+  <xsl:template match="@*|node()" mode="M784" priority="-2">
+    <xsl:apply-templates mode="M784" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode[@listVersionID]" mode="M785" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M785" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M785" priority="-1" />
+  <xsl:template match="@*|node()" mode="M785" priority="-2">
+    <xsl:apply-templates mode="M785" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:ParentLineID[@schemeID]" mode="M786" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:ParentLineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M786" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M786" priority="-1" />
+  <xsl:template match="@*|node()" mode="M786" priority="-2">
+    <xsl:apply-templates mode="M786" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" mode="M787" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:NetPriceProductTradePrice)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:NetPriceProductTradePrice)=1">
+          <xsl:attribute name="id">FX-SCH-A-000272</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:NetPriceProductTradePrice' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M787" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M787" priority="-1" />
+  <xsl:template match="@*|node()" mode="M787" priority="-2">
+    <xsl:apply-templates mode="M787" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument" mode="M788" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000283</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AttachmentBinaryObject)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AttachmentBinaryObject)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000284</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AttachmentBinaryObject' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M788" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M788" priority="-1" />
+  <xsl:template match="@*|node()" mode="M788" priority="-2">
+    <xsl:apply-templates mode="M788" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" mode="M789" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@mimeCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@mimeCode">
+          <xsl:attribute name="id">FX-SCH-A-000285</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@mimeCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@filename" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@filename">
+          <xsl:attribute name="id">FX-SCH-A-000286</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@filename' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M789" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M789" priority="-1" />
+  <xsl:template match="@*|node()" mode="M789" priority="-2">
+    <xsl:apply-templates mode="M789" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject[@mimeCode]" mode="M790" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject[@mimeCode]" />
+    <xsl:variable name="codeValue14" select="@mimeCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=14]/enumeration[@value=$codeValue14]">
+          <xsl:attribute name="id">FX-SCH-A-000287</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@mimeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M790" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M790" priority="-1" />
+  <xsl:template match="@*|node()" mode="M790" priority="-2">
+    <xsl:apply-templates mode="M790" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M791" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M791" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M791" priority="-1" />
+  <xsl:template match="@*|node()" mode="M791" priority="-2">
+    <xsl:apply-templates mode="M791" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M792" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M792" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M792" priority="-1" />
+  <xsl:template match="@*|node()" mode="M792" priority="-2">
+    <xsl:apply-templates mode="M792" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M793" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M793" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M793" priority="-1" />
+  <xsl:template match="@*|node()" mode="M793" priority="-2">
+    <xsl:apply-templates mode="M793" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:LineID[@schemeID]" mode="M794" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M794" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M794" priority="-1" />
+  <xsl:template match="@*|node()" mode="M794" priority="-2">
+    <xsl:apply-templates mode="M794" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" mode="M795" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue15" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M795" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M795" priority="-1" />
+  <xsl:template match="@*|node()" mode="M795" priority="-2">
+    <xsl:apply-templates mode="M795" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode" mode="M796" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M796" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M796" priority="-1" />
+  <xsl:template match="@*|node()" mode="M796" priority="-2">
+    <xsl:apply-templates mode="M796" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:URIID[@schemeID]" mode="M797" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:AdditionalReferencedDocument/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M797" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M797" priority="-1" />
+  <xsl:template match="@*|node()" mode="M797" priority="-2">
+    <xsl:apply-templates mode="M797" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M798" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M798" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M798" priority="-1" />
+  <xsl:template match="@*|node()" mode="M798" priority="-2">
+    <xsl:apply-templates mode="M798" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M799" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M799" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M799" priority="-1" />
+  <xsl:template match="@*|node()" mode="M799" priority="-2">
+    <xsl:apply-templates mode="M799" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M800" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M800" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M800" priority="-1" />
+  <xsl:template match="@*|node()" mode="M800" priority="-2">
+    <xsl:apply-templates mode="M800" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M801" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M801" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M801" priority="-1" />
+  <xsl:template match="@*|node()" mode="M801" priority="-2">
+    <xsl:apply-templates mode="M801" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID[@schemeID]" mode="M802" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M802" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M802" priority="-1" />
+  <xsl:template match="@*|node()" mode="M802" priority="-2">
+    <xsl:apply-templates mode="M802" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" mode="M803" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M803" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M803" priority="-1" />
+  <xsl:template match="@*|node()" mode="M803" priority="-2">
+    <xsl:apply-templates mode="M803" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M804" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M804" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M804" priority="-1" />
+  <xsl:template match="@*|node()" mode="M804" priority="-2">
+    <xsl:apply-templates mode="M804" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" mode="M805" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M805" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M805" priority="-1" />
+  <xsl:template match="@*|node()" mode="M805" priority="-2">
+    <xsl:apply-templates mode="M805" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" mode="M806" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M806" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M806" priority="-1" />
+  <xsl:template match="@*|node()" mode="M806" priority="-2">
+    <xsl:apply-templates mode="M806" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" mode="M807" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M807" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M807" priority="-1" />
+  <xsl:template match="@*|node()" mode="M807" priority="-2">
+    <xsl:apply-templates mode="M807" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M808" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M808" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M808" priority="-1" />
+  <xsl:template match="@*|node()" mode="M808" priority="-2">
+    <xsl:apply-templates mode="M808" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M809" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M809" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M809" priority="-1" />
+  <xsl:template match="@*|node()" mode="M809" priority="-2">
+    <xsl:apply-templates mode="M809" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M810" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M810" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M810" priority="-1" />
+  <xsl:template match="@*|node()" mode="M810" priority="-2">
+    <xsl:apply-templates mode="M810" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:LineID[@schemeID]" mode="M811" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M811" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M811" priority="-1" />
+  <xsl:template match="@*|node()" mode="M811" priority="-2">
+    <xsl:apply-templates mode="M811" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:Name" mode="M812" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M812" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M812" priority="-1" />
+  <xsl:template match="@*|node()" mode="M812" priority="-2">
+    <xsl:apply-templates mode="M812" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" mode="M813" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M813" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M813" priority="-1" />
+  <xsl:template match="@*|node()" mode="M813" priority="-2">
+    <xsl:apply-templates mode="M813" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" mode="M814" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M814" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M814" priority="-1" />
+  <xsl:template match="@*|node()" mode="M814" priority="-2">
+    <xsl:apply-templates mode="M814" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:URIID" mode="M815" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:ContractReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M815" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M815" priority="-1" />
+  <xsl:template match="@*|node()" mode="M815" priority="-2">
+    <xsl:apply-templates mode="M815" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" mode="M816" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M816" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M816" priority="-1" />
+  <xsl:template match="@*|node()" mode="M816" priority="-2">
+    <xsl:apply-templates mode="M816" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M817" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M817" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M817" priority="-1" />
+  <xsl:template match="@*|node()" mode="M817" priority="-2">
+    <xsl:apply-templates mode="M817" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M818" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M818" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M818" priority="-1" />
+  <xsl:template match="@*|node()" mode="M818" priority="-2">
+    <xsl:apply-templates mode="M818" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M819" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M819" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M819" priority="-1" />
+  <xsl:template match="@*|node()" mode="M819" priority="-2">
+    <xsl:apply-templates mode="M819" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M820" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M820" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M820" priority="-1" />
+  <xsl:template match="@*|node()" mode="M820" priority="-2">
+    <xsl:apply-templates mode="M820" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity" mode="M821" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisQuantity' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M821" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M821" priority="-1" />
+  <xsl:template match="@*|node()" mode="M821" priority="-2">
+    <xsl:apply-templates mode="M821" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M822" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M822" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M822" priority="-1" />
+  <xsl:template match="@*|node()" mode="M822" priority="-2">
+    <xsl:apply-templates mode="M822" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M823" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue16" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=16]/enumeration[@value=$codeValue16]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M823" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M823" priority="-1" />
+  <xsl:template match="@*|node()" mode="M823" priority="-2">
+    <xsl:apply-templates mode="M823" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:SequenceNumeric" mode="M824" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:SequenceNumeric" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SequenceNumeric' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M824" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M824" priority="-1" />
+  <xsl:template match="@*|node()" mode="M824" priority="-2">
+    <xsl:apply-templates mode="M824" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M825" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M825" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M825" priority="-1" />
+  <xsl:template match="@*|node()" mode="M825" priority="-2">
+    <xsl:apply-templates mode="M825" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M826" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M826" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M826" priority="-1" />
+  <xsl:template match="@*|node()" mode="M826" priority="-2">
+    <xsl:apply-templates mode="M826" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M827" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M827" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M827" priority="-1" />
+  <xsl:template match="@*|node()" mode="M827" priority="-2">
+    <xsl:apply-templates mode="M827" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity" mode="M828" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisQuantity' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M828" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M828" priority="-1" />
+  <xsl:template match="@*|node()" mode="M828" priority="-2">
+    <xsl:apply-templates mode="M828" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M829" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M829" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M829" priority="-1" />
+  <xsl:template match="@*|node()" mode="M829" priority="-2">
+    <xsl:apply-templates mode="M829" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M830" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue17" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=17]/enumeration[@value=$codeValue17]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M830" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M830" priority="-1" />
+  <xsl:template match="@*|node()" mode="M830" priority="-2">
+    <xsl:apply-templates mode="M830" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:SequenceNumeric" mode="M831" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:SequenceNumeric" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SequenceNumeric' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M831" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M831" priority="-1" />
+  <xsl:template match="@*|node()" mode="M831" priority="-2">
+    <xsl:apply-templates mode="M831" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M832" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M832" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M832" priority="-1" />
+  <xsl:template match="@*|node()" mode="M832" priority="-2">
+    <xsl:apply-templates mode="M832" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M833" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M833" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M833" priority="-1" />
+  <xsl:template match="@*|node()" mode="M833" priority="-2">
+    <xsl:apply-templates mode="M833" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:IncludedTradeTax" mode="M834" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:IncludedTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:IncludedTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M834" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M834" priority="-1" />
+  <xsl:template match="@*|node()" mode="M834" priority="-2">
+    <xsl:apply-templates mode="M834" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" mode="M835" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000273</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IncludedTradeTax)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IncludedTradeTax)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000336</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IncludedTradeTax' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M835" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M835" priority="-1" />
+  <xsl:template match="@*|node()" mode="M835" priority="-2">
+    <xsl:apply-templates mode="M835" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" mode="M836" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AppliedTradeAllowanceCharge' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M836" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M836" priority="-1" />
+  <xsl:template match="@*|node()" mode="M836" priority="-2">
+    <xsl:apply-templates mode="M836" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" mode="M837" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M837" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M837" priority="-1" />
+  <xsl:template match="@*|node()" mode="M837" priority="-2">
+    <xsl:apply-templates mode="M837" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" mode="M838" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M838" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M838" priority="-1" />
+  <xsl:template match="@*|node()" mode="M838" priority="-2">
+    <xsl:apply-templates mode="M838" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax" mode="M839" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000176</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RateApplicablePercent)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RateApplicablePercent)=1">
+          <xsl:attribute name="id">FX-SCH-A-000329</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RateApplicablePercent' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M839" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M839" priority="-1" />
+  <xsl:template match="@*|node()" mode="M839" priority="-2">
+    <xsl:apply-templates mode="M839" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:AllowanceChargeBasisAmount" mode="M840" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M840" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M840" priority="-1" />
+  <xsl:template match="@*|node()" mode="M840" priority="-2">
+    <xsl:apply-templates mode="M840" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:BasisAmount" mode="M841" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M841" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M841" priority="-1" />
+  <xsl:template match="@*|node()" mode="M841" priority="-2">
+    <xsl:apply-templates mode="M841" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:CalculatedAmount[@currencyID]" mode="M842" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M842" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M842" priority="-1" />
+  <xsl:template match="@*|node()" mode="M842" priority="-2">
+    <xsl:apply-templates mode="M842" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:CategoryCode" mode="M843" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M843" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M843" priority="-1" />
+  <xsl:template match="@*|node()" mode="M843" priority="-2">
+    <xsl:apply-templates mode="M843" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:DueDateTypeCode" mode="M844" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M844" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M844" priority="-1" />
+  <xsl:template match="@*|node()" mode="M844" priority="-2">
+    <xsl:apply-templates mode="M844" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode" mode="M845" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M845" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M845" priority="-1" />
+  <xsl:template match="@*|node()" mode="M845" priority="-2">
+    <xsl:apply-templates mode="M845" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listID]" mode="M846" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M846" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M846" priority="-1" />
+  <xsl:template match="@*|node()" mode="M846" priority="-2">
+    <xsl:apply-templates mode="M846" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listVersionID]" mode="M847" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:ExemptionReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M847" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M847" priority="-1" />
+  <xsl:template match="@*|node()" mode="M847" priority="-2">
+    <xsl:apply-templates mode="M847" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:LineTotalBasisAmount" mode="M848" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M848" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M848" priority="-1" />
+  <xsl:template match="@*|node()" mode="M848" priority="-2">
+    <xsl:apply-templates mode="M848" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:TaxPointDate" mode="M849" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M849" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M849" priority="-1" />
+  <xsl:template match="@*|node()" mode="M849" priority="-2">
+    <xsl:apply-templates mode="M849" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:TypeCode" mode="M850" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:IncludedTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue18" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=18]/enumeration[@value=$codeValue18]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M850" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M850" priority="-1" />
+  <xsl:template match="@*|node()" mode="M850" priority="-2">
+    <xsl:apply-templates mode="M850" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:AttachmentBinaryObject" mode="M851" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M851" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M851" priority="-1" />
+  <xsl:template match="@*|node()" mode="M851" priority="-2">
+    <xsl:apply-templates mode="M851" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M852" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M852" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M852" priority="-1" />
+  <xsl:template match="@*|node()" mode="M852" priority="-2">
+    <xsl:apply-templates mode="M852" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M853" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M853" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M853" priority="-1" />
+  <xsl:template match="@*|node()" mode="M853" priority="-2">
+    <xsl:apply-templates mode="M853" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M854" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M854" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M854" priority="-1" />
+  <xsl:template match="@*|node()" mode="M854" priority="-2">
+    <xsl:apply-templates mode="M854" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:LineID[@schemeID]" mode="M855" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M855" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M855" priority="-1" />
+  <xsl:template match="@*|node()" mode="M855" priority="-2">
+    <xsl:apply-templates mode="M855" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:Name" mode="M856" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M856" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M856" priority="-1" />
+  <xsl:template match="@*|node()" mode="M856" priority="-2">
+    <xsl:apply-templates mode="M856" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:ReferenceTypeCode" mode="M857" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M857" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M857" priority="-1" />
+  <xsl:template match="@*|node()" mode="M857" priority="-2">
+    <xsl:apply-templates mode="M857" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:TypeCode" mode="M858" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M858" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M858" priority="-1" />
+  <xsl:template match="@*|node()" mode="M858" priority="-2">
+    <xsl:apply-templates mode="M858" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:URIID" mode="M859" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:QuotationReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M859" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M859" priority="-1" />
+  <xsl:template match="@*|node()" mode="M859" priority="-2">
+    <xsl:apply-templates mode="M859" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M860" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M860" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M860" priority="-1" />
+  <xsl:template match="@*|node()" mode="M860" priority="-2">
+    <xsl:apply-templates mode="M860" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M861" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M861" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M861" priority="-1" />
+  <xsl:template match="@*|node()" mode="M861" priority="-2">
+    <xsl:apply-templates mode="M861" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M862" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M862" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M862" priority="-1" />
+  <xsl:template match="@*|node()" mode="M862" priority="-2">
+    <xsl:apply-templates mode="M862" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M863" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M863" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M863" priority="-1" />
+  <xsl:template match="@*|node()" mode="M863" priority="-2">
+    <xsl:apply-templates mode="M863" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID[@schemeID]" mode="M864" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M864" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M864" priority="-1" />
+  <xsl:template match="@*|node()" mode="M864" priority="-2">
+    <xsl:apply-templates mode="M864" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" mode="M865" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M865" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M865" priority="-1" />
+  <xsl:template match="@*|node()" mode="M865" priority="-2">
+    <xsl:apply-templates mode="M865" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M866" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M866" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M866" priority="-1" />
+  <xsl:template match="@*|node()" mode="M866" priority="-2">
+    <xsl:apply-templates mode="M866" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" mode="M867" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M867" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M867" priority="-1" />
+  <xsl:template match="@*|node()" mode="M867" priority="-2">
+    <xsl:apply-templates mode="M867" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" mode="M868" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M868" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M868" priority="-1" />
+  <xsl:template match="@*|node()" mode="M868" priority="-2">
+    <xsl:apply-templates mode="M868" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:AttachmentBinaryObject" mode="M869" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M869" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M869" priority="-1" />
+  <xsl:template match="@*|node()" mode="M869" priority="-2">
+    <xsl:apply-templates mode="M869" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M870" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M870" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M870" priority="-1" />
+  <xsl:template match="@*|node()" mode="M870" priority="-2">
+    <xsl:apply-templates mode="M870" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M871" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M871" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M871" priority="-1" />
+  <xsl:template match="@*|node()" mode="M871" priority="-2">
+    <xsl:apply-templates mode="M871" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M872" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M872" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M872" priority="-1" />
+  <xsl:template match="@*|node()" mode="M872" priority="-2">
+    <xsl:apply-templates mode="M872" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:LineID[@schemeID]" mode="M873" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M873" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M873" priority="-1" />
+  <xsl:template match="@*|node()" mode="M873" priority="-2">
+    <xsl:apply-templates mode="M873" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:Name" mode="M874" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M874" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M874" priority="-1" />
+  <xsl:template match="@*|node()" mode="M874" priority="-2">
+    <xsl:apply-templates mode="M874" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:ReferenceTypeCode" mode="M875" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M875" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M875" priority="-1" />
+  <xsl:template match="@*|node()" mode="M875" priority="-2">
+    <xsl:apply-templates mode="M875" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:TypeCode" mode="M876" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M876" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M876" priority="-1" />
+  <xsl:template match="@*|node()" mode="M876" priority="-2">
+    <xsl:apply-templates mode="M876" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:URIID" mode="M877" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:UltimateCustomerOrderReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M877" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M877" priority="-1" />
+  <xsl:template match="@*|node()" mode="M877" priority="-2">
+    <xsl:apply-templates mode="M877" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" mode="M878" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BilledQuantity)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BilledQuantity)=1">
+          <xsl:attribute name="id">FX-SCH-A-000276</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BilledQuantity' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M878" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M878" priority="-1" />
+  <xsl:template match="@*|node()" mode="M878" priority="-2">
+    <xsl:apply-templates mode="M878" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent" mode="M879" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:OccurrenceDateTime)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:OccurrenceDateTime)=1">
+          <xsl:attribute name="id">FX-SCH-A-000171</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M879" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M879" priority="-1" />
+  <xsl:template match="@*|node()" mode="M879" priority="-2">
+    <xsl:apply-templates mode="M879" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" mode="M880" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M880" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M880" priority="-1" />
+  <xsl:template match="@*|node()" mode="M880" priority="-2">
+    <xsl:apply-templates mode="M880" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" mode="M881" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M881" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M881" priority="-1" />
+  <xsl:template match="@*|node()" mode="M881" priority="-2">
+    <xsl:apply-templates mode="M881" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" mode="M882" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M882" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M882" priority="-1" />
+  <xsl:template match="@*|node()" mode="M882" priority="-2">
+    <xsl:apply-templates mode="M882" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" mode="M883" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M883" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M883" priority="-1" />
+  <xsl:template match="@*|node()" mode="M883" priority="-2">
+    <xsl:apply-templates mode="M883" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ChargeFreeQuantity" mode="M884" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ChargeFreeQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M884" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M884" priority="-1" />
+  <xsl:template match="@*|node()" mode="M884" priority="-2">
+    <xsl:apply-templates mode="M884" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ChargeFreeQuantity[@unitCode]" mode="M885" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ChargeFreeQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M885" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M885" priority="-1" />
+  <xsl:template match="@*|node()" mode="M885" priority="-2">
+    <xsl:apply-templates mode="M885" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:AttachmentBinaryObject" mode="M886" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M886" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M886" priority="-1" />
+  <xsl:template match="@*|node()" mode="M886" priority="-2">
+    <xsl:apply-templates mode="M886" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M887" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M887" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M887" priority="-1" />
+  <xsl:template match="@*|node()" mode="M887" priority="-2">
+    <xsl:apply-templates mode="M887" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M888" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M888" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M888" priority="-1" />
+  <xsl:template match="@*|node()" mode="M888" priority="-2">
+    <xsl:apply-templates mode="M888" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M889" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M889" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M889" priority="-1" />
+  <xsl:template match="@*|node()" mode="M889" priority="-2">
+    <xsl:apply-templates mode="M889" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:LineID[@schemeID]" mode="M890" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M890" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M890" priority="-1" />
+  <xsl:template match="@*|node()" mode="M890" priority="-2">
+    <xsl:apply-templates mode="M890" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:Name" mode="M891" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M891" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M891" priority="-1" />
+  <xsl:template match="@*|node()" mode="M891" priority="-2">
+    <xsl:apply-templates mode="M891" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:ReferenceTypeCode" mode="M892" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M892" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M892" priority="-1" />
+  <xsl:template match="@*|node()" mode="M892" priority="-2">
+    <xsl:apply-templates mode="M892" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:TypeCode" mode="M893" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M893" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M893" priority="-1" />
+  <xsl:template match="@*|node()" mode="M893" priority="-2">
+    <xsl:apply-templates mode="M893" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:URIID" mode="M894" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DeliveryNoteReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M894" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M894" priority="-1" />
+  <xsl:template match="@*|node()" mode="M894" priority="-2">
+    <xsl:apply-templates mode="M894" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M895" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M895" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M895" priority="-1" />
+  <xsl:template match="@*|node()" mode="M895" priority="-2">
+    <xsl:apply-templates mode="M895" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M896" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M896" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M896" priority="-1" />
+  <xsl:template match="@*|node()" mode="M896" priority="-2">
+    <xsl:apply-templates mode="M896" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M897" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M897" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M897" priority="-1" />
+  <xsl:template match="@*|node()" mode="M897" priority="-2">
+    <xsl:apply-templates mode="M897" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M898" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M898" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M898" priority="-1" />
+  <xsl:template match="@*|node()" mode="M898" priority="-2">
+    <xsl:apply-templates mode="M898" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID[@schemeID]" mode="M899" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M899" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M899" priority="-1" />
+  <xsl:template match="@*|node()" mode="M899" priority="-2">
+    <xsl:apply-templates mode="M899" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" mode="M900" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M900" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M900" priority="-1" />
+  <xsl:template match="@*|node()" mode="M900" priority="-2">
+    <xsl:apply-templates mode="M900" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M901" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M901" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M901" priority="-1" />
+  <xsl:template match="@*|node()" mode="M901" priority="-2">
+    <xsl:apply-templates mode="M901" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" mode="M902" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M902" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M902" priority="-1" />
+  <xsl:template match="@*|node()" mode="M902" priority="-2">
+    <xsl:apply-templates mode="M902" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" mode="M903" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M903" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M903" priority="-1" />
+  <xsl:template match="@*|node()" mode="M903" priority="-2">
+    <xsl:apply-templates mode="M903" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:PackageQuantity" mode="M904" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:PackageQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M904" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M904" priority="-1" />
+  <xsl:template match="@*|node()" mode="M904" priority="-2">
+    <xsl:apply-templates mode="M904" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:PackageQuantity[@unitCode]" mode="M905" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:PackageQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M905" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M905" priority="-1" />
+  <xsl:template match="@*|node()" mode="M905" priority="-2">
+    <xsl:apply-templates mode="M905" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" mode="M906" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M906" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M906" priority="-1" />
+  <xsl:template match="@*|node()" mode="M906" priority="-2">
+    <xsl:apply-templates mode="M906" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M907" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M907" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M907" priority="-1" />
+  <xsl:template match="@*|node()" mode="M907" priority="-2">
+    <xsl:apply-templates mode="M907" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M908" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M908" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M908" priority="-1" />
+  <xsl:template match="@*|node()" mode="M908" priority="-2">
+    <xsl:apply-templates mode="M908" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M909" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M909" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M909" priority="-1" />
+  <xsl:template match="@*|node()" mode="M909" priority="-2">
+    <xsl:apply-templates mode="M909" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID[@schemeID]" mode="M910" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M910" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M910" priority="-1" />
+  <xsl:template match="@*|node()" mode="M910" priority="-2">
+    <xsl:apply-templates mode="M910" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" mode="M911" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M911" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M911" priority="-1" />
+  <xsl:template match="@*|node()" mode="M911" priority="-2">
+    <xsl:apply-templates mode="M911" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" mode="M912" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M912" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M912" priority="-1" />
+  <xsl:template match="@*|node()" mode="M912" priority="-2">
+    <xsl:apply-templates mode="M912" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" mode="M913" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M913" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M913" priority="-1" />
+  <xsl:template match="@*|node()" mode="M913" priority="-2">
+    <xsl:apply-templates mode="M913" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" mode="M914" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M914" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M914" priority="-1" />
+  <xsl:template match="@*|node()" mode="M914" priority="-2">
+    <xsl:apply-templates mode="M914" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty" mode="M915" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M915" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M915" priority="-1" />
+  <xsl:template match="@*|node()" mode="M915" priority="-2">
+    <xsl:apply-templates mode="M915" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M916" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M916" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M916" priority="-1" />
+  <xsl:template match="@*|node()" mode="M916" priority="-2">
+    <xsl:apply-templates mode="M916" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M917" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M917" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M917" priority="-1" />
+  <xsl:template match="@*|node()" mode="M917" priority="-2">
+    <xsl:apply-templates mode="M917" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M918" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M918" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M918" priority="-1" />
+  <xsl:template match="@*|node()" mode="M918" priority="-2">
+    <xsl:apply-templates mode="M918" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M919" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M919" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M919" priority="-1" />
+  <xsl:template match="@*|node()" mode="M919" priority="-2">
+    <xsl:apply-templates mode="M919" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M920" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M920" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M920" priority="-1" />
+  <xsl:template match="@*|node()" mode="M920" priority="-2">
+    <xsl:apply-templates mode="M920" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M921" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M921" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M921" priority="-1" />
+  <xsl:template match="@*|node()" mode="M921" priority="-2">
+    <xsl:apply-templates mode="M921" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M922" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M922" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M922" priority="-1" />
+  <xsl:template match="@*|node()" mode="M922" priority="-2">
+    <xsl:apply-templates mode="M922" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:Description" mode="M923" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M923" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M923" priority="-1" />
+  <xsl:template match="@*|node()" mode="M923" priority="-2">
+    <xsl:apply-templates mode="M923" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" mode="M924" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M924" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M924" priority="-1" />
+  <xsl:template match="@*|node()" mode="M924" priority="-2">
+    <xsl:apply-templates mode="M924" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" mode="M925" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M925" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M925" priority="-1" />
+  <xsl:template match="@*|node()" mode="M925" priority="-2">
+    <xsl:apply-templates mode="M925" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" mode="M926" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M926" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M926" priority="-1" />
+  <xsl:template match="@*|node()" mode="M926" priority="-2">
+    <xsl:apply-templates mode="M926" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" mode="M927" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M927" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M927" priority="-1" />
+  <xsl:template match="@*|node()" mode="M927" priority="-2">
+    <xsl:apply-templates mode="M927" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M928" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M928" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M928" priority="-1" />
+  <xsl:template match="@*|node()" mode="M928" priority="-2">
+    <xsl:apply-templates mode="M928" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M929" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M929" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M929" priority="-1" />
+  <xsl:template match="@*|node()" mode="M929" priority="-2">
+    <xsl:apply-templates mode="M929" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M930" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M930" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M930" priority="-1" />
+  <xsl:template match="@*|node()" mode="M930" priority="-2">
+    <xsl:apply-templates mode="M930" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID" mode="M931" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M931" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M931" priority="-1" />
+  <xsl:template match="@*|node()" mode="M931" priority="-2">
+    <xsl:apply-templates mode="M931" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M932" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M932" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M932" priority="-1" />
+  <xsl:template match="@*|node()" mode="M932" priority="-2">
+    <xsl:apply-templates mode="M932" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M933" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M933" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M933" priority="-1" />
+  <xsl:template match="@*|node()" mode="M933" priority="-2">
+    <xsl:apply-templates mode="M933" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M934" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M934" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M934" priority="-1" />
+  <xsl:template match="@*|node()" mode="M934" priority="-2">
+    <xsl:apply-templates mode="M934" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M935" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M935" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M935" priority="-1" />
+  <xsl:template match="@*|node()" mode="M935" priority="-2">
+    <xsl:apply-templates mode="M935" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" mode="M936" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M936" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M936" priority="-1" />
+  <xsl:template match="@*|node()" mode="M936" priority="-2">
+    <xsl:apply-templates mode="M936" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M937" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M937" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M937" priority="-1" />
+  <xsl:template match="@*|node()" mode="M937" priority="-2">
+    <xsl:apply-templates mode="M937" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M938" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M938" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M938" priority="-1" />
+  <xsl:template match="@*|node()" mode="M938" priority="-2">
+    <xsl:apply-templates mode="M938" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M939" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M939" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M939" priority="-1" />
+  <xsl:template match="@*|node()" mode="M939" priority="-2">
+    <xsl:apply-templates mode="M939" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty" mode="M940" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:RoleCode)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:RoleCode)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000321</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:RoleCode' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIUniversalCommunication)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIUniversalCommunication)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000165</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000166</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M940" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M940" priority="-1" />
+  <xsl:template match="@*|node()" mode="M940" priority="-2">
+    <xsl:apply-templates mode="M940" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" mode="M941" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M941" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M941" priority="-1" />
+  <xsl:template match="@*|node()" mode="M941" priority="-2">
+    <xsl:apply-templates mode="M941" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" mode="M942" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M942" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M942" priority="-1" />
+  <xsl:template match="@*|node()" mode="M942" priority="-2">
+    <xsl:apply-templates mode="M942" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" mode="M943" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M943" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M943" priority="-1" />
+  <xsl:template match="@*|node()" mode="M943" priority="-2">
+    <xsl:apply-templates mode="M943" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" mode="M944" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M944" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M944" priority="-1" />
+  <xsl:template match="@*|node()" mode="M944" priority="-2">
+    <xsl:apply-templates mode="M944" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" mode="M945" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:FaxUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M945" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M945" priority="-1" />
+  <xsl:template match="@*|node()" mode="M945" priority="-2">
+    <xsl:apply-templates mode="M945" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" mode="M946" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CompleteNumber)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CompleteNumber)=1">
+          <xsl:attribute name="id">FX-SCH-A-000289</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CompleteNumber' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M946" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M946" priority="-1" />
+  <xsl:template match="@*|node()" mode="M946" priority="-2">
+    <xsl:apply-templates mode="M946" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" mode="M947" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M947" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M947" priority="-1" />
+  <xsl:template match="@*|node()" mode="M947" priority="-2">
+    <xsl:apply-templates mode="M947" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:Description" mode="M948" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M948" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M948" priority="-1" />
+  <xsl:template match="@*|node()" mode="M948" priority="-2">
+    <xsl:apply-templates mode="M948" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID" mode="M949" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M949" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M949" priority="-1" />
+  <xsl:template match="@*|node()" mode="M949" priority="-2">
+    <xsl:apply-templates mode="M949" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID[@schemeID]" mode="M950" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue21" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=21]/enumeration[@value=$codeValue21]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M950" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M950" priority="-1" />
+  <xsl:template match="@*|node()" mode="M950" priority="-2">
+    <xsl:apply-templates mode="M950" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:ID[@schemeID]" mode="M951" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M951" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M951" priority="-1" />
+  <xsl:template match="@*|node()" mode="M951" priority="-2">
+    <xsl:apply-templates mode="M951" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress" mode="M952" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountrySubDivisionName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountrySubDivisionName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000167</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M952" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M952" priority="-1" />
+  <xsl:template match="@*|node()" mode="M952" priority="-2">
+    <xsl:apply-templates mode="M952" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M953" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M953" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M953" priority="-1" />
+  <xsl:template match="@*|node()" mode="M953" priority="-2">
+    <xsl:apply-templates mode="M953" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" mode="M954" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M954" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M954" priority="-1" />
+  <xsl:template match="@*|node()" mode="M954" priority="-2">
+    <xsl:apply-templates mode="M954" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" mode="M955" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M955" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M955" priority="-1" />
+  <xsl:template match="@*|node()" mode="M955" priority="-2">
+    <xsl:apply-templates mode="M955" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M956" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue22" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=22]/enumeration[@value=$codeValue22]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M956" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M956" priority="-1" />
+  <xsl:template match="@*|node()" mode="M956" priority="-2">
+    <xsl:apply-templates mode="M956" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" mode="M957" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedLegalOrganization/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M957" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M957" priority="-1" />
+  <xsl:template match="@*|node()" mode="M957" priority="-2">
+    <xsl:apply-templates mode="M957" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration" mode="M958" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M958" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M958" priority="-1" />
+  <xsl:template match="@*|node()" mode="M958" priority="-2">
+    <xsl:apply-templates mode="M958" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" mode="M959" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:SpecifiedTaxRegistration/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M959" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M959" priority="-1" />
+  <xsl:template match="@*|node()" mode="M959" priority="-2">
+    <xsl:apply-templates mode="M959" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication" mode="M960" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:URIID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:URIID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000168</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:URIID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M960" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M960" priority="-1" />
+  <xsl:template match="@*|node()" mode="M960" priority="-2">
+    <xsl:apply-templates mode="M960" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" mode="M961" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteNumber' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M961" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M961" priority="-1" />
+  <xsl:template match="@*|node()" mode="M961" priority="-2">
+    <xsl:apply-templates mode="M961" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" mode="M962" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M962" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M962" priority="-1" />
+  <xsl:template match="@*|node()" mode="M962" priority="-2">
+    <xsl:apply-templates mode="M962" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" mode="M963" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:UltimateShipToTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]" />
+    <xsl:variable name="codeValue23" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=23]/enumeration[@value=$codeValue23]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M963" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M963" priority="-1" />
+  <xsl:template match="@*|node()" mode="M963" priority="-2">
+    <xsl:apply-templates mode="M963" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" mode="M964" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ApplicableTradeTax)>=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ApplicableTradeTax)>=1">
+          <xsl:attribute name="id">FX-SCH-A-000173</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ApplicableTradeTax' must occur at least 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000279</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementLineMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceReferencedDocument)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceReferencedDocument)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000337</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceReferencedDocument' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000175</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M964" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M964" priority="-1" />
+  <xsl:template match="@*|node()" mode="M964" priority="-2">
+    <xsl:apply-templates mode="M964" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument" mode="M965" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M965" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M965" priority="-1" />
+  <xsl:template match="@*|node()" mode="M965" priority="-2">
+    <xsl:apply-templates mode="M965" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" mode="M966" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M966" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M966" priority="-1" />
+  <xsl:template match="@*|node()" mode="M966" priority="-2">
+    <xsl:apply-templates mode="M966" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime" mode="M967" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M967" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M967" priority="-1" />
+  <xsl:template match="@*|node()" mode="M967" priority="-2">
+    <xsl:apply-templates mode="M967" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M968" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M968" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M968" priority="-1" />
+  <xsl:template match="@*|node()" mode="M968" priority="-2">
+    <xsl:apply-templates mode="M968" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:LineID" mode="M969" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:LineID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M969" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M969" priority="-1" />
+  <xsl:template match="@*|node()" mode="M969" priority="-2">
+    <xsl:apply-templates mode="M969" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:Name" mode="M970" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M970" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M970" priority="-1" />
+  <xsl:template match="@*|node()" mode="M970" priority="-2">
+    <xsl:apply-templates mode="M970" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" mode="M971" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode" />
+    <xsl:variable name="codeValue15" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=15]/enumeration[@value=$codeValue15]">
+          <xsl:attribute name="id">FX-SCH-A-000282</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReferenceTypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M971" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M971" priority="-1" />
+  <xsl:template match="@*|node()" mode="M971" priority="-2">
+    <xsl:apply-templates mode="M971" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:TypeCode" mode="M972" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue13" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=13]/enumeration[@value=$codeValue13]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M972" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M972" priority="-1" />
+  <xsl:template match="@*|node()" mode="M972" priority="-2">
+    <xsl:apply-templates mode="M972" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:URIID" mode="M973" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M973" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M973" priority="-1" />
+  <xsl:template match="@*|node()" mode="M973" priority="-2">
+    <xsl:apply-templates mode="M973" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" mode="M974" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CalculatedAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CalculatedAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000338</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CalculatedAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CategoryCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CategoryCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000178</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CategoryCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M974" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M974" priority="-1" />
+  <xsl:template match="@*|node()" mode="M974" priority="-2">
+    <xsl:apply-templates mode="M974" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:AllowanceChargeBasisAmount" mode="M975" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:AllowanceChargeBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AllowanceChargeBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M975" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M975" priority="-1" />
+  <xsl:template match="@*|node()" mode="M975" priority="-2">
+    <xsl:apply-templates mode="M975" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" mode="M976" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M976" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M976" priority="-1" />
+  <xsl:template match="@*|node()" mode="M976" priority="-2">
+    <xsl:apply-templates mode="M976" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" mode="M977" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M977" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M977" priority="-1" />
+  <xsl:template match="@*|node()" mode="M977" priority="-2">
+    <xsl:apply-templates mode="M977" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" mode="M978" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode" />
+    <xsl:variable name="codeValue19" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=19]/enumeration[@value=$codeValue19]">
+          <xsl:attribute name="id">FX-SCH-A-000179</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CategoryCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M978" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M978" priority="-1" />
+  <xsl:template match="@*|node()" mode="M978" priority="-2">
+    <xsl:apply-templates mode="M978" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" mode="M979" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:DueDateTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M979" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M979" priority="-1" />
+  <xsl:template match="@*|node()" mode="M979" priority="-2">
+    <xsl:apply-templates mode="M979" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" mode="M980" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode" />
+    <xsl:variable name="codeValue20" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=20]/enumeration[@value=$codeValue20]">
+          <xsl:attribute name="id">FX-SCH-A-000181</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ExemptionReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M980" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M980" priority="-1" />
+  <xsl:template match="@*|node()" mode="M980" priority="-2">
+    <xsl:apply-templates mode="M980" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" mode="M981" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M981" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M981" priority="-1" />
+  <xsl:template match="@*|node()" mode="M981" priority="-2">
+    <xsl:apply-templates mode="M981" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" mode="M982" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M982" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M982" priority="-1" />
+  <xsl:template match="@*|node()" mode="M982" priority="-2">
+    <xsl:apply-templates mode="M982" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:LineTotalBasisAmount" mode="M983" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:LineTotalBasisAmount" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:LineTotalBasisAmount' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M983" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M983" priority="-1" />
+  <xsl:template match="@*|node()" mode="M983" priority="-2">
+    <xsl:apply-templates mode="M983" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate" mode="M984" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:TaxPointDate' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M984" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M984" priority="-1" />
+  <xsl:template match="@*|node()" mode="M984" priority="-2">
+    <xsl:apply-templates mode="M984" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" mode="M985" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode" />
+    <xsl:variable name="codeValue24" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=24]/enumeration[@value=$codeValue24]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M985" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M985" priority="-1" />
+  <xsl:template match="@*|node()" mode="M985" priority="-2">
+    <xsl:apply-templates mode="M985" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:CompleteDateTime" mode="M986" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:CompleteDateTime" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CompleteDateTime' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M986" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M986" priority="-1" />
+  <xsl:template match="@*|node()" mode="M986" priority="-2">
+    <xsl:apply-templates mode="M986" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:Description" mode="M987" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:Description" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Description' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M987" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M987" priority="-1" />
+  <xsl:template match="@*|node()" mode="M987" priority="-2">
+    <xsl:apply-templates mode="M987" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" mode="M988" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M988" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M988" priority="-1" />
+  <xsl:template match="@*|node()" mode="M988" priority="-2">
+    <xsl:apply-templates mode="M988" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" mode="M989" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M989" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M989" priority="-1" />
+  <xsl:template match="@*|node()" mode="M989" priority="-2">
+    <xsl:apply-templates mode="M989" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" mode="M990" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M990" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M990" priority="-1" />
+  <xsl:template match="@*|node()" mode="M990" priority="-2">
+    <xsl:apply-templates mode="M990" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" mode="M991" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M991" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M991" priority="-1" />
+  <xsl:template match="@*|node()" mode="M991" priority="-2">
+    <xsl:apply-templates mode="M991" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" mode="M992" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M992" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M992" priority="-1" />
+  <xsl:template match="@*|node()" mode="M992" priority="-2">
+    <xsl:apply-templates mode="M992" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" mode="M993" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M993" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M993" priority="-1" />
+  <xsl:template match="@*|node()" mode="M993" priority="-2">
+    <xsl:apply-templates mode="M993" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" mode="M994" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue12" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=12]/enumeration[@value=$codeValue12]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M994" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M994" priority="-1" />
+  <xsl:template match="@*|node()" mode="M994" priority="-2">
+    <xsl:apply-templates mode="M994" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M995" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M995" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M995" priority="-1" />
+  <xsl:template match="@*|node()" mode="M995" priority="-2">
+    <xsl:apply-templates mode="M995" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID[@schemeID]" mode="M996" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M996" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M996" priority="-1" />
+  <xsl:template match="@*|node()" mode="M996" priority="-2">
+    <xsl:apply-templates mode="M996" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" mode="M997" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:Name" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:Name' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M997" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M997" priority="-1" />
+  <xsl:template match="@*|node()" mode="M997" priority="-2">
+    <xsl:apply-templates mode="M997" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" mode="M998" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M998" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M998" priority="-1" />
+  <xsl:template match="@*|node()" mode="M998" priority="-2">
+    <xsl:apply-templates mode="M998" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" mode="M999" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue27" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=27]/enumeration[@value=$codeValue27]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=27]/enumeration[@value=$codeValue27]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M999" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M999" priority="-1" />
+  <xsl:template match="@*|node()" mode="M999" priority="-2">
+    <xsl:apply-templates mode="M999" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" mode="M1000" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:URIID' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1000" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1000" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1000" priority="-2">
+    <xsl:apply-templates mode="M1000" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" mode="M1001" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1001" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1001" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1001" priority="-2">
+    <xsl:apply-templates mode="M1001" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" mode="M1002" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and  not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and  not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1002" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1002" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1002" priority="-2">
+    <xsl:apply-templates mode="M1002" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" mode="M1003" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1003" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1003" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1003" priority="-2">
+    <xsl:apply-templates mode="M1003" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" mode="M1004" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1004" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1004" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1004" priority="-2">
+    <xsl:apply-templates mode="M1004" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" mode="M1005" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1005" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1005" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1005" priority="-2">
+    <xsl:apply-templates mode="M1005" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity" mode="M1006" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisQuantity" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisQuantity' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1006" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1006" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1006" priority="-2">
+    <xsl:apply-templates mode="M1006" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" mode="M1007" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1007" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1007" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1007" priority="-2">
+    <xsl:apply-templates mode="M1007" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" mode="M1008" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue25" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=25]/enumeration[@value=$codeValue25]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1008" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1008" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1008" priority="-2">
+    <xsl:apply-templates mode="M1008" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:SequenceNumeric" mode="M1009" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:SequenceNumeric" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SequenceNumeric' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1009" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1009" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1009" priority="-2">
+    <xsl:apply-templates mode="M1009" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" mode="M1010" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeIndicator)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeIndicator)=1">
+          <xsl:attribute name="id">FX-SCH-A-000183</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeIndicator' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ActualAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ActualAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000184</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ActualAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1010" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1010" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1010" priority="-2">
+    <xsl:apply-templates mode="M1010" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" mode="M1011" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1011" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1011" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1011" priority="-2">
+    <xsl:apply-templates mode="M1011" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" mode="M1012" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1012" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1012" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1012" priority="-2">
+    <xsl:apply-templates mode="M1012" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity" mode="M1013" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisQuantity" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:BasisQuantity' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1013" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1013" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1013" priority="-2">
+    <xsl:apply-templates mode="M1013" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" mode="M1014" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:CategoryTradeTax' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1014" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1014" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1014" priority="-2">
+    <xsl:apply-templates mode="M1014" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" mode="M1015" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode" />
+    <xsl:variable name="codeValue26" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=26]/enumeration[@value=$codeValue26]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=26]/enumeration[@value=$codeValue26]">
+          <xsl:attribute name="id">FX-SCH-A-000186</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ReasonCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1015" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1015" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1015" priority="-2">
+    <xsl:apply-templates mode="M1015" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:SequenceNumeric" mode="M1016" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:SequenceNumeric" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SequenceNumeric' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1016" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1016" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1016" priority="-2">
+    <xsl:apply-templates mode="M1016" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" mode="M1017" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:LineTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:LineTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000189</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:LineTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ChargeTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ChargeTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000190</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:AllowanceTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:AllowanceTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000191</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000339</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000340</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TotalAllowanceChargeAmount)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TotalAllowanceChargeAmount)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000341</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TotalAllowanceChargeAmount' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1017" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1017" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1017" priority="-2">
+    <xsl:apply-templates mode="M1017" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" mode="M1018" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:AllowanceTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1018" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1018" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1018" priority="-2">
+    <xsl:apply-templates mode="M1018" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:ChargeTotalAmount[@currencyID]" mode="M1019" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:ChargeTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1019" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1019" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1019" priority="-2">
+    <xsl:apply-templates mode="M1019" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M1020" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1020" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1020" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1020" priority="-2">
+    <xsl:apply-templates mode="M1020" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" mode="M1021" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1021" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1021" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1021" priority="-2">
+    <xsl:apply-templates mode="M1021" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:TaxTotalAmount[@currencyID]" mode="M1022" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:TaxTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1022" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1022" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1022" priority="-2">
+    <xsl:apply-templates mode="M1022" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:TotalAllowanceChargeAmount[@currencyID]" mode="M1023" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:TotalAllowanceChargeAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1023" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1023" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1023" priority="-2">
+    <xsl:apply-templates mode="M1023" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" mode="M1024" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1024" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1024" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1024" priority="-2">
+    <xsl:apply-templates mode="M1024" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic" mode="M1025" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)=1">
+          <xsl:attribute name="id">FX-SCH-A-000294</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Value)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Value)=1">
+          <xsl:attribute name="id">FX-SCH-A-000295</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Value' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1025" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1025" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1025" priority="-2">
+    <xsl:apply-templates mode="M1025" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:TypeCode[@listID]" mode="M1026" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:TypeCode[@listID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1026" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1026" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1026" priority="-2">
+    <xsl:apply-templates mode="M1026" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:TypeCode[@listVersionID]" mode="M1027" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:TypeCode[@listVersionID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @listVersionID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1027" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1027" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1027" priority="-2">
+    <xsl:apply-templates mode="M1027" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BatchID[@schemeID]" mode="M1028" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BatchID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1028" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1028" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1028" priority="-2">
+    <xsl:apply-templates mode="M1028" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID]" mode="M1029" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1029" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1029" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1029" priority="-2">
+    <xsl:apply-templates mode="M1029" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification" mode="M1030" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ClassName)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ClassName)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000342</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ClassName' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1030" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1030" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1030" priority="-2">
+    <xsl:apply-templates mode="M1030" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode" mode="M1031" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@listID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@listID">
+          <xsl:attribute name="id">FX-SCH-A-000296</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@listID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1031" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1031" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1031" priority="-2">
+    <xsl:apply-templates mode="M1031" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode[@listID]" mode="M1032" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode[@listID]" />
+    <xsl:variable name="codeValue8" select="@listID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=8]/enumeration[@value=$codeValue8]">
+          <xsl:attribute name="id">FX-SCH-A-000297</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@listID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1032" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1032" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1032" priority="-2">
+    <xsl:apply-templates mode="M1032" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" mode="M1033" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1033" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1033" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1033" priority="-2">
+    <xsl:apply-templates mode="M1033" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" mode="M1034" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue7" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1034" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1034" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1034" priority="-2">
+    <xsl:apply-templates mode="M1034" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ID[@schemeID]" mode="M1035" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1035" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1035" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1035" priority="-2">
+    <xsl:apply-templates mode="M1035" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct" mode="M1036" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000163</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IndustryAssignedID)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IndustryAssignedID)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000343</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IndustryAssignedID' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Description)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Description)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000187</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Description' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:UnitQuantity)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:UnitQuantity)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000344</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:UnitQuantity' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1036" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1036" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1036" priority="-2">
+    <xsl:apply-templates mode="M1036" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:BuyerAssignedID[@schemeID]" mode="M1037" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:BuyerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1037" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1037" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1037" priority="-2">
+    <xsl:apply-templates mode="M1037" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:GlobalID" mode="M1038" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:GlobalID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1038" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1038" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1038" priority="-2">
+    <xsl:apply-templates mode="M1038" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:GlobalID[@schemeID]" mode="M1039" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:GlobalID[@schemeID]" />
+    <xsl:variable name="codeValue10" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=10]/enumeration[@value=$codeValue10]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1039" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1039" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1039" priority="-2">
+    <xsl:apply-templates mode="M1039" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:ID[@schemeID]" mode="M1040" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1040" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1040" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1040" priority="-2">
+    <xsl:apply-templates mode="M1040" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:IndustryAssignedID[@schemeID]" mode="M1041" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:IndustryAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1041" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1041" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1041" priority="-2">
+    <xsl:apply-templates mode="M1041" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:SellerAssignedID[@schemeID]" mode="M1042" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:SellerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1042" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1042" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1042" priority="-2">
+    <xsl:apply-templates mode="M1042" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:UnitQuantity" mode="M1043" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:UnitQuantity" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@unitCode" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@unitCode">
+          <xsl:attribute name="id">FX-SCH-A-000277</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@unitCode' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1043" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1043" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1043" priority="-2">
+    <xsl:apply-templates mode="M1043" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:UnitQuantity[@unitCode]" mode="M1044" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct/ram:UnitQuantity[@unitCode]" />
+    <xsl:variable name="codeValue11" select="@unitCode" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=11]/enumeration[@value=$codeValue11]">
+          <xsl:attribute name="id">FX-SCH-A-000275</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@unitCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1044" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1044" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1044" priority="-2">
+    <xsl:apply-templates mode="M1044" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:BatchID[@schemeID]" mode="M1045" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:BatchID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1045" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1045" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1045" priority="-2">
+    <xsl:apply-templates mode="M1045" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SupplierAssignedSerialID[@schemeID]" mode="M1046" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SupplierAssignedSerialID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1046" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1046" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1046" priority="-2">
+    <xsl:apply-templates mode="M1046" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndustryAssignedID[@schemeID]" mode="M1047" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndustryAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1047" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1047" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1047" priority="-2">
+    <xsl:apply-templates mode="M1047" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ModelID[@schemeID]" mode="M1048" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ModelID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1048" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1048" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1048" priority="-2">
+    <xsl:apply-templates mode="M1048" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry" mode="M1049" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1049" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1049" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1049" priority="-2">
+    <xsl:apply-templates mode="M1049" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID" mode="M1050" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID" />
+    <xsl:variable name="codeValue9" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_EXTENDED_codedb.xml')//cl[@id=9]/enumeration[@value=$codeValue9]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M1050" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1050" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1050" priority="-2">
+    <xsl:apply-templates mode="M1050" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID[@schemeID]" mode="M1051" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M1051" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M1051" priority="-1" />
+  <xsl:template match="@*|node()" mode="M1051" priority="-2">
+    <xsl:apply-templates mode="M1051" select="@*|*" />
+  </xsl:template>
+</xsl:stylesheet>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED_codedb.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED_codedb.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_EXTENDED_codedb.xml	(revision 8542)
@@ -0,0 +1,6677 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<codedb>
+  <cl id="1">
+    <enumeration value="urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended"/>
+    <enumeration value="urn:cen.eu:en16931:2017#conformant#urn:zugferd.de:2p0:extended"/>
+  </cl>
+  <cl id="2">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="3">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="4">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADH"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADS"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHW"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="BAG"/>
+    <enumeration value="BAH"/>
+    <enumeration value="BAI"/>
+    <enumeration value="BAJ"/>
+    <enumeration value="BAK"/>
+    <enumeration value="BAL"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BAN"/>
+    <enumeration value="BAO"/>
+    <enumeration value="BAP"/>
+    <enumeration value="BAQ"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BAS"/>
+    <enumeration value="BAT"/>
+    <enumeration value="BAU"/>
+    <enumeration value="BAV"/>
+    <enumeration value="BAW"/>
+    <enumeration value="BAX"/>
+    <enumeration value="BAY"/>
+    <enumeration value="BAZ"/>
+    <enumeration value="BBA"/>
+    <enumeration value="BBB"/>
+    <enumeration value="BLC"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLE"/>
+    <enumeration value="BLF"/>
+    <enumeration value="BLG"/>
+    <enumeration value="BLH"/>
+    <enumeration value="BLI"/>
+    <enumeration value="BLJ"/>
+    <enumeration value="BLK"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BLM"/>
+    <enumeration value="BLN"/>
+    <enumeration value="BLO"/>
+    <enumeration value="BLP"/>
+    <enumeration value="BLQ"/>
+    <enumeration value="BLR"/>
+    <enumeration value="BLS"/>
+    <enumeration value="BLT"/>
+    <enumeration value="BLU"/>
+    <enumeration value="BLV"/>
+    <enumeration value="BLW"/>
+    <enumeration value="BLX"/>
+    <enumeration value="BLY"/>
+    <enumeration value="BLZ"/>
+    <enumeration value="BMA"/>
+    <enumeration value="BMB"/>
+    <enumeration value="BMC"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BME"/>
+    <enumeration value="BMF"/>
+    <enumeration value="BMG"/>
+    <enumeration value="BMH"/>
+    <enumeration value="CCI"/>
+    <enumeration value="CCJ"/>
+    <enumeration value="CCK"/>
+    <enumeration value="CCL"/>
+    <enumeration value="CCM"/>
+    <enumeration value="CCN"/>
+    <enumeration value="CCO"/>
+    <enumeration value="CEX"/>
+    <enumeration value="CHG"/>
+    <enumeration value="CIP"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CLR"/>
+    <enumeration value="COI"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CUS"/>
+    <enumeration value="DAR"/>
+    <enumeration value="DCL"/>
+    <enumeration value="DEL"/>
+    <enumeration value="DIN"/>
+    <enumeration value="DOC"/>
+    <enumeration value="DUT"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FBC"/>
+    <enumeration value="GBL"/>
+    <enumeration value="GEN"/>
+    <enumeration value="GS7"/>
+    <enumeration value="HAN"/>
+    <enumeration value="HAZ"/>
+    <enumeration value="ICN"/>
+    <enumeration value="IIN"/>
+    <enumeration value="IMI"/>
+    <enumeration value="IND"/>
+    <enumeration value="INS"/>
+    <enumeration value="INV"/>
+    <enumeration value="IRP"/>
+    <enumeration value="ITR"/>
+    <enumeration value="ITS"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LIN"/>
+    <enumeration value="LOI"/>
+    <enumeration value="MCO"/>
+    <enumeration value="MDH"/>
+    <enumeration value="MKS"/>
+    <enumeration value="ORI"/>
+    <enumeration value="OSI"/>
+    <enumeration value="PAC"/>
+    <enumeration value="PAI"/>
+    <enumeration value="PAY"/>
+    <enumeration value="PKG"/>
+    <enumeration value="PKT"/>
+    <enumeration value="PMD"/>
+    <enumeration value="PMT"/>
+    <enumeration value="PRD"/>
+    <enumeration value="PRF"/>
+    <enumeration value="PRI"/>
+    <enumeration value="PUR"/>
+    <enumeration value="QIN"/>
+    <enumeration value="QQD"/>
+    <enumeration value="QUT"/>
+    <enumeration value="RAH"/>
+    <enumeration value="REG"/>
+    <enumeration value="RET"/>
+    <enumeration value="REV"/>
+    <enumeration value="RQR"/>
+    <enumeration value="SAF"/>
+    <enumeration value="SIC"/>
+    <enumeration value="SIN"/>
+    <enumeration value="SLR"/>
+    <enumeration value="SPA"/>
+    <enumeration value="SPG"/>
+    <enumeration value="SPH"/>
+    <enumeration value="SPP"/>
+    <enumeration value="SPT"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SUR"/>
+    <enumeration value="TCA"/>
+    <enumeration value="TDT"/>
+    <enumeration value="TRA"/>
+    <enumeration value="TRR"/>
+    <enumeration value="TXD"/>
+    <enumeration value="WHI"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="5">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="12"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="16"/>
+    <enumeration value="17"/>
+    <enumeration value="18"/>
+    <enumeration value="19"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="26"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="29"/>
+    <enumeration value="30"/>
+    <enumeration value="31"/>
+    <enumeration value="32"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="36"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="39"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="43"/>
+    <enumeration value="44"/>
+    <enumeration value="45"/>
+    <enumeration value="46"/>
+    <enumeration value="47"/>
+    <enumeration value="48"/>
+    <enumeration value="49"/>
+    <enumeration value="50"/>
+    <enumeration value="51"/>
+    <enumeration value="52"/>
+    <enumeration value="53"/>
+    <enumeration value="54"/>
+    <enumeration value="55"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="69"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="72"/>
+    <enumeration value="73"/>
+    <enumeration value="74"/>
+    <enumeration value="75"/>
+    <enumeration value="76"/>
+    <enumeration value="77"/>
+    <enumeration value="78"/>
+    <enumeration value="79"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="85"/>
+    <enumeration value="86"/>
+    <enumeration value="87"/>
+    <enumeration value="88"/>
+    <enumeration value="89"/>
+    <enumeration value="90"/>
+    <enumeration value="91"/>
+    <enumeration value="92"/>
+    <enumeration value="93"/>
+    <enumeration value="94"/>
+    <enumeration value="95"/>
+    <enumeration value="96"/>
+    <enumeration value="97"/>
+    <enumeration value="98"/>
+    <enumeration value="99"/>
+    <enumeration value="100"/>
+    <enumeration value="101"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+    <enumeration value="106"/>
+    <enumeration value="107"/>
+    <enumeration value="108"/>
+    <enumeration value="109"/>
+    <enumeration value="110"/>
+    <enumeration value="111"/>
+    <enumeration value="112"/>
+    <enumeration value="113"/>
+    <enumeration value="114"/>
+    <enumeration value="115"/>
+    <enumeration value="116"/>
+    <enumeration value="117"/>
+    <enumeration value="118"/>
+    <enumeration value="119"/>
+  </cl>
+  <cl id="6">
+    <enumeration value="DETAIL"/>
+    <enumeration value="GROUP"/>
+    <enumeration value="INFORMATION"/>
+  </cl>
+  <cl id="7">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="8">
+    <enumeration value="AA"/>
+    <enumeration value="AB"/>
+    <enumeration value="AC"/>
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AH"/>
+    <enumeration value="AI"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AK"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AN"/>
+    <enumeration value="AO"/>
+    <enumeration value="AP"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AV"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AY"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BC"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BK"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BP"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BU"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BX"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CC"/>
+    <enumeration value="CG"/>
+    <enumeration value="CL"/>
+    <enumeration value="CR"/>
+    <enumeration value="CV"/>
+    <enumeration value="DR"/>
+    <enumeration value="DW"/>
+    <enumeration value="EC"/>
+    <enumeration value="EF"/>
+    <enumeration value="EMD"/>
+    <enumeration value="EN"/>
+    <enumeration value="FS"/>
+    <enumeration value="GB"/>
+    <enumeration value="GMN"/>
+    <enumeration value="GN"/>
+    <enumeration value="GS"/>
+    <enumeration value="HS"/>
+    <enumeration value="IB"/>
+    <enumeration value="IN"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="IZ"/>
+    <enumeration value="MA"/>
+    <enumeration value="MF"/>
+    <enumeration value="MN"/>
+    <enumeration value="MP"/>
+    <enumeration value="NB"/>
+    <enumeration value="ON"/>
+    <enumeration value="PD"/>
+    <enumeration value="PL"/>
+    <enumeration value="PO"/>
+    <enumeration value="PV"/>
+    <enumeration value="QS"/>
+    <enumeration value="RC"/>
+    <enumeration value="RN"/>
+    <enumeration value="RU"/>
+    <enumeration value="RY"/>
+    <enumeration value="SA"/>
+    <enumeration value="SG"/>
+    <enumeration value="SK"/>
+    <enumeration value="SN"/>
+    <enumeration value="SRS"/>
+    <enumeration value="SRT"/>
+    <enumeration value="SRU"/>
+    <enumeration value="SRV"/>
+    <enumeration value="SRW"/>
+    <enumeration value="SRX"/>
+    <enumeration value="SRY"/>
+    <enumeration value="SRZ"/>
+    <enumeration value="SS"/>
+    <enumeration value="SSA"/>
+    <enumeration value="SSB"/>
+    <enumeration value="SSC"/>
+    <enumeration value="SSD"/>
+    <enumeration value="SSE"/>
+    <enumeration value="SSF"/>
+    <enumeration value="SSG"/>
+    <enumeration value="SSH"/>
+    <enumeration value="SSI"/>
+    <enumeration value="SSJ"/>
+    <enumeration value="SSK"/>
+    <enumeration value="SSL"/>
+    <enumeration value="SSM"/>
+    <enumeration value="SSN"/>
+    <enumeration value="SSO"/>
+    <enumeration value="SSP"/>
+    <enumeration value="SSQ"/>
+    <enumeration value="SSR"/>
+    <enumeration value="SSS"/>
+    <enumeration value="SST"/>
+    <enumeration value="SSU"/>
+    <enumeration value="SSV"/>
+    <enumeration value="SSW"/>
+    <enumeration value="SSX"/>
+    <enumeration value="SSY"/>
+    <enumeration value="SSZ"/>
+    <enumeration value="ST"/>
+    <enumeration value="STA"/>
+    <enumeration value="STB"/>
+    <enumeration value="STC"/>
+    <enumeration value="STD"/>
+    <enumeration value="STE"/>
+    <enumeration value="STF"/>
+    <enumeration value="STG"/>
+    <enumeration value="STH"/>
+    <enumeration value="STI"/>
+    <enumeration value="STJ"/>
+    <enumeration value="STK"/>
+    <enumeration value="STL"/>
+    <enumeration value="STM"/>
+    <enumeration value="STN"/>
+    <enumeration value="STO"/>
+    <enumeration value="STP"/>
+    <enumeration value="STQ"/>
+    <enumeration value="STR"/>
+    <enumeration value="STS"/>
+    <enumeration value="STT"/>
+    <enumeration value="STU"/>
+    <enumeration value="STV"/>
+    <enumeration value="STW"/>
+    <enumeration value="STX"/>
+    <enumeration value="STY"/>
+    <enumeration value="STZ"/>
+    <enumeration value="SUA"/>
+    <enumeration value="SUB"/>
+    <enumeration value="SUC"/>
+    <enumeration value="SUD"/>
+    <enumeration value="SUE"/>
+    <enumeration value="SUF"/>
+    <enumeration value="SUG"/>
+    <enumeration value="SUH"/>
+    <enumeration value="SUI"/>
+    <enumeration value="SUJ"/>
+    <enumeration value="SUK"/>
+    <enumeration value="SUL"/>
+    <enumeration value="SUM"/>
+    <enumeration value="TG"/>
+    <enumeration value="TSN"/>
+    <enumeration value="TSO"/>
+    <enumeration value="TSP"/>
+    <enumeration value="TSQ"/>
+    <enumeration value="TSR"/>
+    <enumeration value="TSS"/>
+    <enumeration value="TST"/>
+    <enumeration value="TSU"/>
+    <enumeration value="UA"/>
+    <enumeration value="UP"/>
+    <enumeration value="VN"/>
+    <enumeration value="VP"/>
+    <enumeration value="VS"/>
+    <enumeration value="VX"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="9">
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AI"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AO"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CA"/>
+    <enumeration value="CC"/>
+    <enumeration value="CD"/>
+    <enumeration value="CF"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CI"/>
+    <enumeration value="CK"/>
+    <enumeration value="CL"/>
+    <enumeration value="CM"/>
+    <enumeration value="CN"/>
+    <enumeration value="CO"/>
+    <enumeration value="CR"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CX"/>
+    <enumeration value="CY"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DE"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DK"/>
+    <enumeration value="DM"/>
+    <enumeration value="DO"/>
+    <enumeration value="DZ"/>
+    <enumeration value="EC"/>
+    <enumeration value="EE"/>
+    <enumeration value="EG"/>
+    <enumeration value="EH"/>
+    <enumeration value="ER"/>
+    <enumeration value="ES"/>
+    <enumeration value="ET"/>
+    <enumeration value="FI"/>
+    <enumeration value="FJ"/>
+    <enumeration value="FK"/>
+    <enumeration value="FM"/>
+    <enumeration value="FO"/>
+    <enumeration value="FR"/>
+    <enumeration value="GA"/>
+    <enumeration value="GB"/>
+    <enumeration value="GD"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GG"/>
+    <enumeration value="GH"/>
+    <enumeration value="GI"/>
+    <enumeration value="GL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GN"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GR"/>
+    <enumeration value="GS"/>
+    <enumeration value="GT"/>
+    <enumeration value="GU"/>
+    <enumeration value="GW"/>
+    <enumeration value="GY"/>
+    <enumeration value="HK"/>
+    <enumeration value="HM"/>
+    <enumeration value="HN"/>
+    <enumeration value="HR"/>
+    <enumeration value="HT"/>
+    <enumeration value="HU"/>
+    <enumeration value="ID"/>
+    <enumeration value="IE"/>
+    <enumeration value="IL"/>
+    <enumeration value="IM"/>
+    <enumeration value="IN"/>
+    <enumeration value="IO"/>
+    <enumeration value="IQ"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="JE"/>
+    <enumeration value="JM"/>
+    <enumeration value="JO"/>
+    <enumeration value="JP"/>
+    <enumeration value="KE"/>
+    <enumeration value="KG"/>
+    <enumeration value="KH"/>
+    <enumeration value="KI"/>
+    <enumeration value="KM"/>
+    <enumeration value="KN"/>
+    <enumeration value="KP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KW"/>
+    <enumeration value="KY"/>
+    <enumeration value="KZ"/>
+    <enumeration value="LA"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LK"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LT"/>
+    <enumeration value="LU"/>
+    <enumeration value="LV"/>
+    <enumeration value="LY"/>
+    <enumeration value="MA"/>
+    <enumeration value="MC"/>
+    <enumeration value="MD"/>
+    <enumeration value="ME"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MK"/>
+    <enumeration value="ML"/>
+    <enumeration value="MM"/>
+    <enumeration value="MN"/>
+    <enumeration value="MO"/>
+    <enumeration value="MP"/>
+    <enumeration value="MQ"/>
+    <enumeration value="MR"/>
+    <enumeration value="MS"/>
+    <enumeration value="MT"/>
+    <enumeration value="MU"/>
+    <enumeration value="MV"/>
+    <enumeration value="MW"/>
+    <enumeration value="MX"/>
+    <enumeration value="MY"/>
+    <enumeration value="MZ"/>
+    <enumeration value="NA"/>
+    <enumeration value="NC"/>
+    <enumeration value="NE"/>
+    <enumeration value="NF"/>
+    <enumeration value="NG"/>
+    <enumeration value="NI"/>
+    <enumeration value="NL"/>
+    <enumeration value="NO"/>
+    <enumeration value="NP"/>
+    <enumeration value="NR"/>
+    <enumeration value="NU"/>
+    <enumeration value="NZ"/>
+    <enumeration value="OM"/>
+    <enumeration value="PA"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PG"/>
+    <enumeration value="PH"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="PM"/>
+    <enumeration value="PN"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PT"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="QA"/>
+    <enumeration value="RE"/>
+    <enumeration value="RO"/>
+    <enumeration value="RS"/>
+    <enumeration value="RU"/>
+    <enumeration value="RW"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SC"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SJ"/>
+    <enumeration value="SK"/>
+    <enumeration value="SL"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SO"/>
+    <enumeration value="SR"/>
+    <enumeration value="SS"/>
+    <enumeration value="ST"/>
+    <enumeration value="SV"/>
+    <enumeration value="SX"/>
+    <enumeration value="SY"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TC"/>
+    <enumeration value="TD"/>
+    <enumeration value="TF"/>
+    <enumeration value="TG"/>
+    <enumeration value="TH"/>
+    <enumeration value="TJ"/>
+    <enumeration value="TK"/>
+    <enumeration value="TL"/>
+    <enumeration value="TM"/>
+    <enumeration value="TN"/>
+    <enumeration value="TO"/>
+    <enumeration value="TR"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="TW"/>
+    <enumeration value="TZ"/>
+    <enumeration value="UA"/>
+    <enumeration value="UG"/>
+    <enumeration value="UM"/>
+    <enumeration value="US"/>
+    <enumeration value="UY"/>
+    <enumeration value="UZ"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VE"/>
+    <enumeration value="VG"/>
+    <enumeration value="VI"/>
+    <enumeration value="VN"/>
+    <enumeration value="VU"/>
+    <enumeration value="WF"/>
+    <enumeration value="WS"/>
+    <enumeration value="YE"/>
+    <enumeration value="YT"/>
+    <enumeration value="ZA"/>
+    <enumeration value="ZM"/>
+    <enumeration value="ZW"/>
+    <enumeration value="1A"/>
+    <enumeration value="XI"/>
+  </cl>
+  <cl id="10">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="11">
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="74"/>
+    <enumeration value="77"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="85"/>
+    <enumeration value="87"/>
+    <enumeration value="89"/>
+    <enumeration value="91"/>
+    <enumeration value="1I"/>
+    <enumeration value="2A"/>
+    <enumeration value="2B"/>
+    <enumeration value="2C"/>
+    <enumeration value="2G"/>
+    <enumeration value="2H"/>
+    <enumeration value="2I"/>
+    <enumeration value="2J"/>
+    <enumeration value="2K"/>
+    <enumeration value="2L"/>
+    <enumeration value="2M"/>
+    <enumeration value="2N"/>
+    <enumeration value="2P"/>
+    <enumeration value="2Q"/>
+    <enumeration value="2R"/>
+    <enumeration value="2U"/>
+    <enumeration value="2X"/>
+    <enumeration value="2Y"/>
+    <enumeration value="2Z"/>
+    <enumeration value="3B"/>
+    <enumeration value="3C"/>
+    <enumeration value="4C"/>
+    <enumeration value="4G"/>
+    <enumeration value="4H"/>
+    <enumeration value="4K"/>
+    <enumeration value="4L"/>
+    <enumeration value="4M"/>
+    <enumeration value="4N"/>
+    <enumeration value="4O"/>
+    <enumeration value="4P"/>
+    <enumeration value="4Q"/>
+    <enumeration value="4R"/>
+    <enumeration value="4T"/>
+    <enumeration value="4U"/>
+    <enumeration value="4W"/>
+    <enumeration value="4X"/>
+    <enumeration value="5A"/>
+    <enumeration value="5B"/>
+    <enumeration value="5E"/>
+    <enumeration value="5J"/>
+    <enumeration value="A10"/>
+    <enumeration value="A11"/>
+    <enumeration value="A12"/>
+    <enumeration value="A13"/>
+    <enumeration value="A14"/>
+    <enumeration value="A15"/>
+    <enumeration value="A16"/>
+    <enumeration value="A17"/>
+    <enumeration value="A18"/>
+    <enumeration value="A19"/>
+    <enumeration value="A2"/>
+    <enumeration value="A20"/>
+    <enumeration value="A21"/>
+    <enumeration value="A22"/>
+    <enumeration value="A23"/>
+    <enumeration value="A24"/>
+    <enumeration value="A26"/>
+    <enumeration value="A27"/>
+    <enumeration value="A28"/>
+    <enumeration value="A29"/>
+    <enumeration value="A3"/>
+    <enumeration value="A30"/>
+    <enumeration value="A31"/>
+    <enumeration value="A32"/>
+    <enumeration value="A33"/>
+    <enumeration value="A34"/>
+    <enumeration value="A35"/>
+    <enumeration value="A36"/>
+    <enumeration value="A37"/>
+    <enumeration value="A38"/>
+    <enumeration value="A39"/>
+    <enumeration value="A4"/>
+    <enumeration value="A40"/>
+    <enumeration value="A41"/>
+    <enumeration value="A42"/>
+    <enumeration value="A43"/>
+    <enumeration value="A44"/>
+    <enumeration value="A45"/>
+    <enumeration value="A47"/>
+    <enumeration value="A48"/>
+    <enumeration value="A49"/>
+    <enumeration value="A5"/>
+    <enumeration value="A53"/>
+    <enumeration value="A54"/>
+    <enumeration value="A55"/>
+    <enumeration value="A56"/>
+    <enumeration value="A59"/>
+    <enumeration value="A6"/>
+    <enumeration value="A68"/>
+    <enumeration value="A69"/>
+    <enumeration value="A7"/>
+    <enumeration value="A70"/>
+    <enumeration value="A71"/>
+    <enumeration value="A73"/>
+    <enumeration value="A74"/>
+    <enumeration value="A75"/>
+    <enumeration value="A76"/>
+    <enumeration value="A8"/>
+    <enumeration value="A84"/>
+    <enumeration value="A85"/>
+    <enumeration value="A86"/>
+    <enumeration value="A87"/>
+    <enumeration value="A88"/>
+    <enumeration value="A89"/>
+    <enumeration value="A9"/>
+    <enumeration value="A90"/>
+    <enumeration value="A91"/>
+    <enumeration value="A93"/>
+    <enumeration value="A94"/>
+    <enumeration value="A95"/>
+    <enumeration value="A96"/>
+    <enumeration value="A97"/>
+    <enumeration value="A98"/>
+    <enumeration value="A99"/>
+    <enumeration value="AA"/>
+    <enumeration value="AB"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACT"/>
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AH"/>
+    <enumeration value="AI"/>
+    <enumeration value="AK"/>
+    <enumeration value="AL"/>
+    <enumeration value="AMH"/>
+    <enumeration value="AMP"/>
+    <enumeration value="ANN"/>
+    <enumeration value="APZ"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="ASM"/>
+    <enumeration value="ASU"/>
+    <enumeration value="ATM"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AY"/>
+    <enumeration value="AZ"/>
+    <enumeration value="B1"/>
+    <enumeration value="B10"/>
+    <enumeration value="B11"/>
+    <enumeration value="B12"/>
+    <enumeration value="B13"/>
+    <enumeration value="B14"/>
+    <enumeration value="B15"/>
+    <enumeration value="B16"/>
+    <enumeration value="B17"/>
+    <enumeration value="B18"/>
+    <enumeration value="B19"/>
+    <enumeration value="B20"/>
+    <enumeration value="B21"/>
+    <enumeration value="B22"/>
+    <enumeration value="B23"/>
+    <enumeration value="B24"/>
+    <enumeration value="B25"/>
+    <enumeration value="B26"/>
+    <enumeration value="B27"/>
+    <enumeration value="B28"/>
+    <enumeration value="B29"/>
+    <enumeration value="B3"/>
+    <enumeration value="B30"/>
+    <enumeration value="B31"/>
+    <enumeration value="B32"/>
+    <enumeration value="B33"/>
+    <enumeration value="B34"/>
+    <enumeration value="B35"/>
+    <enumeration value="B4"/>
+    <enumeration value="B41"/>
+    <enumeration value="B42"/>
+    <enumeration value="B43"/>
+    <enumeration value="B44"/>
+    <enumeration value="B45"/>
+    <enumeration value="B46"/>
+    <enumeration value="B47"/>
+    <enumeration value="B48"/>
+    <enumeration value="B49"/>
+    <enumeration value="B50"/>
+    <enumeration value="B52"/>
+    <enumeration value="B53"/>
+    <enumeration value="B54"/>
+    <enumeration value="B55"/>
+    <enumeration value="B56"/>
+    <enumeration value="B57"/>
+    <enumeration value="B58"/>
+    <enumeration value="B59"/>
+    <enumeration value="B60"/>
+    <enumeration value="B61"/>
+    <enumeration value="B62"/>
+    <enumeration value="B63"/>
+    <enumeration value="B64"/>
+    <enumeration value="B66"/>
+    <enumeration value="B67"/>
+    <enumeration value="B68"/>
+    <enumeration value="B69"/>
+    <enumeration value="B7"/>
+    <enumeration value="B70"/>
+    <enumeration value="B71"/>
+    <enumeration value="B72"/>
+    <enumeration value="B73"/>
+    <enumeration value="B74"/>
+    <enumeration value="B75"/>
+    <enumeration value="B76"/>
+    <enumeration value="B77"/>
+    <enumeration value="B78"/>
+    <enumeration value="B79"/>
+    <enumeration value="B8"/>
+    <enumeration value="B80"/>
+    <enumeration value="B81"/>
+    <enumeration value="B82"/>
+    <enumeration value="B83"/>
+    <enumeration value="B84"/>
+    <enumeration value="B85"/>
+    <enumeration value="B86"/>
+    <enumeration value="B87"/>
+    <enumeration value="B88"/>
+    <enumeration value="B89"/>
+    <enumeration value="B90"/>
+    <enumeration value="B91"/>
+    <enumeration value="B92"/>
+    <enumeration value="B93"/>
+    <enumeration value="B94"/>
+    <enumeration value="B95"/>
+    <enumeration value="B96"/>
+    <enumeration value="B97"/>
+    <enumeration value="B98"/>
+    <enumeration value="B99"/>
+    <enumeration value="BAR"/>
+    <enumeration value="BB"/>
+    <enumeration value="BFT"/>
+    <enumeration value="BHP"/>
+    <enumeration value="BIL"/>
+    <enumeration value="BLD"/>
+    <enumeration value="BLL"/>
+    <enumeration value="BP"/>
+    <enumeration value="BPM"/>
+    <enumeration value="BQL"/>
+    <enumeration value="BTU"/>
+    <enumeration value="BUA"/>
+    <enumeration value="BUI"/>
+    <enumeration value="C0"/>
+    <enumeration value="C10"/>
+    <enumeration value="C11"/>
+    <enumeration value="C12"/>
+    <enumeration value="C13"/>
+    <enumeration value="C14"/>
+    <enumeration value="C15"/>
+    <enumeration value="C16"/>
+    <enumeration value="C17"/>
+    <enumeration value="C18"/>
+    <enumeration value="C19"/>
+    <enumeration value="C20"/>
+    <enumeration value="C21"/>
+    <enumeration value="C22"/>
+    <enumeration value="C23"/>
+    <enumeration value="C24"/>
+    <enumeration value="C25"/>
+    <enumeration value="C26"/>
+    <enumeration value="C27"/>
+    <enumeration value="C28"/>
+    <enumeration value="C29"/>
+    <enumeration value="C3"/>
+    <enumeration value="C30"/>
+    <enumeration value="C31"/>
+    <enumeration value="C32"/>
+    <enumeration value="C33"/>
+    <enumeration value="C34"/>
+    <enumeration value="C35"/>
+    <enumeration value="C36"/>
+    <enumeration value="C37"/>
+    <enumeration value="C38"/>
+    <enumeration value="C39"/>
+    <enumeration value="C40"/>
+    <enumeration value="C41"/>
+    <enumeration value="C42"/>
+    <enumeration value="C43"/>
+    <enumeration value="C44"/>
+    <enumeration value="C45"/>
+    <enumeration value="C46"/>
+    <enumeration value="C47"/>
+    <enumeration value="C48"/>
+    <enumeration value="C49"/>
+    <enumeration value="C50"/>
+    <enumeration value="C51"/>
+    <enumeration value="C52"/>
+    <enumeration value="C53"/>
+    <enumeration value="C54"/>
+    <enumeration value="C55"/>
+    <enumeration value="C56"/>
+    <enumeration value="C57"/>
+    <enumeration value="C58"/>
+    <enumeration value="C59"/>
+    <enumeration value="C60"/>
+    <enumeration value="C61"/>
+    <enumeration value="C62"/>
+    <enumeration value="C63"/>
+    <enumeration value="C64"/>
+    <enumeration value="C65"/>
+    <enumeration value="C66"/>
+    <enumeration value="C67"/>
+    <enumeration value="C68"/>
+    <enumeration value="C69"/>
+    <enumeration value="C7"/>
+    <enumeration value="C70"/>
+    <enumeration value="C71"/>
+    <enumeration value="C72"/>
+    <enumeration value="C73"/>
+    <enumeration value="C74"/>
+    <enumeration value="C75"/>
+    <enumeration value="C76"/>
+    <enumeration value="C78"/>
+    <enumeration value="C79"/>
+    <enumeration value="C8"/>
+    <enumeration value="C80"/>
+    <enumeration value="C81"/>
+    <enumeration value="C82"/>
+    <enumeration value="C83"/>
+    <enumeration value="C84"/>
+    <enumeration value="C85"/>
+    <enumeration value="C86"/>
+    <enumeration value="C87"/>
+    <enumeration value="C88"/>
+    <enumeration value="C89"/>
+    <enumeration value="C9"/>
+    <enumeration value="C90"/>
+    <enumeration value="C91"/>
+    <enumeration value="C92"/>
+    <enumeration value="C93"/>
+    <enumeration value="C94"/>
+    <enumeration value="C95"/>
+    <enumeration value="C96"/>
+    <enumeration value="C97"/>
+    <enumeration value="C99"/>
+    <enumeration value="CCT"/>
+    <enumeration value="CDL"/>
+    <enumeration value="CEL"/>
+    <enumeration value="CEN"/>
+    <enumeration value="CG"/>
+    <enumeration value="CGM"/>
+    <enumeration value="CKG"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLT"/>
+    <enumeration value="CMK"/>
+    <enumeration value="CMQ"/>
+    <enumeration value="CMT"/>
+    <enumeration value="CNP"/>
+    <enumeration value="CNT"/>
+    <enumeration value="COU"/>
+    <enumeration value="CTG"/>
+    <enumeration value="CTM"/>
+    <enumeration value="CTN"/>
+    <enumeration value="CUR"/>
+    <enumeration value="CWA"/>
+    <enumeration value="CWI"/>
+    <enumeration value="D03"/>
+    <enumeration value="D04"/>
+    <enumeration value="D1"/>
+    <enumeration value="D10"/>
+    <enumeration value="D11"/>
+    <enumeration value="D12"/>
+    <enumeration value="D13"/>
+    <enumeration value="D15"/>
+    <enumeration value="D16"/>
+    <enumeration value="D17"/>
+    <enumeration value="D18"/>
+    <enumeration value="D19"/>
+    <enumeration value="D2"/>
+    <enumeration value="D20"/>
+    <enumeration value="D21"/>
+    <enumeration value="D22"/>
+    <enumeration value="D23"/>
+    <enumeration value="D24"/>
+    <enumeration value="D25"/>
+    <enumeration value="D26"/>
+    <enumeration value="D27"/>
+    <enumeration value="D29"/>
+    <enumeration value="D30"/>
+    <enumeration value="D31"/>
+    <enumeration value="D32"/>
+    <enumeration value="D33"/>
+    <enumeration value="D34"/>
+    <enumeration value="D36"/>
+    <enumeration value="D41"/>
+    <enumeration value="D42"/>
+    <enumeration value="D43"/>
+    <enumeration value="D44"/>
+    <enumeration value="D45"/>
+    <enumeration value="D46"/>
+    <enumeration value="D47"/>
+    <enumeration value="D48"/>
+    <enumeration value="D49"/>
+    <enumeration value="D5"/>
+    <enumeration value="D50"/>
+    <enumeration value="D51"/>
+    <enumeration value="D52"/>
+    <enumeration value="D53"/>
+    <enumeration value="D54"/>
+    <enumeration value="D55"/>
+    <enumeration value="D56"/>
+    <enumeration value="D57"/>
+    <enumeration value="D58"/>
+    <enumeration value="D59"/>
+    <enumeration value="D6"/>
+    <enumeration value="D60"/>
+    <enumeration value="D61"/>
+    <enumeration value="D62"/>
+    <enumeration value="D63"/>
+    <enumeration value="D65"/>
+    <enumeration value="D68"/>
+    <enumeration value="D69"/>
+    <enumeration value="D73"/>
+    <enumeration value="D74"/>
+    <enumeration value="D77"/>
+    <enumeration value="D78"/>
+    <enumeration value="D80"/>
+    <enumeration value="D81"/>
+    <enumeration value="D82"/>
+    <enumeration value="D83"/>
+    <enumeration value="D85"/>
+    <enumeration value="D86"/>
+    <enumeration value="D87"/>
+    <enumeration value="D88"/>
+    <enumeration value="D89"/>
+    <enumeration value="D91"/>
+    <enumeration value="D93"/>
+    <enumeration value="D94"/>
+    <enumeration value="D95"/>
+    <enumeration value="DAA"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAY"/>
+    <enumeration value="DB"/>
+    <enumeration value="DBM"/>
+    <enumeration value="DBW"/>
+    <enumeration value="DD"/>
+    <enumeration value="DEC"/>
+    <enumeration value="DG"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DLT"/>
+    <enumeration value="DMA"/>
+    <enumeration value="DMK"/>
+    <enumeration value="DMO"/>
+    <enumeration value="DMQ"/>
+    <enumeration value="DMT"/>
+    <enumeration value="DN"/>
+    <enumeration value="DPC"/>
+    <enumeration value="DPR"/>
+    <enumeration value="DPT"/>
+    <enumeration value="DRA"/>
+    <enumeration value="DRI"/>
+    <enumeration value="DRL"/>
+    <enumeration value="DT"/>
+    <enumeration value="DTN"/>
+    <enumeration value="DWT"/>
+    <enumeration value="DZN"/>
+    <enumeration value="DZP"/>
+    <enumeration value="E01"/>
+    <enumeration value="E07"/>
+    <enumeration value="E08"/>
+    <enumeration value="E09"/>
+    <enumeration value="E10"/>
+    <enumeration value="E12"/>
+    <enumeration value="E14"/>
+    <enumeration value="E15"/>
+    <enumeration value="E16"/>
+    <enumeration value="E17"/>
+    <enumeration value="E18"/>
+    <enumeration value="E19"/>
+    <enumeration value="E20"/>
+    <enumeration value="E21"/>
+    <enumeration value="E22"/>
+    <enumeration value="E23"/>
+    <enumeration value="E25"/>
+    <enumeration value="E27"/>
+    <enumeration value="E28"/>
+    <enumeration value="E30"/>
+    <enumeration value="E31"/>
+    <enumeration value="E32"/>
+    <enumeration value="E33"/>
+    <enumeration value="E34"/>
+    <enumeration value="E35"/>
+    <enumeration value="E36"/>
+    <enumeration value="E37"/>
+    <enumeration value="E38"/>
+    <enumeration value="E39"/>
+    <enumeration value="E4"/>
+    <enumeration value="E40"/>
+    <enumeration value="E41"/>
+    <enumeration value="E42"/>
+    <enumeration value="E43"/>
+    <enumeration value="E44"/>
+    <enumeration value="E45"/>
+    <enumeration value="E46"/>
+    <enumeration value="E47"/>
+    <enumeration value="E48"/>
+    <enumeration value="E49"/>
+    <enumeration value="E50"/>
+    <enumeration value="E51"/>
+    <enumeration value="E52"/>
+    <enumeration value="E53"/>
+    <enumeration value="E54"/>
+    <enumeration value="E55"/>
+    <enumeration value="E56"/>
+    <enumeration value="E57"/>
+    <enumeration value="E58"/>
+    <enumeration value="E59"/>
+    <enumeration value="E60"/>
+    <enumeration value="E61"/>
+    <enumeration value="E62"/>
+    <enumeration value="E63"/>
+    <enumeration value="E64"/>
+    <enumeration value="E65"/>
+    <enumeration value="E66"/>
+    <enumeration value="E67"/>
+    <enumeration value="E68"/>
+    <enumeration value="E69"/>
+    <enumeration value="E70"/>
+    <enumeration value="E71"/>
+    <enumeration value="E72"/>
+    <enumeration value="E73"/>
+    <enumeration value="E74"/>
+    <enumeration value="E75"/>
+    <enumeration value="E76"/>
+    <enumeration value="E77"/>
+    <enumeration value="E78"/>
+    <enumeration value="E79"/>
+    <enumeration value="E80"/>
+    <enumeration value="E81"/>
+    <enumeration value="E82"/>
+    <enumeration value="E83"/>
+    <enumeration value="E84"/>
+    <enumeration value="E85"/>
+    <enumeration value="E86"/>
+    <enumeration value="E87"/>
+    <enumeration value="E88"/>
+    <enumeration value="E89"/>
+    <enumeration value="E90"/>
+    <enumeration value="E91"/>
+    <enumeration value="E92"/>
+    <enumeration value="E93"/>
+    <enumeration value="E94"/>
+    <enumeration value="E95"/>
+    <enumeration value="E96"/>
+    <enumeration value="E97"/>
+    <enumeration value="E98"/>
+    <enumeration value="E99"/>
+    <enumeration value="EA"/>
+    <enumeration value="EB"/>
+    <enumeration value="EQ"/>
+    <enumeration value="F01"/>
+    <enumeration value="F02"/>
+    <enumeration value="F03"/>
+    <enumeration value="F04"/>
+    <enumeration value="F05"/>
+    <enumeration value="F06"/>
+    <enumeration value="F07"/>
+    <enumeration value="F08"/>
+    <enumeration value="F10"/>
+    <enumeration value="F11"/>
+    <enumeration value="F12"/>
+    <enumeration value="F13"/>
+    <enumeration value="F14"/>
+    <enumeration value="F15"/>
+    <enumeration value="F16"/>
+    <enumeration value="F17"/>
+    <enumeration value="F18"/>
+    <enumeration value="F19"/>
+    <enumeration value="F20"/>
+    <enumeration value="F21"/>
+    <enumeration value="F22"/>
+    <enumeration value="F23"/>
+    <enumeration value="F24"/>
+    <enumeration value="F25"/>
+    <enumeration value="F26"/>
+    <enumeration value="F27"/>
+    <enumeration value="F28"/>
+    <enumeration value="F29"/>
+    <enumeration value="F30"/>
+    <enumeration value="F31"/>
+    <enumeration value="F32"/>
+    <enumeration value="F33"/>
+    <enumeration value="F34"/>
+    <enumeration value="F35"/>
+    <enumeration value="F36"/>
+    <enumeration value="F37"/>
+    <enumeration value="F38"/>
+    <enumeration value="F39"/>
+    <enumeration value="F40"/>
+    <enumeration value="F41"/>
+    <enumeration value="F42"/>
+    <enumeration value="F43"/>
+    <enumeration value="F44"/>
+    <enumeration value="F45"/>
+    <enumeration value="F46"/>
+    <enumeration value="F47"/>
+    <enumeration value="F48"/>
+    <enumeration value="F49"/>
+    <enumeration value="F50"/>
+    <enumeration value="F51"/>
+    <enumeration value="F52"/>
+    <enumeration value="F53"/>
+    <enumeration value="F54"/>
+    <enumeration value="F55"/>
+    <enumeration value="F56"/>
+    <enumeration value="F57"/>
+    <enumeration value="F58"/>
+    <enumeration value="F59"/>
+    <enumeration value="F60"/>
+    <enumeration value="F61"/>
+    <enumeration value="F62"/>
+    <enumeration value="F63"/>
+    <enumeration value="F64"/>
+    <enumeration value="F65"/>
+    <enumeration value="F66"/>
+    <enumeration value="F67"/>
+    <enumeration value="F68"/>
+    <enumeration value="F69"/>
+    <enumeration value="F70"/>
+    <enumeration value="F71"/>
+    <enumeration value="F72"/>
+    <enumeration value="F73"/>
+    <enumeration value="F74"/>
+    <enumeration value="F75"/>
+    <enumeration value="F76"/>
+    <enumeration value="F77"/>
+    <enumeration value="F78"/>
+    <enumeration value="F79"/>
+    <enumeration value="F80"/>
+    <enumeration value="F81"/>
+    <enumeration value="F82"/>
+    <enumeration value="F83"/>
+    <enumeration value="F84"/>
+    <enumeration value="F85"/>
+    <enumeration value="F86"/>
+    <enumeration value="F87"/>
+    <enumeration value="F88"/>
+    <enumeration value="F89"/>
+    <enumeration value="F90"/>
+    <enumeration value="F91"/>
+    <enumeration value="F92"/>
+    <enumeration value="F93"/>
+    <enumeration value="F94"/>
+    <enumeration value="F95"/>
+    <enumeration value="F96"/>
+    <enumeration value="F97"/>
+    <enumeration value="F98"/>
+    <enumeration value="F99"/>
+    <enumeration value="FAH"/>
+    <enumeration value="FAR"/>
+    <enumeration value="FBM"/>
+    <enumeration value="FC"/>
+    <enumeration value="FF"/>
+    <enumeration value="FH"/>
+    <enumeration value="FIT"/>
+    <enumeration value="FL"/>
+    <enumeration value="FNU"/>
+    <enumeration value="FOT"/>
+    <enumeration value="FP"/>
+    <enumeration value="FR"/>
+    <enumeration value="FS"/>
+    <enumeration value="FTK"/>
+    <enumeration value="FTQ"/>
+    <enumeration value="G01"/>
+    <enumeration value="G04"/>
+    <enumeration value="G05"/>
+    <enumeration value="G06"/>
+    <enumeration value="G08"/>
+    <enumeration value="G09"/>
+    <enumeration value="G10"/>
+    <enumeration value="G11"/>
+    <enumeration value="G12"/>
+    <enumeration value="G13"/>
+    <enumeration value="G14"/>
+    <enumeration value="G15"/>
+    <enumeration value="G16"/>
+    <enumeration value="G17"/>
+    <enumeration value="G18"/>
+    <enumeration value="G19"/>
+    <enumeration value="G2"/>
+    <enumeration value="G20"/>
+    <enumeration value="G21"/>
+    <enumeration value="G23"/>
+    <enumeration value="G24"/>
+    <enumeration value="G25"/>
+    <enumeration value="G26"/>
+    <enumeration value="G27"/>
+    <enumeration value="G28"/>
+    <enumeration value="G29"/>
+    <enumeration value="G3"/>
+    <enumeration value="G30"/>
+    <enumeration value="G31"/>
+    <enumeration value="G32"/>
+    <enumeration value="G33"/>
+    <enumeration value="G34"/>
+    <enumeration value="G35"/>
+    <enumeration value="G36"/>
+    <enumeration value="G37"/>
+    <enumeration value="G38"/>
+    <enumeration value="G39"/>
+    <enumeration value="G40"/>
+    <enumeration value="G41"/>
+    <enumeration value="G42"/>
+    <enumeration value="G43"/>
+    <enumeration value="G44"/>
+    <enumeration value="G45"/>
+    <enumeration value="G46"/>
+    <enumeration value="G47"/>
+    <enumeration value="G48"/>
+    <enumeration value="G49"/>
+    <enumeration value="G50"/>
+    <enumeration value="G51"/>
+    <enumeration value="G52"/>
+    <enumeration value="G53"/>
+    <enumeration value="G54"/>
+    <enumeration value="G55"/>
+    <enumeration value="G56"/>
+    <enumeration value="G57"/>
+    <enumeration value="G58"/>
+    <enumeration value="G59"/>
+    <enumeration value="G60"/>
+    <enumeration value="G61"/>
+    <enumeration value="G62"/>
+    <enumeration value="G63"/>
+    <enumeration value="G64"/>
+    <enumeration value="G65"/>
+    <enumeration value="G66"/>
+    <enumeration value="G67"/>
+    <enumeration value="G68"/>
+    <enumeration value="G69"/>
+    <enumeration value="G70"/>
+    <enumeration value="G71"/>
+    <enumeration value="G72"/>
+    <enumeration value="G73"/>
+    <enumeration value="G74"/>
+    <enumeration value="G75"/>
+    <enumeration value="G76"/>
+    <enumeration value="G77"/>
+    <enumeration value="G78"/>
+    <enumeration value="G79"/>
+    <enumeration value="G80"/>
+    <enumeration value="G81"/>
+    <enumeration value="G82"/>
+    <enumeration value="G83"/>
+    <enumeration value="G84"/>
+    <enumeration value="G85"/>
+    <enumeration value="G86"/>
+    <enumeration value="G87"/>
+    <enumeration value="G88"/>
+    <enumeration value="G89"/>
+    <enumeration value="G90"/>
+    <enumeration value="G91"/>
+    <enumeration value="G92"/>
+    <enumeration value="G93"/>
+    <enumeration value="G94"/>
+    <enumeration value="G95"/>
+    <enumeration value="G96"/>
+    <enumeration value="G97"/>
+    <enumeration value="G98"/>
+    <enumeration value="G99"/>
+    <enumeration value="GB"/>
+    <enumeration value="GBQ"/>
+    <enumeration value="GDW"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GFI"/>
+    <enumeration value="GGR"/>
+    <enumeration value="GIA"/>
+    <enumeration value="GIC"/>
+    <enumeration value="GII"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GJ"/>
+    <enumeration value="GL"/>
+    <enumeration value="GLD"/>
+    <enumeration value="GLI"/>
+    <enumeration value="GLL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GO"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GRM"/>
+    <enumeration value="GRN"/>
+    <enumeration value="GRO"/>
+    <enumeration value="GV"/>
+    <enumeration value="GWH"/>
+    <enumeration value="H03"/>
+    <enumeration value="H04"/>
+    <enumeration value="H05"/>
+    <enumeration value="H06"/>
+    <enumeration value="H07"/>
+    <enumeration value="H08"/>
+    <enumeration value="H09"/>
+    <enumeration value="H10"/>
+    <enumeration value="H11"/>
+    <enumeration value="H12"/>
+    <enumeration value="H13"/>
+    <enumeration value="H14"/>
+    <enumeration value="H15"/>
+    <enumeration value="H16"/>
+    <enumeration value="H18"/>
+    <enumeration value="H19"/>
+    <enumeration value="H20"/>
+    <enumeration value="H21"/>
+    <enumeration value="H22"/>
+    <enumeration value="H23"/>
+    <enumeration value="H24"/>
+    <enumeration value="H25"/>
+    <enumeration value="H26"/>
+    <enumeration value="H27"/>
+    <enumeration value="H28"/>
+    <enumeration value="H29"/>
+    <enumeration value="H30"/>
+    <enumeration value="H31"/>
+    <enumeration value="H32"/>
+    <enumeration value="H33"/>
+    <enumeration value="H34"/>
+    <enumeration value="H35"/>
+    <enumeration value="H36"/>
+    <enumeration value="H37"/>
+    <enumeration value="H38"/>
+    <enumeration value="H39"/>
+    <enumeration value="H40"/>
+    <enumeration value="H41"/>
+    <enumeration value="H42"/>
+    <enumeration value="H43"/>
+    <enumeration value="H44"/>
+    <enumeration value="H45"/>
+    <enumeration value="H46"/>
+    <enumeration value="H47"/>
+    <enumeration value="H48"/>
+    <enumeration value="H49"/>
+    <enumeration value="H50"/>
+    <enumeration value="H51"/>
+    <enumeration value="H52"/>
+    <enumeration value="H53"/>
+    <enumeration value="H54"/>
+    <enumeration value="H55"/>
+    <enumeration value="H56"/>
+    <enumeration value="H57"/>
+    <enumeration value="H58"/>
+    <enumeration value="H59"/>
+    <enumeration value="H60"/>
+    <enumeration value="H61"/>
+    <enumeration value="H62"/>
+    <enumeration value="H63"/>
+    <enumeration value="H64"/>
+    <enumeration value="H65"/>
+    <enumeration value="H66"/>
+    <enumeration value="H67"/>
+    <enumeration value="H68"/>
+    <enumeration value="H69"/>
+    <enumeration value="H70"/>
+    <enumeration value="H71"/>
+    <enumeration value="H72"/>
+    <enumeration value="H73"/>
+    <enumeration value="H74"/>
+    <enumeration value="H75"/>
+    <enumeration value="H76"/>
+    <enumeration value="H77"/>
+    <enumeration value="H79"/>
+    <enumeration value="H80"/>
+    <enumeration value="H81"/>
+    <enumeration value="H82"/>
+    <enumeration value="H83"/>
+    <enumeration value="H84"/>
+    <enumeration value="H85"/>
+    <enumeration value="H87"/>
+    <enumeration value="H88"/>
+    <enumeration value="H89"/>
+    <enumeration value="H90"/>
+    <enumeration value="H91"/>
+    <enumeration value="H92"/>
+    <enumeration value="H93"/>
+    <enumeration value="H94"/>
+    <enumeration value="H95"/>
+    <enumeration value="H96"/>
+    <enumeration value="H98"/>
+    <enumeration value="H99"/>
+    <enumeration value="HA"/>
+    <enumeration value="HAD"/>
+    <enumeration value="HBA"/>
+    <enumeration value="HBX"/>
+    <enumeration value="HC"/>
+    <enumeration value="HDW"/>
+    <enumeration value="HEA"/>
+    <enumeration value="HGM"/>
+    <enumeration value="HH"/>
+    <enumeration value="HIU"/>
+    <enumeration value="HKM"/>
+    <enumeration value="HLT"/>
+    <enumeration value="HM"/>
+    <enumeration value="HMO"/>
+    <enumeration value="HMQ"/>
+    <enumeration value="HMT"/>
+    <enumeration value="HPA"/>
+    <enumeration value="HTZ"/>
+    <enumeration value="HUR"/>
+    <enumeration value="HWE"/>
+    <enumeration value="IA"/>
+    <enumeration value="IE"/>
+    <enumeration value="INH"/>
+    <enumeration value="INK"/>
+    <enumeration value="INQ"/>
+    <enumeration value="ISD"/>
+    <enumeration value="IU"/>
+    <enumeration value="IUG"/>
+    <enumeration value="IV"/>
+    <enumeration value="J10"/>
+    <enumeration value="J12"/>
+    <enumeration value="J13"/>
+    <enumeration value="J14"/>
+    <enumeration value="J15"/>
+    <enumeration value="J16"/>
+    <enumeration value="J17"/>
+    <enumeration value="J18"/>
+    <enumeration value="J19"/>
+    <enumeration value="J2"/>
+    <enumeration value="J20"/>
+    <enumeration value="J21"/>
+    <enumeration value="J22"/>
+    <enumeration value="J23"/>
+    <enumeration value="J24"/>
+    <enumeration value="J25"/>
+    <enumeration value="J26"/>
+    <enumeration value="J27"/>
+    <enumeration value="J28"/>
+    <enumeration value="J29"/>
+    <enumeration value="J30"/>
+    <enumeration value="J31"/>
+    <enumeration value="J32"/>
+    <enumeration value="J33"/>
+    <enumeration value="J34"/>
+    <enumeration value="J35"/>
+    <enumeration value="J36"/>
+    <enumeration value="J38"/>
+    <enumeration value="J39"/>
+    <enumeration value="J40"/>
+    <enumeration value="J41"/>
+    <enumeration value="J42"/>
+    <enumeration value="J43"/>
+    <enumeration value="J44"/>
+    <enumeration value="J45"/>
+    <enumeration value="J46"/>
+    <enumeration value="J47"/>
+    <enumeration value="J48"/>
+    <enumeration value="J49"/>
+    <enumeration value="J50"/>
+    <enumeration value="J51"/>
+    <enumeration value="J52"/>
+    <enumeration value="J53"/>
+    <enumeration value="J54"/>
+    <enumeration value="J55"/>
+    <enumeration value="J56"/>
+    <enumeration value="J57"/>
+    <enumeration value="J58"/>
+    <enumeration value="J59"/>
+    <enumeration value="J60"/>
+    <enumeration value="J61"/>
+    <enumeration value="J62"/>
+    <enumeration value="J63"/>
+    <enumeration value="J64"/>
+    <enumeration value="J65"/>
+    <enumeration value="J66"/>
+    <enumeration value="J67"/>
+    <enumeration value="J68"/>
+    <enumeration value="J69"/>
+    <enumeration value="J70"/>
+    <enumeration value="J71"/>
+    <enumeration value="J72"/>
+    <enumeration value="J73"/>
+    <enumeration value="J74"/>
+    <enumeration value="J75"/>
+    <enumeration value="J76"/>
+    <enumeration value="J78"/>
+    <enumeration value="J79"/>
+    <enumeration value="J81"/>
+    <enumeration value="J82"/>
+    <enumeration value="J83"/>
+    <enumeration value="J84"/>
+    <enumeration value="J85"/>
+    <enumeration value="J87"/>
+    <enumeration value="J90"/>
+    <enumeration value="J91"/>
+    <enumeration value="J92"/>
+    <enumeration value="J93"/>
+    <enumeration value="J95"/>
+    <enumeration value="J96"/>
+    <enumeration value="J97"/>
+    <enumeration value="J98"/>
+    <enumeration value="J99"/>
+    <enumeration value="JE"/>
+    <enumeration value="JK"/>
+    <enumeration value="JM"/>
+    <enumeration value="JNT"/>
+    <enumeration value="JOU"/>
+    <enumeration value="JPS"/>
+    <enumeration value="JWL"/>
+    <enumeration value="K1"/>
+    <enumeration value="K10"/>
+    <enumeration value="K11"/>
+    <enumeration value="K12"/>
+    <enumeration value="K13"/>
+    <enumeration value="K14"/>
+    <enumeration value="K15"/>
+    <enumeration value="K16"/>
+    <enumeration value="K17"/>
+    <enumeration value="K18"/>
+    <enumeration value="K19"/>
+    <enumeration value="K2"/>
+    <enumeration value="K20"/>
+    <enumeration value="K21"/>
+    <enumeration value="K22"/>
+    <enumeration value="K23"/>
+    <enumeration value="K26"/>
+    <enumeration value="K27"/>
+    <enumeration value="K28"/>
+    <enumeration value="K3"/>
+    <enumeration value="K30"/>
+    <enumeration value="K31"/>
+    <enumeration value="K32"/>
+    <enumeration value="K33"/>
+    <enumeration value="K34"/>
+    <enumeration value="K35"/>
+    <enumeration value="K36"/>
+    <enumeration value="K37"/>
+    <enumeration value="K38"/>
+    <enumeration value="K39"/>
+    <enumeration value="K40"/>
+    <enumeration value="K41"/>
+    <enumeration value="K42"/>
+    <enumeration value="K43"/>
+    <enumeration value="K45"/>
+    <enumeration value="K46"/>
+    <enumeration value="K47"/>
+    <enumeration value="K48"/>
+    <enumeration value="K49"/>
+    <enumeration value="K50"/>
+    <enumeration value="K51"/>
+    <enumeration value="K52"/>
+    <enumeration value="K53"/>
+    <enumeration value="K54"/>
+    <enumeration value="K55"/>
+    <enumeration value="K58"/>
+    <enumeration value="K59"/>
+    <enumeration value="K6"/>
+    <enumeration value="K60"/>
+    <enumeration value="K61"/>
+    <enumeration value="K62"/>
+    <enumeration value="K63"/>
+    <enumeration value="K64"/>
+    <enumeration value="K65"/>
+    <enumeration value="K66"/>
+    <enumeration value="K67"/>
+    <enumeration value="K68"/>
+    <enumeration value="K69"/>
+    <enumeration value="K70"/>
+    <enumeration value="K71"/>
+    <enumeration value="K73"/>
+    <enumeration value="K74"/>
+    <enumeration value="K75"/>
+    <enumeration value="K76"/>
+    <enumeration value="K77"/>
+    <enumeration value="K78"/>
+    <enumeration value="K79"/>
+    <enumeration value="K80"/>
+    <enumeration value="K81"/>
+    <enumeration value="K82"/>
+    <enumeration value="K83"/>
+    <enumeration value="K84"/>
+    <enumeration value="K85"/>
+    <enumeration value="K86"/>
+    <enumeration value="K87"/>
+    <enumeration value="K88"/>
+    <enumeration value="K89"/>
+    <enumeration value="K90"/>
+    <enumeration value="K91"/>
+    <enumeration value="K92"/>
+    <enumeration value="K93"/>
+    <enumeration value="K94"/>
+    <enumeration value="K95"/>
+    <enumeration value="K96"/>
+    <enumeration value="K97"/>
+    <enumeration value="K98"/>
+    <enumeration value="K99"/>
+    <enumeration value="KA"/>
+    <enumeration value="KAT"/>
+    <enumeration value="KB"/>
+    <enumeration value="KBA"/>
+    <enumeration value="KCC"/>
+    <enumeration value="KDW"/>
+    <enumeration value="KEL"/>
+    <enumeration value="KGM"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHY"/>
+    <enumeration value="KHZ"/>
+    <enumeration value="KI"/>
+    <enumeration value="KIC"/>
+    <enumeration value="KIP"/>
+    <enumeration value="KJ"/>
+    <enumeration value="KJO"/>
+    <enumeration value="KL"/>
+    <enumeration value="KLK"/>
+    <enumeration value="KLX"/>
+    <enumeration value="KMA"/>
+    <enumeration value="KMH"/>
+    <enumeration value="KMK"/>
+    <enumeration value="KMQ"/>
+    <enumeration value="KMT"/>
+    <enumeration value="KNI"/>
+    <enumeration value="KNM"/>
+    <enumeration value="KNS"/>
+    <enumeration value="KNT"/>
+    <enumeration value="KO"/>
+    <enumeration value="KPA"/>
+    <enumeration value="KPH"/>
+    <enumeration value="KPO"/>
+    <enumeration value="KPP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KSD"/>
+    <enumeration value="KSH"/>
+    <enumeration value="KT"/>
+    <enumeration value="KTN"/>
+    <enumeration value="KUR"/>
+    <enumeration value="KVA"/>
+    <enumeration value="KVR"/>
+    <enumeration value="KVT"/>
+    <enumeration value="KW"/>
+    <enumeration value="KWH"/>
+    <enumeration value="KWN"/>
+    <enumeration value="KWO"/>
+    <enumeration value="KWS"/>
+    <enumeration value="KWT"/>
+    <enumeration value="KWY"/>
+    <enumeration value="KX"/>
+    <enumeration value="L10"/>
+    <enumeration value="L11"/>
+    <enumeration value="L12"/>
+    <enumeration value="L13"/>
+    <enumeration value="L14"/>
+    <enumeration value="L15"/>
+    <enumeration value="L16"/>
+    <enumeration value="L17"/>
+    <enumeration value="L18"/>
+    <enumeration value="L19"/>
+    <enumeration value="L2"/>
+    <enumeration value="L20"/>
+    <enumeration value="L21"/>
+    <enumeration value="L23"/>
+    <enumeration value="L24"/>
+    <enumeration value="L25"/>
+    <enumeration value="L26"/>
+    <enumeration value="L27"/>
+    <enumeration value="L28"/>
+    <enumeration value="L29"/>
+    <enumeration value="L30"/>
+    <enumeration value="L31"/>
+    <enumeration value="L32"/>
+    <enumeration value="L33"/>
+    <enumeration value="L34"/>
+    <enumeration value="L35"/>
+    <enumeration value="L36"/>
+    <enumeration value="L37"/>
+    <enumeration value="L38"/>
+    <enumeration value="L39"/>
+    <enumeration value="L40"/>
+    <enumeration value="L41"/>
+    <enumeration value="L42"/>
+    <enumeration value="L43"/>
+    <enumeration value="L44"/>
+    <enumeration value="L45"/>
+    <enumeration value="L46"/>
+    <enumeration value="L47"/>
+    <enumeration value="L48"/>
+    <enumeration value="L49"/>
+    <enumeration value="L50"/>
+    <enumeration value="L51"/>
+    <enumeration value="L52"/>
+    <enumeration value="L53"/>
+    <enumeration value="L54"/>
+    <enumeration value="L55"/>
+    <enumeration value="L56"/>
+    <enumeration value="L57"/>
+    <enumeration value="L58"/>
+    <enumeration value="L59"/>
+    <enumeration value="L60"/>
+    <enumeration value="L63"/>
+    <enumeration value="L64"/>
+    <enumeration value="L65"/>
+    <enumeration value="L66"/>
+    <enumeration value="L67"/>
+    <enumeration value="L68"/>
+    <enumeration value="L69"/>
+    <enumeration value="L70"/>
+    <enumeration value="L71"/>
+    <enumeration value="L72"/>
+    <enumeration value="L73"/>
+    <enumeration value="L74"/>
+    <enumeration value="L75"/>
+    <enumeration value="L76"/>
+    <enumeration value="L77"/>
+    <enumeration value="L78"/>
+    <enumeration value="L79"/>
+    <enumeration value="L80"/>
+    <enumeration value="L81"/>
+    <enumeration value="L82"/>
+    <enumeration value="L83"/>
+    <enumeration value="L84"/>
+    <enumeration value="L85"/>
+    <enumeration value="L86"/>
+    <enumeration value="L87"/>
+    <enumeration value="L88"/>
+    <enumeration value="L89"/>
+    <enumeration value="L90"/>
+    <enumeration value="L91"/>
+    <enumeration value="L92"/>
+    <enumeration value="L93"/>
+    <enumeration value="L94"/>
+    <enumeration value="L95"/>
+    <enumeration value="L96"/>
+    <enumeration value="L98"/>
+    <enumeration value="L99"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAC"/>
+    <enumeration value="LBR"/>
+    <enumeration value="LBT"/>
+    <enumeration value="LD"/>
+    <enumeration value="LEF"/>
+    <enumeration value="LF"/>
+    <enumeration value="LH"/>
+    <enumeration value="LK"/>
+    <enumeration value="LM"/>
+    <enumeration value="LN"/>
+    <enumeration value="LO"/>
+    <enumeration value="LP"/>
+    <enumeration value="LPA"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LTN"/>
+    <enumeration value="LTR"/>
+    <enumeration value="LUB"/>
+    <enumeration value="LUM"/>
+    <enumeration value="LUX"/>
+    <enumeration value="LY"/>
+    <enumeration value="M1"/>
+    <enumeration value="M10"/>
+    <enumeration value="M11"/>
+    <enumeration value="M12"/>
+    <enumeration value="M13"/>
+    <enumeration value="M14"/>
+    <enumeration value="M15"/>
+    <enumeration value="M16"/>
+    <enumeration value="M17"/>
+    <enumeration value="M18"/>
+    <enumeration value="M19"/>
+    <enumeration value="M20"/>
+    <enumeration value="M21"/>
+    <enumeration value="M22"/>
+    <enumeration value="M23"/>
+    <enumeration value="M24"/>
+    <enumeration value="M25"/>
+    <enumeration value="M26"/>
+    <enumeration value="M27"/>
+    <enumeration value="M29"/>
+    <enumeration value="M30"/>
+    <enumeration value="M31"/>
+    <enumeration value="M32"/>
+    <enumeration value="M33"/>
+    <enumeration value="M34"/>
+    <enumeration value="M35"/>
+    <enumeration value="M36"/>
+    <enumeration value="M37"/>
+    <enumeration value="M38"/>
+    <enumeration value="M39"/>
+    <enumeration value="M4"/>
+    <enumeration value="M40"/>
+    <enumeration value="M41"/>
+    <enumeration value="M42"/>
+    <enumeration value="M43"/>
+    <enumeration value="M44"/>
+    <enumeration value="M45"/>
+    <enumeration value="M46"/>
+    <enumeration value="M47"/>
+    <enumeration value="M48"/>
+    <enumeration value="M49"/>
+    <enumeration value="M5"/>
+    <enumeration value="M50"/>
+    <enumeration value="M51"/>
+    <enumeration value="M52"/>
+    <enumeration value="M53"/>
+    <enumeration value="M55"/>
+    <enumeration value="M56"/>
+    <enumeration value="M57"/>
+    <enumeration value="M58"/>
+    <enumeration value="M59"/>
+    <enumeration value="M60"/>
+    <enumeration value="M61"/>
+    <enumeration value="M62"/>
+    <enumeration value="M63"/>
+    <enumeration value="M64"/>
+    <enumeration value="M65"/>
+    <enumeration value="M66"/>
+    <enumeration value="M67"/>
+    <enumeration value="M68"/>
+    <enumeration value="M69"/>
+    <enumeration value="M7"/>
+    <enumeration value="M70"/>
+    <enumeration value="M71"/>
+    <enumeration value="M72"/>
+    <enumeration value="M73"/>
+    <enumeration value="M74"/>
+    <enumeration value="M75"/>
+    <enumeration value="M76"/>
+    <enumeration value="M77"/>
+    <enumeration value="M78"/>
+    <enumeration value="M79"/>
+    <enumeration value="M80"/>
+    <enumeration value="M81"/>
+    <enumeration value="M82"/>
+    <enumeration value="M83"/>
+    <enumeration value="M84"/>
+    <enumeration value="M85"/>
+    <enumeration value="M86"/>
+    <enumeration value="M87"/>
+    <enumeration value="M88"/>
+    <enumeration value="M89"/>
+    <enumeration value="M9"/>
+    <enumeration value="M90"/>
+    <enumeration value="M91"/>
+    <enumeration value="M92"/>
+    <enumeration value="M93"/>
+    <enumeration value="M94"/>
+    <enumeration value="M95"/>
+    <enumeration value="M96"/>
+    <enumeration value="M97"/>
+    <enumeration value="M98"/>
+    <enumeration value="M99"/>
+    <enumeration value="MAH"/>
+    <enumeration value="MAL"/>
+    <enumeration value="MAM"/>
+    <enumeration value="MAR"/>
+    <enumeration value="MAW"/>
+    <enumeration value="MBE"/>
+    <enumeration value="MBF"/>
+    <enumeration value="MBR"/>
+    <enumeration value="MC"/>
+    <enumeration value="MCU"/>
+    <enumeration value="MD"/>
+    <enumeration value="MGM"/>
+    <enumeration value="MHZ"/>
+    <enumeration value="MIK"/>
+    <enumeration value="MIL"/>
+    <enumeration value="MIN"/>
+    <enumeration value="MIO"/>
+    <enumeration value="MIU"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MKM"/>
+    <enumeration value="MKW"/>
+    <enumeration value="MLD"/>
+    <enumeration value="MLT"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MMQ"/>
+    <enumeration value="MMT"/>
+    <enumeration value="MND"/>
+    <enumeration value="MNJ"/>
+    <enumeration value="MON"/>
+    <enumeration value="MPA"/>
+    <enumeration value="MQD"/>
+    <enumeration value="MQH"/>
+    <enumeration value="MQM"/>
+    <enumeration value="MQS"/>
+    <enumeration value="MQW"/>
+    <enumeration value="MRD"/>
+    <enumeration value="MRM"/>
+    <enumeration value="MRW"/>
+    <enumeration value="MSK"/>
+    <enumeration value="MTK"/>
+    <enumeration value="MTQ"/>
+    <enumeration value="MTR"/>
+    <enumeration value="MTS"/>
+    <enumeration value="MTZ"/>
+    <enumeration value="MVA"/>
+    <enumeration value="MWH"/>
+    <enumeration value="N1"/>
+    <enumeration value="N10"/>
+    <enumeration value="N11"/>
+    <enumeration value="N12"/>
+    <enumeration value="N13"/>
+    <enumeration value="N14"/>
+    <enumeration value="N15"/>
+    <enumeration value="N16"/>
+    <enumeration value="N17"/>
+    <enumeration value="N18"/>
+    <enumeration value="N19"/>
+    <enumeration value="N20"/>
+    <enumeration value="N21"/>
+    <enumeration value="N22"/>
+    <enumeration value="N23"/>
+    <enumeration value="N24"/>
+    <enumeration value="N25"/>
+    <enumeration value="N26"/>
+    <enumeration value="N27"/>
+    <enumeration value="N28"/>
+    <enumeration value="N29"/>
+    <enumeration value="N3"/>
+    <enumeration value="N30"/>
+    <enumeration value="N31"/>
+    <enumeration value="N32"/>
+    <enumeration value="N33"/>
+    <enumeration value="N34"/>
+    <enumeration value="N35"/>
+    <enumeration value="N36"/>
+    <enumeration value="N37"/>
+    <enumeration value="N38"/>
+    <enumeration value="N39"/>
+    <enumeration value="N40"/>
+    <enumeration value="N41"/>
+    <enumeration value="N42"/>
+    <enumeration value="N43"/>
+    <enumeration value="N44"/>
+    <enumeration value="N45"/>
+    <enumeration value="N46"/>
+    <enumeration value="N47"/>
+    <enumeration value="N48"/>
+    <enumeration value="N49"/>
+    <enumeration value="N50"/>
+    <enumeration value="N51"/>
+    <enumeration value="N52"/>
+    <enumeration value="N53"/>
+    <enumeration value="N54"/>
+    <enumeration value="N55"/>
+    <enumeration value="N56"/>
+    <enumeration value="N57"/>
+    <enumeration value="N58"/>
+    <enumeration value="N59"/>
+    <enumeration value="N60"/>
+    <enumeration value="N61"/>
+    <enumeration value="N62"/>
+    <enumeration value="N63"/>
+    <enumeration value="N64"/>
+    <enumeration value="N65"/>
+    <enumeration value="N66"/>
+    <enumeration value="N67"/>
+    <enumeration value="N68"/>
+    <enumeration value="N69"/>
+    <enumeration value="N70"/>
+    <enumeration value="N71"/>
+    <enumeration value="N72"/>
+    <enumeration value="N73"/>
+    <enumeration value="N74"/>
+    <enumeration value="N75"/>
+    <enumeration value="N76"/>
+    <enumeration value="N77"/>
+    <enumeration value="N78"/>
+    <enumeration value="N79"/>
+    <enumeration value="N80"/>
+    <enumeration value="N81"/>
+    <enumeration value="N82"/>
+    <enumeration value="N83"/>
+    <enumeration value="N84"/>
+    <enumeration value="N85"/>
+    <enumeration value="N86"/>
+    <enumeration value="N87"/>
+    <enumeration value="N88"/>
+    <enumeration value="N89"/>
+    <enumeration value="N90"/>
+    <enumeration value="N91"/>
+    <enumeration value="N92"/>
+    <enumeration value="N93"/>
+    <enumeration value="N94"/>
+    <enumeration value="N95"/>
+    <enumeration value="N96"/>
+    <enumeration value="N97"/>
+    <enumeration value="N98"/>
+    <enumeration value="N99"/>
+    <enumeration value="NA"/>
+    <enumeration value="NAR"/>
+    <enumeration value="NCL"/>
+    <enumeration value="NEW"/>
+    <enumeration value="NF"/>
+    <enumeration value="NIL"/>
+    <enumeration value="NIU"/>
+    <enumeration value="NL"/>
+    <enumeration value="NM3"/>
+    <enumeration value="NMI"/>
+    <enumeration value="NMP"/>
+    <enumeration value="NPT"/>
+    <enumeration value="NT"/>
+    <enumeration value="NTU"/>
+    <enumeration value="NU"/>
+    <enumeration value="NX"/>
+    <enumeration value="OA"/>
+    <enumeration value="ODE"/>
+    <enumeration value="ODG"/>
+    <enumeration value="ODK"/>
+    <enumeration value="ODM"/>
+    <enumeration value="OHM"/>
+    <enumeration value="ON"/>
+    <enumeration value="ONZ"/>
+    <enumeration value="OPM"/>
+    <enumeration value="OT"/>
+    <enumeration value="OZA"/>
+    <enumeration value="OZI"/>
+    <enumeration value="P1"/>
+    <enumeration value="P10"/>
+    <enumeration value="P11"/>
+    <enumeration value="P12"/>
+    <enumeration value="P13"/>
+    <enumeration value="P14"/>
+    <enumeration value="P15"/>
+    <enumeration value="P16"/>
+    <enumeration value="P17"/>
+    <enumeration value="P18"/>
+    <enumeration value="P19"/>
+    <enumeration value="P2"/>
+    <enumeration value="P20"/>
+    <enumeration value="P21"/>
+    <enumeration value="P22"/>
+    <enumeration value="P23"/>
+    <enumeration value="P24"/>
+    <enumeration value="P25"/>
+    <enumeration value="P26"/>
+    <enumeration value="P27"/>
+    <enumeration value="P28"/>
+    <enumeration value="P29"/>
+    <enumeration value="P30"/>
+    <enumeration value="P31"/>
+    <enumeration value="P32"/>
+    <enumeration value="P33"/>
+    <enumeration value="P34"/>
+    <enumeration value="P35"/>
+    <enumeration value="P36"/>
+    <enumeration value="P37"/>
+    <enumeration value="P38"/>
+    <enumeration value="P39"/>
+    <enumeration value="P40"/>
+    <enumeration value="P41"/>
+    <enumeration value="P42"/>
+    <enumeration value="P43"/>
+    <enumeration value="P44"/>
+    <enumeration value="P45"/>
+    <enumeration value="P46"/>
+    <enumeration value="P47"/>
+    <enumeration value="P48"/>
+    <enumeration value="P49"/>
+    <enumeration value="P5"/>
+    <enumeration value="P50"/>
+    <enumeration value="P51"/>
+    <enumeration value="P52"/>
+    <enumeration value="P53"/>
+    <enumeration value="P54"/>
+    <enumeration value="P55"/>
+    <enumeration value="P56"/>
+    <enumeration value="P57"/>
+    <enumeration value="P58"/>
+    <enumeration value="P59"/>
+    <enumeration value="P60"/>
+    <enumeration value="P61"/>
+    <enumeration value="P62"/>
+    <enumeration value="P63"/>
+    <enumeration value="P64"/>
+    <enumeration value="P65"/>
+    <enumeration value="P66"/>
+    <enumeration value="P67"/>
+    <enumeration value="P68"/>
+    <enumeration value="P69"/>
+    <enumeration value="P70"/>
+    <enumeration value="P71"/>
+    <enumeration value="P72"/>
+    <enumeration value="P73"/>
+    <enumeration value="P74"/>
+    <enumeration value="P75"/>
+    <enumeration value="P76"/>
+    <enumeration value="P77"/>
+    <enumeration value="P78"/>
+    <enumeration value="P79"/>
+    <enumeration value="P80"/>
+    <enumeration value="P81"/>
+    <enumeration value="P82"/>
+    <enumeration value="P83"/>
+    <enumeration value="P84"/>
+    <enumeration value="P85"/>
+    <enumeration value="P86"/>
+    <enumeration value="P87"/>
+    <enumeration value="P88"/>
+    <enumeration value="P89"/>
+    <enumeration value="P90"/>
+    <enumeration value="P91"/>
+    <enumeration value="P92"/>
+    <enumeration value="P93"/>
+    <enumeration value="P94"/>
+    <enumeration value="P95"/>
+    <enumeration value="P96"/>
+    <enumeration value="P97"/>
+    <enumeration value="P98"/>
+    <enumeration value="P99"/>
+    <enumeration value="PAL"/>
+    <enumeration value="PD"/>
+    <enumeration value="PFL"/>
+    <enumeration value="PGL"/>
+    <enumeration value="PI"/>
+    <enumeration value="PLA"/>
+    <enumeration value="PO"/>
+    <enumeration value="PQ"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PTD"/>
+    <enumeration value="PTI"/>
+    <enumeration value="PTL"/>
+    <enumeration value="PTN"/>
+    <enumeration value="Q10"/>
+    <enumeration value="Q11"/>
+    <enumeration value="Q12"/>
+    <enumeration value="Q13"/>
+    <enumeration value="Q14"/>
+    <enumeration value="Q15"/>
+    <enumeration value="Q16"/>
+    <enumeration value="Q17"/>
+    <enumeration value="Q18"/>
+    <enumeration value="Q19"/>
+    <enumeration value="Q20"/>
+    <enumeration value="Q21"/>
+    <enumeration value="Q22"/>
+    <enumeration value="Q23"/>
+    <enumeration value="Q24"/>
+    <enumeration value="Q25"/>
+    <enumeration value="Q26"/>
+    <enumeration value="Q27"/>
+    <enumeration value="Q28"/>
+    <enumeration value="Q29"/>
+    <enumeration value="Q3"/>
+    <enumeration value="Q30"/>
+    <enumeration value="Q31"/>
+    <enumeration value="Q32"/>
+    <enumeration value="Q33"/>
+    <enumeration value="Q34"/>
+    <enumeration value="Q35"/>
+    <enumeration value="Q36"/>
+    <enumeration value="Q37"/>
+    <enumeration value="Q38"/>
+    <enumeration value="Q39"/>
+    <enumeration value="Q40"/>
+    <enumeration value="Q41"/>
+    <enumeration value="Q42"/>
+    <enumeration value="QA"/>
+    <enumeration value="QAN"/>
+    <enumeration value="QB"/>
+    <enumeration value="QR"/>
+    <enumeration value="QTD"/>
+    <enumeration value="QTI"/>
+    <enumeration value="QTL"/>
+    <enumeration value="QTR"/>
+    <enumeration value="R1"/>
+    <enumeration value="R9"/>
+    <enumeration value="RH"/>
+    <enumeration value="RM"/>
+    <enumeration value="ROM"/>
+    <enumeration value="RP"/>
+    <enumeration value="RPM"/>
+    <enumeration value="RPS"/>
+    <enumeration value="RT"/>
+    <enumeration value="S3"/>
+    <enumeration value="S4"/>
+    <enumeration value="SAN"/>
+    <enumeration value="SCO"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SEC"/>
+    <enumeration value="SET"/>
+    <enumeration value="SG"/>
+    <enumeration value="SIE"/>
+    <enumeration value="SM3"/>
+    <enumeration value="SMI"/>
+    <enumeration value="SQ"/>
+    <enumeration value="SQR"/>
+    <enumeration value="SR"/>
+    <enumeration value="STC"/>
+    <enumeration value="STI"/>
+    <enumeration value="STK"/>
+    <enumeration value="STL"/>
+    <enumeration value="STN"/>
+    <enumeration value="STW"/>
+    <enumeration value="SW"/>
+    <enumeration value="SX"/>
+    <enumeration value="SYR"/>
+    <enumeration value="T0"/>
+    <enumeration value="T3"/>
+    <enumeration value="TAH"/>
+    <enumeration value="TAN"/>
+    <enumeration value="TI"/>
+    <enumeration value="TIC"/>
+    <enumeration value="TIP"/>
+    <enumeration value="TKM"/>
+    <enumeration value="TMS"/>
+    <enumeration value="TNE"/>
+    <enumeration value="TP"/>
+    <enumeration value="TPI"/>
+    <enumeration value="TPR"/>
+    <enumeration value="TQD"/>
+    <enumeration value="TRL"/>
+    <enumeration value="TST"/>
+    <enumeration value="TTS"/>
+    <enumeration value="U1"/>
+    <enumeration value="U2"/>
+    <enumeration value="UB"/>
+    <enumeration value="UC"/>
+    <enumeration value="VA"/>
+    <enumeration value="VLT"/>
+    <enumeration value="VP"/>
+    <enumeration value="W2"/>
+    <enumeration value="WA"/>
+    <enumeration value="WB"/>
+    <enumeration value="WCD"/>
+    <enumeration value="WE"/>
+    <enumeration value="WEB"/>
+    <enumeration value="WEE"/>
+    <enumeration value="WG"/>
+    <enumeration value="WHR"/>
+    <enumeration value="WM"/>
+    <enumeration value="WSD"/>
+    <enumeration value="WTT"/>
+    <enumeration value="X1"/>
+    <enumeration value="X1A"/>
+    <enumeration value="X1B"/>
+    <enumeration value="X1D"/>
+    <enumeration value="X1F"/>
+    <enumeration value="X1G"/>
+    <enumeration value="X1W"/>
+    <enumeration value="X2C"/>
+    <enumeration value="X3A"/>
+    <enumeration value="X3H"/>
+    <enumeration value="X43"/>
+    <enumeration value="X44"/>
+    <enumeration value="X4A"/>
+    <enumeration value="X4B"/>
+    <enumeration value="X4C"/>
+    <enumeration value="X4D"/>
+    <enumeration value="X4F"/>
+    <enumeration value="X4G"/>
+    <enumeration value="X4H"/>
+    <enumeration value="X5H"/>
+    <enumeration value="X5L"/>
+    <enumeration value="X5M"/>
+    <enumeration value="X6H"/>
+    <enumeration value="X6P"/>
+    <enumeration value="X7A"/>
+    <enumeration value="X7B"/>
+    <enumeration value="X8A"/>
+    <enumeration value="X8B"/>
+    <enumeration value="X8C"/>
+    <enumeration value="XAA"/>
+    <enumeration value="XAB"/>
+    <enumeration value="XAC"/>
+    <enumeration value="XAD"/>
+    <enumeration value="XAE"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAH"/>
+    <enumeration value="XAI"/>
+    <enumeration value="XAJ"/>
+    <enumeration value="XAL"/>
+    <enumeration value="XAM"/>
+    <enumeration value="XAP"/>
+    <enumeration value="XAT"/>
+    <enumeration value="XAV"/>
+    <enumeration value="XB4"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XBE"/>
+    <enumeration value="XBF"/>
+    <enumeration value="XBG"/>
+    <enumeration value="XBH"/>
+    <enumeration value="XBI"/>
+    <enumeration value="XBJ"/>
+    <enumeration value="XBK"/>
+    <enumeration value="XBL"/>
+    <enumeration value="XBM"/>
+    <enumeration value="XBN"/>
+    <enumeration value="XBO"/>
+    <enumeration value="XBP"/>
+    <enumeration value="XBQ"/>
+    <enumeration value="XBR"/>
+    <enumeration value="XBS"/>
+    <enumeration value="XBT"/>
+    <enumeration value="XBU"/>
+    <enumeration value="XBV"/>
+    <enumeration value="XBW"/>
+    <enumeration value="XBX"/>
+    <enumeration value="XBY"/>
+    <enumeration value="XBZ"/>
+    <enumeration value="XCA"/>
+    <enumeration value="XCB"/>
+    <enumeration value="XCC"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XCE"/>
+    <enumeration value="XCF"/>
+    <enumeration value="XCG"/>
+    <enumeration value="XCH"/>
+    <enumeration value="XCI"/>
+    <enumeration value="XCJ"/>
+    <enumeration value="XCK"/>
+    <enumeration value="XCL"/>
+    <enumeration value="XCM"/>
+    <enumeration value="XCN"/>
+    <enumeration value="XCO"/>
+    <enumeration value="XCP"/>
+    <enumeration value="XCQ"/>
+    <enumeration value="XCR"/>
+    <enumeration value="XCS"/>
+    <enumeration value="XCT"/>
+    <enumeration value="XCU"/>
+    <enumeration value="XCV"/>
+    <enumeration value="XCW"/>
+    <enumeration value="XCX"/>
+    <enumeration value="XCY"/>
+    <enumeration value="XCZ"/>
+    <enumeration value="XDA"/>
+    <enumeration value="XDB"/>
+    <enumeration value="XDC"/>
+    <enumeration value="XDG"/>
+    <enumeration value="XDH"/>
+    <enumeration value="XDI"/>
+    <enumeration value="XDJ"/>
+    <enumeration value="XDK"/>
+    <enumeration value="XDL"/>
+    <enumeration value="XDM"/>
+    <enumeration value="XDN"/>
+    <enumeration value="XDP"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XDS"/>
+    <enumeration value="XDT"/>
+    <enumeration value="XDU"/>
+    <enumeration value="XDV"/>
+    <enumeration value="XDW"/>
+    <enumeration value="XDX"/>
+    <enumeration value="XDY"/>
+    <enumeration value="XEC"/>
+    <enumeration value="XED"/>
+    <enumeration value="XEE"/>
+    <enumeration value="XEF"/>
+    <enumeration value="XEG"/>
+    <enumeration value="XEH"/>
+    <enumeration value="XEI"/>
+    <enumeration value="XEN"/>
+    <enumeration value="XFB"/>
+    <enumeration value="XFC"/>
+    <enumeration value="XFD"/>
+    <enumeration value="XFE"/>
+    <enumeration value="XFI"/>
+    <enumeration value="XFL"/>
+    <enumeration value="XFO"/>
+    <enumeration value="XFP"/>
+    <enumeration value="XFR"/>
+    <enumeration value="XFT"/>
+    <enumeration value="XFW"/>
+    <enumeration value="XFX"/>
+    <enumeration value="XGB"/>
+    <enumeration value="XGI"/>
+    <enumeration value="XGL"/>
+    <enumeration value="XGR"/>
+    <enumeration value="XGU"/>
+    <enumeration value="XGY"/>
+    <enumeration value="XGZ"/>
+    <enumeration value="XHA"/>
+    <enumeration value="XHB"/>
+    <enumeration value="XHC"/>
+    <enumeration value="XHG"/>
+    <enumeration value="XHN"/>
+    <enumeration value="XHR"/>
+    <enumeration value="XIA"/>
+    <enumeration value="XIB"/>
+    <enumeration value="XIC"/>
+    <enumeration value="XID"/>
+    <enumeration value="XIE"/>
+    <enumeration value="XIF"/>
+    <enumeration value="XIG"/>
+    <enumeration value="XIH"/>
+    <enumeration value="XIK"/>
+    <enumeration value="XIL"/>
+    <enumeration value="XIN"/>
+    <enumeration value="XIZ"/>
+    <enumeration value="XJB"/>
+    <enumeration value="XJC"/>
+    <enumeration value="XJG"/>
+    <enumeration value="XJR"/>
+    <enumeration value="XJT"/>
+    <enumeration value="XJY"/>
+    <enumeration value="XKG"/>
+    <enumeration value="XKI"/>
+    <enumeration value="XLE"/>
+    <enumeration value="XLG"/>
+    <enumeration value="XLT"/>
+    <enumeration value="XLU"/>
+    <enumeration value="XLV"/>
+    <enumeration value="XLZ"/>
+    <enumeration value="XMA"/>
+    <enumeration value="XMB"/>
+    <enumeration value="XMC"/>
+    <enumeration value="XME"/>
+    <enumeration value="XMR"/>
+    <enumeration value="XMS"/>
+    <enumeration value="XMT"/>
+    <enumeration value="XMW"/>
+    <enumeration value="XMX"/>
+    <enumeration value="XNA"/>
+    <enumeration value="XNE"/>
+    <enumeration value="XNF"/>
+    <enumeration value="XNG"/>
+    <enumeration value="XNS"/>
+    <enumeration value="XNT"/>
+    <enumeration value="XNU"/>
+    <enumeration value="XNV"/>
+    <enumeration value="XO1"/>
+    <enumeration value="XO2"/>
+    <enumeration value="XO3"/>
+    <enumeration value="XO4"/>
+    <enumeration value="XO5"/>
+    <enumeration value="XO6"/>
+    <enumeration value="XO7"/>
+    <enumeration value="XO8"/>
+    <enumeration value="XO9"/>
+    <enumeration value="XOA"/>
+    <enumeration value="XOB"/>
+    <enumeration value="XOC"/>
+    <enumeration value="XOD"/>
+    <enumeration value="XOE"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XOG"/>
+    <enumeration value="XOH"/>
+    <enumeration value="XOI"/>
+    <enumeration value="XOJ"/>
+    <enumeration value="XOK"/>
+    <enumeration value="XOL"/>
+    <enumeration value="XOM"/>
+    <enumeration value="XON"/>
+    <enumeration value="XOP"/>
+    <enumeration value="XOQ"/>
+    <enumeration value="XOR"/>
+    <enumeration value="XOS"/>
+    <enumeration value="XOT"/>
+    <enumeration value="XOU"/>
+    <enumeration value="XOV"/>
+    <enumeration value="XOW"/>
+    <enumeration value="XOX"/>
+    <enumeration value="XOY"/>
+    <enumeration value="XOZ"/>
+    <enumeration value="XP1"/>
+    <enumeration value="XP2"/>
+    <enumeration value="XP3"/>
+    <enumeration value="XP4"/>
+    <enumeration value="XPA"/>
+    <enumeration value="XPB"/>
+    <enumeration value="XPC"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPE"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPG"/>
+    <enumeration value="XPH"/>
+    <enumeration value="XPI"/>
+    <enumeration value="XPJ"/>
+    <enumeration value="XPK"/>
+    <enumeration value="XPL"/>
+    <enumeration value="XPN"/>
+    <enumeration value="XPO"/>
+    <enumeration value="XPP"/>
+    <enumeration value="XPR"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XPU"/>
+    <enumeration value="XPV"/>
+    <enumeration value="XPX"/>
+    <enumeration value="XPY"/>
+    <enumeration value="XPZ"/>
+    <enumeration value="XQA"/>
+    <enumeration value="XQB"/>
+    <enumeration value="XQC"/>
+    <enumeration value="XQD"/>
+    <enumeration value="XQF"/>
+    <enumeration value="XQG"/>
+    <enumeration value="XQH"/>
+    <enumeration value="XQJ"/>
+    <enumeration value="XQK"/>
+    <enumeration value="XQL"/>
+    <enumeration value="XQM"/>
+    <enumeration value="XQN"/>
+    <enumeration value="XQP"/>
+    <enumeration value="XQQ"/>
+    <enumeration value="XQR"/>
+    <enumeration value="XQS"/>
+    <enumeration value="XRD"/>
+    <enumeration value="XRG"/>
+    <enumeration value="XRJ"/>
+    <enumeration value="XRK"/>
+    <enumeration value="XRL"/>
+    <enumeration value="XRO"/>
+    <enumeration value="XRT"/>
+    <enumeration value="XRZ"/>
+    <enumeration value="XSA"/>
+    <enumeration value="XSB"/>
+    <enumeration value="XSC"/>
+    <enumeration value="XSD"/>
+    <enumeration value="XSE"/>
+    <enumeration value="XSH"/>
+    <enumeration value="XSI"/>
+    <enumeration value="XSK"/>
+    <enumeration value="XSL"/>
+    <enumeration value="XSM"/>
+    <enumeration value="XSO"/>
+    <enumeration value="XSP"/>
+    <enumeration value="XSS"/>
+    <enumeration value="XST"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XSV"/>
+    <enumeration value="XSW"/>
+    <enumeration value="XSX"/>
+    <enumeration value="XSY"/>
+    <enumeration value="XSZ"/>
+    <enumeration value="XT1"/>
+    <enumeration value="XTB"/>
+    <enumeration value="XTC"/>
+    <enumeration value="XTD"/>
+    <enumeration value="XTE"/>
+    <enumeration value="XTG"/>
+    <enumeration value="XTI"/>
+    <enumeration value="XTK"/>
+    <enumeration value="XTL"/>
+    <enumeration value="XTN"/>
+    <enumeration value="XTO"/>
+    <enumeration value="XTR"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XTT"/>
+    <enumeration value="XTU"/>
+    <enumeration value="XTV"/>
+    <enumeration value="XTW"/>
+    <enumeration value="XTY"/>
+    <enumeration value="XTZ"/>
+    <enumeration value="XUC"/>
+    <enumeration value="XUN"/>
+    <enumeration value="XVA"/>
+    <enumeration value="XVG"/>
+    <enumeration value="XVI"/>
+    <enumeration value="XVK"/>
+    <enumeration value="XVL"/>
+    <enumeration value="XVN"/>
+    <enumeration value="XVO"/>
+    <enumeration value="XVP"/>
+    <enumeration value="XVQ"/>
+    <enumeration value="XVR"/>
+    <enumeration value="XVS"/>
+    <enumeration value="XVY"/>
+    <enumeration value="XWA"/>
+    <enumeration value="XWB"/>
+    <enumeration value="XWC"/>
+    <enumeration value="XWD"/>
+    <enumeration value="XWF"/>
+    <enumeration value="XWG"/>
+    <enumeration value="XWH"/>
+    <enumeration value="XWJ"/>
+    <enumeration value="XWK"/>
+    <enumeration value="XWL"/>
+    <enumeration value="XWM"/>
+    <enumeration value="XWN"/>
+    <enumeration value="XWP"/>
+    <enumeration value="XWQ"/>
+    <enumeration value="XWR"/>
+    <enumeration value="XWS"/>
+    <enumeration value="XWT"/>
+    <enumeration value="XWU"/>
+    <enumeration value="XWV"/>
+    <enumeration value="XWW"/>
+    <enumeration value="XWX"/>
+    <enumeration value="XWY"/>
+    <enumeration value="XWZ"/>
+    <enumeration value="XXA"/>
+    <enumeration value="XXB"/>
+    <enumeration value="XXC"/>
+    <enumeration value="XXD"/>
+    <enumeration value="XXF"/>
+    <enumeration value="XXG"/>
+    <enumeration value="XXH"/>
+    <enumeration value="XXJ"/>
+    <enumeration value="XXK"/>
+    <enumeration value="XYA"/>
+    <enumeration value="XYB"/>
+    <enumeration value="XYC"/>
+    <enumeration value="XYD"/>
+    <enumeration value="XYF"/>
+    <enumeration value="XYG"/>
+    <enumeration value="XYH"/>
+    <enumeration value="XYJ"/>
+    <enumeration value="XYK"/>
+    <enumeration value="XYL"/>
+    <enumeration value="XYM"/>
+    <enumeration value="XYN"/>
+    <enumeration value="XYP"/>
+    <enumeration value="XYQ"/>
+    <enumeration value="XYR"/>
+    <enumeration value="XYS"/>
+    <enumeration value="XYT"/>
+    <enumeration value="XYV"/>
+    <enumeration value="XYW"/>
+    <enumeration value="XYX"/>
+    <enumeration value="XYY"/>
+    <enumeration value="XYZ"/>
+    <enumeration value="XZA"/>
+    <enumeration value="XZB"/>
+    <enumeration value="XZC"/>
+    <enumeration value="XZD"/>
+    <enumeration value="XZF"/>
+    <enumeration value="XZG"/>
+    <enumeration value="XZH"/>
+    <enumeration value="XZJ"/>
+    <enumeration value="XZK"/>
+    <enumeration value="XZL"/>
+    <enumeration value="XZM"/>
+    <enumeration value="XZN"/>
+    <enumeration value="XZP"/>
+    <enumeration value="XZQ"/>
+    <enumeration value="XZR"/>
+    <enumeration value="XZS"/>
+    <enumeration value="XZT"/>
+    <enumeration value="XZU"/>
+    <enumeration value="XZV"/>
+    <enumeration value="XZW"/>
+    <enumeration value="XZX"/>
+    <enumeration value="XZY"/>
+    <enumeration value="XZZ"/>
+    <enumeration value="YDK"/>
+    <enumeration value="YDQ"/>
+    <enumeration value="YRD"/>
+    <enumeration value="Z11"/>
+    <enumeration value="Z9"/>
+    <enumeration value="ZP"/>
+    <enumeration value="ZZ"/>
+  </cl>
+  <cl id="12">
+    <enumeration value="102"/>
+    <enumeration value="205"/>
+  </cl>
+  <cl id="13">
+    <enumeration value="50"/>
+    <enumeration value="130"/>
+    <enumeration value="916"/>
+  </cl>
+  <cl id="14">
+    <enumeration value="application/json"/>
+    <enumeration value="application/pdf"/>
+    <enumeration value="application/vnd.oasis.opendocument.spreadsheet"/>
+    <enumeration value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
+    <enumeration value="application/xml"/>
+    <enumeration value="image/jpeg"/>
+    <enumeration value="image/png"/>
+    <enumeration value="text/csv"/>
+    <enumeration value="text/xml"/>
+  </cl>
+  <cl id="15">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAN"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="AAQ"/>
+    <enumeration value="AAR"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAU"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAW"/>
+    <enumeration value="AAX"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABE"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABG"/>
+    <enumeration value="ABH"/>
+    <enumeration value="ABI"/>
+    <enumeration value="ABJ"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABM"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABO"/>
+    <enumeration value="ABP"/>
+    <enumeration value="ABQ"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ABV"/>
+    <enumeration value="ABW"/>
+    <enumeration value="ABX"/>
+    <enumeration value="ABY"/>
+    <enumeration value="ABZ"/>
+    <enumeration value="AC"/>
+    <enumeration value="ACA"/>
+    <enumeration value="ACB"/>
+    <enumeration value="ACC"/>
+    <enumeration value="ACD"/>
+    <enumeration value="ACE"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACN"/>
+    <enumeration value="ACO"/>
+    <enumeration value="ACP"/>
+    <enumeration value="ACQ"/>
+    <enumeration value="ACR"/>
+    <enumeration value="ACT"/>
+    <enumeration value="ACU"/>
+    <enumeration value="ACV"/>
+    <enumeration value="ACW"/>
+    <enumeration value="ACX"/>
+    <enumeration value="ACY"/>
+    <enumeration value="ACZ"/>
+    <enumeration value="ADA"/>
+    <enumeration value="ADB"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADD"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADF"/>
+    <enumeration value="ADG"/>
+    <enumeration value="ADI"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADU"/>
+    <enumeration value="ADV"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADX"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AE"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEE"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEG"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AEQ"/>
+    <enumeration value="AER"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AF"/>
+    <enumeration value="AFA"/>
+    <enumeration value="AFB"/>
+    <enumeration value="AFC"/>
+    <enumeration value="AFD"/>
+    <enumeration value="AFE"/>
+    <enumeration value="AFF"/>
+    <enumeration value="AFG"/>
+    <enumeration value="AFH"/>
+    <enumeration value="AFI"/>
+    <enumeration value="AFJ"/>
+    <enumeration value="AFK"/>
+    <enumeration value="AFL"/>
+    <enumeration value="AFM"/>
+    <enumeration value="AFN"/>
+    <enumeration value="AFO"/>
+    <enumeration value="AFP"/>
+    <enumeration value="AFQ"/>
+    <enumeration value="AFR"/>
+    <enumeration value="AFS"/>
+    <enumeration value="AFT"/>
+    <enumeration value="AFU"/>
+    <enumeration value="AFV"/>
+    <enumeration value="AFW"/>
+    <enumeration value="AFX"/>
+    <enumeration value="AFY"/>
+    <enumeration value="AFZ"/>
+    <enumeration value="AGA"/>
+    <enumeration value="AGB"/>
+    <enumeration value="AGC"/>
+    <enumeration value="AGD"/>
+    <enumeration value="AGE"/>
+    <enumeration value="AGF"/>
+    <enumeration value="AGG"/>
+    <enumeration value="AGH"/>
+    <enumeration value="AGI"/>
+    <enumeration value="AGJ"/>
+    <enumeration value="AGK"/>
+    <enumeration value="AGL"/>
+    <enumeration value="AGM"/>
+    <enumeration value="AGN"/>
+    <enumeration value="AGO"/>
+    <enumeration value="AGP"/>
+    <enumeration value="AGQ"/>
+    <enumeration value="AGR"/>
+    <enumeration value="AGS"/>
+    <enumeration value="AGT"/>
+    <enumeration value="AGU"/>
+    <enumeration value="AGV"/>
+    <enumeration value="AGW"/>
+    <enumeration value="AGX"/>
+    <enumeration value="AGY"/>
+    <enumeration value="AGZ"/>
+    <enumeration value="AHA"/>
+    <enumeration value="AHB"/>
+    <enumeration value="AHC"/>
+    <enumeration value="AHD"/>
+    <enumeration value="AHE"/>
+    <enumeration value="AHF"/>
+    <enumeration value="AHG"/>
+    <enumeration value="AHH"/>
+    <enumeration value="AHI"/>
+    <enumeration value="AHJ"/>
+    <enumeration value="AHK"/>
+    <enumeration value="AHL"/>
+    <enumeration value="AHM"/>
+    <enumeration value="AHN"/>
+    <enumeration value="AHO"/>
+    <enumeration value="AHP"/>
+    <enumeration value="AHQ"/>
+    <enumeration value="AHR"/>
+    <enumeration value="AHS"/>
+    <enumeration value="AHT"/>
+    <enumeration value="AHU"/>
+    <enumeration value="AHV"/>
+    <enumeration value="AHX"/>
+    <enumeration value="AHY"/>
+    <enumeration value="AHZ"/>
+    <enumeration value="AIA"/>
+    <enumeration value="AIB"/>
+    <enumeration value="AIC"/>
+    <enumeration value="AID"/>
+    <enumeration value="AIE"/>
+    <enumeration value="AIF"/>
+    <enumeration value="AIG"/>
+    <enumeration value="AIH"/>
+    <enumeration value="AII"/>
+    <enumeration value="AIJ"/>
+    <enumeration value="AIK"/>
+    <enumeration value="AIL"/>
+    <enumeration value="AIM"/>
+    <enumeration value="AIN"/>
+    <enumeration value="AIO"/>
+    <enumeration value="AIP"/>
+    <enumeration value="AIQ"/>
+    <enumeration value="AIR"/>
+    <enumeration value="AIS"/>
+    <enumeration value="AIT"/>
+    <enumeration value="AIU"/>
+    <enumeration value="AIV"/>
+    <enumeration value="AIW"/>
+    <enumeration value="AIX"/>
+    <enumeration value="AIY"/>
+    <enumeration value="AIZ"/>
+    <enumeration value="AJA"/>
+    <enumeration value="AJB"/>
+    <enumeration value="AJC"/>
+    <enumeration value="AJD"/>
+    <enumeration value="AJE"/>
+    <enumeration value="AJF"/>
+    <enumeration value="AJG"/>
+    <enumeration value="AJH"/>
+    <enumeration value="AJI"/>
+    <enumeration value="AJJ"/>
+    <enumeration value="AJK"/>
+    <enumeration value="AJL"/>
+    <enumeration value="AJM"/>
+    <enumeration value="AJN"/>
+    <enumeration value="AJO"/>
+    <enumeration value="AJP"/>
+    <enumeration value="AJQ"/>
+    <enumeration value="AJR"/>
+    <enumeration value="AJS"/>
+    <enumeration value="AJT"/>
+    <enumeration value="AJU"/>
+    <enumeration value="AJV"/>
+    <enumeration value="AJW"/>
+    <enumeration value="AJX"/>
+    <enumeration value="AJY"/>
+    <enumeration value="AJZ"/>
+    <enumeration value="AKA"/>
+    <enumeration value="AKB"/>
+    <enumeration value="AKC"/>
+    <enumeration value="AKD"/>
+    <enumeration value="AKE"/>
+    <enumeration value="AKF"/>
+    <enumeration value="AKG"/>
+    <enumeration value="AKH"/>
+    <enumeration value="AKI"/>
+    <enumeration value="AKJ"/>
+    <enumeration value="AKK"/>
+    <enumeration value="AKL"/>
+    <enumeration value="AKM"/>
+    <enumeration value="AKN"/>
+    <enumeration value="AKO"/>
+    <enumeration value="AKP"/>
+    <enumeration value="AKQ"/>
+    <enumeration value="AKR"/>
+    <enumeration value="AKS"/>
+    <enumeration value="AKT"/>
+    <enumeration value="AKU"/>
+    <enumeration value="AKV"/>
+    <enumeration value="AKW"/>
+    <enumeration value="AKX"/>
+    <enumeration value="AKY"/>
+    <enumeration value="AKZ"/>
+    <enumeration value="ALA"/>
+    <enumeration value="ALB"/>
+    <enumeration value="ALC"/>
+    <enumeration value="ALD"/>
+    <enumeration value="ALE"/>
+    <enumeration value="ALF"/>
+    <enumeration value="ALG"/>
+    <enumeration value="ALH"/>
+    <enumeration value="ALI"/>
+    <enumeration value="ALJ"/>
+    <enumeration value="ALK"/>
+    <enumeration value="ALL"/>
+    <enumeration value="ALM"/>
+    <enumeration value="ALN"/>
+    <enumeration value="ALO"/>
+    <enumeration value="ALP"/>
+    <enumeration value="ALQ"/>
+    <enumeration value="ALR"/>
+    <enumeration value="ALS"/>
+    <enumeration value="ALT"/>
+    <enumeration value="ALU"/>
+    <enumeration value="ALV"/>
+    <enumeration value="ALW"/>
+    <enumeration value="ALX"/>
+    <enumeration value="ALY"/>
+    <enumeration value="ALZ"/>
+    <enumeration value="AMA"/>
+    <enumeration value="AMB"/>
+    <enumeration value="AMC"/>
+    <enumeration value="AMD"/>
+    <enumeration value="AME"/>
+    <enumeration value="AMF"/>
+    <enumeration value="AMG"/>
+    <enumeration value="AMH"/>
+    <enumeration value="AMI"/>
+    <enumeration value="AMJ"/>
+    <enumeration value="AMK"/>
+    <enumeration value="AML"/>
+    <enumeration value="AMM"/>
+    <enumeration value="AMN"/>
+    <enumeration value="AMO"/>
+    <enumeration value="AMP"/>
+    <enumeration value="AMQ"/>
+    <enumeration value="AMR"/>
+    <enumeration value="AMS"/>
+    <enumeration value="AMT"/>
+    <enumeration value="AMU"/>
+    <enumeration value="AMV"/>
+    <enumeration value="AMW"/>
+    <enumeration value="AMX"/>
+    <enumeration value="AMY"/>
+    <enumeration value="AMZ"/>
+    <enumeration value="ANA"/>
+    <enumeration value="ANB"/>
+    <enumeration value="ANC"/>
+    <enumeration value="AND"/>
+    <enumeration value="ANE"/>
+    <enumeration value="ANF"/>
+    <enumeration value="ANG"/>
+    <enumeration value="ANH"/>
+    <enumeration value="ANI"/>
+    <enumeration value="ANJ"/>
+    <enumeration value="ANK"/>
+    <enumeration value="ANL"/>
+    <enumeration value="ANM"/>
+    <enumeration value="ANN"/>
+    <enumeration value="ANO"/>
+    <enumeration value="ANP"/>
+    <enumeration value="ANQ"/>
+    <enumeration value="ANR"/>
+    <enumeration value="ANS"/>
+    <enumeration value="ANT"/>
+    <enumeration value="ANU"/>
+    <enumeration value="ANV"/>
+    <enumeration value="ANW"/>
+    <enumeration value="ANX"/>
+    <enumeration value="ANY"/>
+    <enumeration value="AOA"/>
+    <enumeration value="AOD"/>
+    <enumeration value="AOE"/>
+    <enumeration value="AOF"/>
+    <enumeration value="AOG"/>
+    <enumeration value="AOH"/>
+    <enumeration value="AOI"/>
+    <enumeration value="AOJ"/>
+    <enumeration value="AOK"/>
+    <enumeration value="AOL"/>
+    <enumeration value="AOM"/>
+    <enumeration value="AON"/>
+    <enumeration value="AOO"/>
+    <enumeration value="AOP"/>
+    <enumeration value="AOQ"/>
+    <enumeration value="AOR"/>
+    <enumeration value="AOS"/>
+    <enumeration value="AOT"/>
+    <enumeration value="AOU"/>
+    <enumeration value="AOV"/>
+    <enumeration value="AOW"/>
+    <enumeration value="AOX"/>
+    <enumeration value="AOY"/>
+    <enumeration value="AOZ"/>
+    <enumeration value="AP"/>
+    <enumeration value="APA"/>
+    <enumeration value="APB"/>
+    <enumeration value="APC"/>
+    <enumeration value="APD"/>
+    <enumeration value="APE"/>
+    <enumeration value="APF"/>
+    <enumeration value="APG"/>
+    <enumeration value="APH"/>
+    <enumeration value="API"/>
+    <enumeration value="APJ"/>
+    <enumeration value="APK"/>
+    <enumeration value="APL"/>
+    <enumeration value="APM"/>
+    <enumeration value="APN"/>
+    <enumeration value="APO"/>
+    <enumeration value="APP"/>
+    <enumeration value="APQ"/>
+    <enumeration value="APR"/>
+    <enumeration value="APS"/>
+    <enumeration value="APT"/>
+    <enumeration value="APU"/>
+    <enumeration value="APV"/>
+    <enumeration value="APW"/>
+    <enumeration value="APX"/>
+    <enumeration value="APY"/>
+    <enumeration value="APZ"/>
+    <enumeration value="AQA"/>
+    <enumeration value="AQB"/>
+    <enumeration value="AQC"/>
+    <enumeration value="AQD"/>
+    <enumeration value="AQE"/>
+    <enumeration value="AQF"/>
+    <enumeration value="AQG"/>
+    <enumeration value="AQH"/>
+    <enumeration value="AQI"/>
+    <enumeration value="AQJ"/>
+    <enumeration value="AQK"/>
+    <enumeration value="AQL"/>
+    <enumeration value="AQM"/>
+    <enumeration value="AQN"/>
+    <enumeration value="AQO"/>
+    <enumeration value="AQP"/>
+    <enumeration value="AQQ"/>
+    <enumeration value="AQR"/>
+    <enumeration value="AQS"/>
+    <enumeration value="AQT"/>
+    <enumeration value="AQU"/>
+    <enumeration value="AQV"/>
+    <enumeration value="AQW"/>
+    <enumeration value="AQX"/>
+    <enumeration value="AQY"/>
+    <enumeration value="AQZ"/>
+    <enumeration value="ARA"/>
+    <enumeration value="ARB"/>
+    <enumeration value="ARC"/>
+    <enumeration value="ARD"/>
+    <enumeration value="ARE"/>
+    <enumeration value="ARF"/>
+    <enumeration value="ARG"/>
+    <enumeration value="ARH"/>
+    <enumeration value="ARI"/>
+    <enumeration value="ARJ"/>
+    <enumeration value="ARK"/>
+    <enumeration value="ARL"/>
+    <enumeration value="ARM"/>
+    <enumeration value="ARN"/>
+    <enumeration value="ARO"/>
+    <enumeration value="ARP"/>
+    <enumeration value="ARQ"/>
+    <enumeration value="ARR"/>
+    <enumeration value="ARS"/>
+    <enumeration value="ART"/>
+    <enumeration value="ARU"/>
+    <enumeration value="ARV"/>
+    <enumeration value="ARW"/>
+    <enumeration value="ARX"/>
+    <enumeration value="ARY"/>
+    <enumeration value="ARZ"/>
+    <enumeration value="ASA"/>
+    <enumeration value="ASB"/>
+    <enumeration value="ASC"/>
+    <enumeration value="ASD"/>
+    <enumeration value="ASE"/>
+    <enumeration value="ASF"/>
+    <enumeration value="ASG"/>
+    <enumeration value="ASH"/>
+    <enumeration value="ASI"/>
+    <enumeration value="ASJ"/>
+    <enumeration value="ASK"/>
+    <enumeration value="ASL"/>
+    <enumeration value="ASM"/>
+    <enumeration value="ASN"/>
+    <enumeration value="ASO"/>
+    <enumeration value="ASP"/>
+    <enumeration value="ASQ"/>
+    <enumeration value="ASR"/>
+    <enumeration value="ASS"/>
+    <enumeration value="AST"/>
+    <enumeration value="ASU"/>
+    <enumeration value="ASV"/>
+    <enumeration value="ASW"/>
+    <enumeration value="ASX"/>
+    <enumeration value="ASY"/>
+    <enumeration value="ASZ"/>
+    <enumeration value="ATA"/>
+    <enumeration value="ATB"/>
+    <enumeration value="ATC"/>
+    <enumeration value="ATD"/>
+    <enumeration value="ATE"/>
+    <enumeration value="ATF"/>
+    <enumeration value="ATG"/>
+    <enumeration value="ATH"/>
+    <enumeration value="ATI"/>
+    <enumeration value="ATJ"/>
+    <enumeration value="ATK"/>
+    <enumeration value="ATL"/>
+    <enumeration value="ATM"/>
+    <enumeration value="ATN"/>
+    <enumeration value="ATO"/>
+    <enumeration value="ATP"/>
+    <enumeration value="ATQ"/>
+    <enumeration value="ATR"/>
+    <enumeration value="ATS"/>
+    <enumeration value="ATT"/>
+    <enumeration value="ATU"/>
+    <enumeration value="ATV"/>
+    <enumeration value="ATW"/>
+    <enumeration value="ATX"/>
+    <enumeration value="ATY"/>
+    <enumeration value="ATZ"/>
+    <enumeration value="AU"/>
+    <enumeration value="AUA"/>
+    <enumeration value="AUB"/>
+    <enumeration value="AUC"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AUE"/>
+    <enumeration value="AUF"/>
+    <enumeration value="AUG"/>
+    <enumeration value="AUH"/>
+    <enumeration value="AUI"/>
+    <enumeration value="AUJ"/>
+    <enumeration value="AUK"/>
+    <enumeration value="AUL"/>
+    <enumeration value="AUM"/>
+    <enumeration value="AUN"/>
+    <enumeration value="AUO"/>
+    <enumeration value="AUP"/>
+    <enumeration value="AUQ"/>
+    <enumeration value="AUR"/>
+    <enumeration value="AUS"/>
+    <enumeration value="AUT"/>
+    <enumeration value="AUU"/>
+    <enumeration value="AUV"/>
+    <enumeration value="AUW"/>
+    <enumeration value="AUX"/>
+    <enumeration value="AUY"/>
+    <enumeration value="AUZ"/>
+    <enumeration value="AV"/>
+    <enumeration value="AVA"/>
+    <enumeration value="AVB"/>
+    <enumeration value="AVC"/>
+    <enumeration value="AVD"/>
+    <enumeration value="AVE"/>
+    <enumeration value="AVF"/>
+    <enumeration value="AVG"/>
+    <enumeration value="AVH"/>
+    <enumeration value="AVI"/>
+    <enumeration value="AVJ"/>
+    <enumeration value="AVK"/>
+    <enumeration value="AVL"/>
+    <enumeration value="AVM"/>
+    <enumeration value="AVN"/>
+    <enumeration value="AVO"/>
+    <enumeration value="AVP"/>
+    <enumeration value="AVQ"/>
+    <enumeration value="AVR"/>
+    <enumeration value="AVS"/>
+    <enumeration value="AVT"/>
+    <enumeration value="AVU"/>
+    <enumeration value="AVV"/>
+    <enumeration value="AVW"/>
+    <enumeration value="AVX"/>
+    <enumeration value="AVY"/>
+    <enumeration value="AVZ"/>
+    <enumeration value="AWA"/>
+    <enumeration value="AWB"/>
+    <enumeration value="AWC"/>
+    <enumeration value="AWD"/>
+    <enumeration value="AWE"/>
+    <enumeration value="AWF"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AWH"/>
+    <enumeration value="AWI"/>
+    <enumeration value="AWJ"/>
+    <enumeration value="AWK"/>
+    <enumeration value="AWL"/>
+    <enumeration value="AWM"/>
+    <enumeration value="AWN"/>
+    <enumeration value="AWO"/>
+    <enumeration value="AWP"/>
+    <enumeration value="AWQ"/>
+    <enumeration value="AWR"/>
+    <enumeration value="AWS"/>
+    <enumeration value="AWT"/>
+    <enumeration value="AWU"/>
+    <enumeration value="AWV"/>
+    <enumeration value="AWW"/>
+    <enumeration value="AWX"/>
+    <enumeration value="AWY"/>
+    <enumeration value="AWZ"/>
+    <enumeration value="AXA"/>
+    <enumeration value="AXB"/>
+    <enumeration value="AXC"/>
+    <enumeration value="AXD"/>
+    <enumeration value="AXE"/>
+    <enumeration value="AXF"/>
+    <enumeration value="AXG"/>
+    <enumeration value="AXH"/>
+    <enumeration value="AXI"/>
+    <enumeration value="AXJ"/>
+    <enumeration value="AXK"/>
+    <enumeration value="AXL"/>
+    <enumeration value="AXM"/>
+    <enumeration value="AXN"/>
+    <enumeration value="AXO"/>
+    <enumeration value="AXP"/>
+    <enumeration value="AXQ"/>
+    <enumeration value="AXR"/>
+    <enumeration value="AXS"/>
+    <enumeration value="BA"/>
+    <enumeration value="BC"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BH"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BR"/>
+    <enumeration value="BT"/>
+    <enumeration value="BTP"/>
+    <enumeration value="BW"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CBA"/>
+    <enumeration value="CBB"/>
+    <enumeration value="CD"/>
+    <enumeration value="CEC"/>
+    <enumeration value="CED"/>
+    <enumeration value="CFE"/>
+    <enumeration value="CFF"/>
+    <enumeration value="CFO"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CK"/>
+    <enumeration value="CKN"/>
+    <enumeration value="CM"/>
+    <enumeration value="CMR"/>
+    <enumeration value="CN"/>
+    <enumeration value="CNO"/>
+    <enumeration value="COF"/>
+    <enumeration value="CP"/>
+    <enumeration value="CR"/>
+    <enumeration value="CRN"/>
+    <enumeration value="CS"/>
+    <enumeration value="CST"/>
+    <enumeration value="CT"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DA"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DB"/>
+    <enumeration value="DI"/>
+    <enumeration value="DL"/>
+    <enumeration value="DM"/>
+    <enumeration value="DQ"/>
+    <enumeration value="DR"/>
+    <enumeration value="EA"/>
+    <enumeration value="EB"/>
+    <enumeration value="ED"/>
+    <enumeration value="EE"/>
+    <enumeration value="EEP"/>
+    <enumeration value="EI"/>
+    <enumeration value="EN"/>
+    <enumeration value="EQ"/>
+    <enumeration value="ER"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ET"/>
+    <enumeration value="EX"/>
+    <enumeration value="FC"/>
+    <enumeration value="FF"/>
+    <enumeration value="FI"/>
+    <enumeration value="FLW"/>
+    <enumeration value="FN"/>
+    <enumeration value="FO"/>
+    <enumeration value="FS"/>
+    <enumeration value="FT"/>
+    <enumeration value="FV"/>
+    <enumeration value="FX"/>
+    <enumeration value="GA"/>
+    <enumeration value="GC"/>
+    <enumeration value="GD"/>
+    <enumeration value="GDN"/>
+    <enumeration value="GN"/>
+    <enumeration value="HS"/>
+    <enumeration value="HWB"/>
+    <enumeration value="IA"/>
+    <enumeration value="IB"/>
+    <enumeration value="ICA"/>
+    <enumeration value="ICE"/>
+    <enumeration value="ICO"/>
+    <enumeration value="II"/>
+    <enumeration value="IL"/>
+    <enumeration value="INB"/>
+    <enumeration value="INN"/>
+    <enumeration value="INO"/>
+    <enumeration value="IP"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="IV"/>
+    <enumeration value="JB"/>
+    <enumeration value="JE"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAN"/>
+    <enumeration value="LAR"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LO"/>
+    <enumeration value="LRC"/>
+    <enumeration value="LS"/>
+    <enumeration value="MA"/>
+    <enumeration value="MB"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MR"/>
+    <enumeration value="MRN"/>
+    <enumeration value="MS"/>
+    <enumeration value="MSS"/>
+    <enumeration value="MWB"/>
+    <enumeration value="NA"/>
+    <enumeration value="NF"/>
+    <enumeration value="OH"/>
+    <enumeration value="OI"/>
+    <enumeration value="ON"/>
+    <enumeration value="OP"/>
+    <enumeration value="OR"/>
+    <enumeration value="PB"/>
+    <enumeration value="PC"/>
+    <enumeration value="PD"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PI"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="POR"/>
+    <enumeration value="PP"/>
+    <enumeration value="PQ"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="RA"/>
+    <enumeration value="RC"/>
+    <enumeration value="RCN"/>
+    <enumeration value="RE"/>
+    <enumeration value="REN"/>
+    <enumeration value="RF"/>
+    <enumeration value="RR"/>
+    <enumeration value="RT"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SEA"/>
+    <enumeration value="SF"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SP"/>
+    <enumeration value="SQ"/>
+    <enumeration value="SRN"/>
+    <enumeration value="SS"/>
+    <enumeration value="STA"/>
+    <enumeration value="SW"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TB"/>
+    <enumeration value="TCR"/>
+    <enumeration value="TE"/>
+    <enumeration value="TF"/>
+    <enumeration value="TI"/>
+    <enumeration value="TIN"/>
+    <enumeration value="TL"/>
+    <enumeration value="TN"/>
+    <enumeration value="TP"/>
+    <enumeration value="UAR"/>
+    <enumeration value="UC"/>
+    <enumeration value="UCN"/>
+    <enumeration value="UN"/>
+    <enumeration value="UO"/>
+    <enumeration value="URI"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VGR"/>
+    <enumeration value="VM"/>
+    <enumeration value="VN"/>
+    <enumeration value="VON"/>
+    <enumeration value="VOR"/>
+    <enumeration value="VP"/>
+    <enumeration value="VR"/>
+    <enumeration value="VS"/>
+    <enumeration value="VT"/>
+    <enumeration value="VV"/>
+    <enumeration value="WE"/>
+    <enumeration value="WM"/>
+    <enumeration value="WN"/>
+    <enumeration value="WR"/>
+    <enumeration value="WS"/>
+    <enumeration value="WY"/>
+    <enumeration value="XA"/>
+    <enumeration value="XC"/>
+    <enumeration value="XP"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="16">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="17">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="18">
+    <enumeration value="VAT"/>
+  </cl>
+  <cl id="19">
+    <enumeration value="AE"/>
+    <enumeration value="B"/>
+    <enumeration value="E"/>
+    <enumeration value="G"/>
+    <enumeration value="K"/>
+    <enumeration value="L"/>
+    <enumeration value="M"/>
+    <enumeration value="O"/>
+    <enumeration value="S"/>
+    <enumeration value="Z"/>
+  </cl>
+  <cl id="20">
+    <enumeration value="VATEX-EU-132"/>
+    <enumeration value="VATEX-EU-132-1A"/>
+    <enumeration value="VATEX-EU-132-1B"/>
+    <enumeration value="VATEX-EU-132-1C"/>
+    <enumeration value="VATEX-EU-132-1D"/>
+    <enumeration value="VATEX-EU-132-1E"/>
+    <enumeration value="VATEX-EU-132-1F"/>
+    <enumeration value="VATEX-EU-132-1G"/>
+    <enumeration value="VATEX-EU-132-1H"/>
+    <enumeration value="VATEX-EU-132-1I"/>
+    <enumeration value="VATEX-EU-132-1J"/>
+    <enumeration value="VATEX-EU-132-1K"/>
+    <enumeration value="VATEX-EU-132-1L"/>
+    <enumeration value="VATEX-EU-132-1M"/>
+    <enumeration value="VATEX-EU-132-1N"/>
+    <enumeration value="VATEX-EU-132-1O"/>
+    <enumeration value="VATEX-EU-132-1P"/>
+    <enumeration value="VATEX-EU-132-1Q"/>
+    <enumeration value="VATEX-EU-143"/>
+    <enumeration value="VATEX-EU-143-1A"/>
+    <enumeration value="VATEX-EU-143-1B"/>
+    <enumeration value="VATEX-EU-143-1C"/>
+    <enumeration value="VATEX-EU-143-1D"/>
+    <enumeration value="VATEX-EU-143-1E"/>
+    <enumeration value="VATEX-EU-143-1F"/>
+    <enumeration value="VATEX-EU-143-1FA"/>
+    <enumeration value="VATEX-EU-143-1G"/>
+    <enumeration value="VATEX-EU-143-1H"/>
+    <enumeration value="VATEX-EU-143-1I"/>
+    <enumeration value="VATEX-EU-143-1J"/>
+    <enumeration value="VATEX-EU-143-1K"/>
+    <enumeration value="VATEX-EU-143-1L"/>
+    <enumeration value="VATEX-EU-144"/>
+    <enumeration value="VATEX-EU-146-1E"/>
+    <enumeration value="VATEX-EU-148"/>
+    <enumeration value="VATEX-EU-148-A"/>
+    <enumeration value="VATEX-EU-148-B"/>
+    <enumeration value="VATEX-EU-148-C"/>
+    <enumeration value="VATEX-EU-148-D"/>
+    <enumeration value="VATEX-EU-148-E"/>
+    <enumeration value="VATEX-EU-148-F"/>
+    <enumeration value="VATEX-EU-148-G"/>
+    <enumeration value="VATEX-EU-151"/>
+    <enumeration value="VATEX-EU-151-1A"/>
+    <enumeration value="VATEX-EU-151-1AA"/>
+    <enumeration value="VATEX-EU-151-1B"/>
+    <enumeration value="VATEX-EU-151-1C"/>
+    <enumeration value="VATEX-EU-151-1D"/>
+    <enumeration value="VATEX-EU-151-1E"/>
+    <enumeration value="VATEX-EU-159"/>
+    <enumeration value="VATEX-EU-309"/>
+    <enumeration value="VATEX-EU-79-C"/>
+    <enumeration value="VATEX-EU-AE"/>
+    <enumeration value="VATEX-EU-D"/>
+    <enumeration value="VATEX-EU-F"/>
+    <enumeration value="VATEX-EU-G"/>
+    <enumeration value="VATEX-EU-I"/>
+    <enumeration value="VATEX-EU-IC"/>
+    <enumeration value="VATEX-EU-J"/>
+    <enumeration value="VATEX-EU-O"/>
+    <enumeration value="VATEX-FR-CNWVAT"/>
+    <enumeration value="VATEX-FR-FRANCHISE"/>
+  </cl>
+  <cl id="21">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="22">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="23">
+    <enumeration value="0002"/>
+    <enumeration value="0007"/>
+    <enumeration value="0009"/>
+    <enumeration value="0037"/>
+    <enumeration value="0060"/>
+    <enumeration value="0088"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0106"/>
+    <enumeration value="0130"/>
+    <enumeration value="0135"/>
+    <enumeration value="0142"/>
+    <enumeration value="0147"/>
+    <enumeration value="0151"/>
+    <enumeration value="0170"/>
+    <enumeration value="0177"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0188"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0221"/>
+    <enumeration value="0225"/>
+    <enumeration value="0230"/>
+    <enumeration value="0235"/>
+    <enumeration value="9901"/>
+    <enumeration value="9910"/>
+    <enumeration value="9913"/>
+    <enumeration value="9914"/>
+    <enumeration value="9915"/>
+    <enumeration value="9918"/>
+    <enumeration value="9919"/>
+    <enumeration value="9920"/>
+    <enumeration value="9922"/>
+    <enumeration value="9923"/>
+    <enumeration value="9924"/>
+    <enumeration value="9925"/>
+    <enumeration value="9926"/>
+    <enumeration value="9927"/>
+    <enumeration value="9928"/>
+    <enumeration value="9929"/>
+    <enumeration value="9930"/>
+    <enumeration value="9931"/>
+    <enumeration value="9932"/>
+    <enumeration value="9933"/>
+    <enumeration value="9934"/>
+    <enumeration value="9935"/>
+    <enumeration value="9936"/>
+    <enumeration value="9937"/>
+    <enumeration value="9938"/>
+    <enumeration value="9939"/>
+    <enumeration value="9940"/>
+    <enumeration value="9941"/>
+    <enumeration value="9942"/>
+    <enumeration value="9943"/>
+    <enumeration value="9944"/>
+    <enumeration value="9945"/>
+    <enumeration value="9946"/>
+    <enumeration value="9947"/>
+    <enumeration value="9948"/>
+    <enumeration value="9949"/>
+    <enumeration value="9950"/>
+    <enumeration value="9951"/>
+    <enumeration value="9952"/>
+    <enumeration value="9953"/>
+    <enumeration value="9957"/>
+    <enumeration value="9959"/>
+    <enumeration value="AN"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AS"/>
+    <enumeration value="AU"/>
+    <enumeration value="EM"/>
+  </cl>
+  <cl id="24">
+    <enumeration value="AAA"/>
+    <enumeration value="AAB"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAG"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAJ"/>
+    <enumeration value="AAK"/>
+    <enumeration value="AAL"/>
+    <enumeration value="AAM"/>
+    <enumeration value="AAO"/>
+    <enumeration value="AAP"/>
+    <enumeration value="ADD"/>
+    <enumeration value="BOL"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAR"/>
+    <enumeration value="COC"/>
+    <enumeration value="CST"/>
+    <enumeration value="CUD"/>
+    <enumeration value="CVD"/>
+    <enumeration value="ENV"/>
+    <enumeration value="EXC"/>
+    <enumeration value="EXP"/>
+    <enumeration value="FET"/>
+    <enumeration value="FRE"/>
+    <enumeration value="GCN"/>
+    <enumeration value="GST"/>
+    <enumeration value="ILL"/>
+    <enumeration value="IMP"/>
+    <enumeration value="IND"/>
+    <enumeration value="LAC"/>
+    <enumeration value="LCN"/>
+    <enumeration value="LDP"/>
+    <enumeration value="LOC"/>
+    <enumeration value="LST"/>
+    <enumeration value="MCA"/>
+    <enumeration value="MCD"/>
+    <enumeration value="OTH"/>
+    <enumeration value="PDB"/>
+    <enumeration value="PDC"/>
+    <enumeration value="PRF"/>
+    <enumeration value="SCN"/>
+    <enumeration value="SSS"/>
+    <enumeration value="STT"/>
+    <enumeration value="SUP"/>
+    <enumeration value="SUR"/>
+    <enumeration value="SWT"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TOT"/>
+    <enumeration value="TOX"/>
+    <enumeration value="TTA"/>
+    <enumeration value="VAD"/>
+    <enumeration value="VAT"/>
+  </cl>
+  <cl id="25">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="26">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="27">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="28">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="29">
+    <enumeration value="VA"/>
+  </cl>
+  <cl id="30">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="CFR"/>
+    <enumeration value="CIF"/>
+    <enumeration value="CIP"/>
+    <enumeration value="CPT"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DDP"/>
+    <enumeration value="DPU"/>
+    <enumeration value="EXW"/>
+    <enumeration value="FAS"/>
+    <enumeration value="FCA"/>
+    <enumeration value="FOB"/>
+  </cl>
+  <cl id="31">
+    <enumeration value="916"/>
+  </cl>
+  <cl id="32">
+    <enumeration value="50"/>
+  </cl>
+  <cl id="33">
+    <enumeration value="130"/>
+  </cl>
+  <cl id="34">
+    <enumeration value="0"/>
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+  </cl>
+  <cl id="35">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="36">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+    <enumeration value="8"/>
+    <enumeration value="9"/>
+    <enumeration value="10"/>
+    <enumeration value="11"/>
+    <enumeration value="12"/>
+    <enumeration value="13"/>
+    <enumeration value="14"/>
+    <enumeration value="15"/>
+    <enumeration value="16"/>
+    <enumeration value="17"/>
+    <enumeration value="18"/>
+    <enumeration value="19"/>
+    <enumeration value="20"/>
+    <enumeration value="21"/>
+    <enumeration value="22"/>
+    <enumeration value="23"/>
+    <enumeration value="24"/>
+    <enumeration value="25"/>
+    <enumeration value="26"/>
+    <enumeration value="27"/>
+    <enumeration value="28"/>
+    <enumeration value="29"/>
+    <enumeration value="30"/>
+    <enumeration value="31"/>
+    <enumeration value="32"/>
+    <enumeration value="33"/>
+    <enumeration value="34"/>
+    <enumeration value="35"/>
+    <enumeration value="36"/>
+    <enumeration value="37"/>
+    <enumeration value="38"/>
+    <enumeration value="39"/>
+    <enumeration value="40"/>
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="43"/>
+    <enumeration value="44"/>
+    <enumeration value="45"/>
+    <enumeration value="46"/>
+    <enumeration value="47"/>
+    <enumeration value="48"/>
+    <enumeration value="49"/>
+    <enumeration value="50"/>
+    <enumeration value="51"/>
+    <enumeration value="52"/>
+    <enumeration value="53"/>
+    <enumeration value="54"/>
+    <enumeration value="55"/>
+    <enumeration value="56"/>
+    <enumeration value="57"/>
+    <enumeration value="58"/>
+    <enumeration value="59"/>
+    <enumeration value="60"/>
+    <enumeration value="61"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="69"/>
+    <enumeration value="70"/>
+    <enumeration value="74"/>
+    <enumeration value="75"/>
+    <enumeration value="76"/>
+    <enumeration value="77"/>
+    <enumeration value="78"/>
+    <enumeration value="91"/>
+    <enumeration value="92"/>
+    <enumeration value="93"/>
+    <enumeration value="94"/>
+    <enumeration value="95"/>
+    <enumeration value="96"/>
+    <enumeration value="97"/>
+    <enumeration value="98"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="37">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="38">
+    <enumeration value="5"/>
+    <enumeration value="29"/>
+    <enumeration value="72"/>
+  </cl>
+  <cl id="39">
+    <enumeration value="41"/>
+    <enumeration value="42"/>
+    <enumeration value="60"/>
+    <enumeration value="62"/>
+    <enumeration value="63"/>
+    <enumeration value="64"/>
+    <enumeration value="65"/>
+    <enumeration value="66"/>
+    <enumeration value="67"/>
+    <enumeration value="68"/>
+    <enumeration value="70"/>
+    <enumeration value="71"/>
+    <enumeration value="88"/>
+    <enumeration value="95"/>
+    <enumeration value="100"/>
+    <enumeration value="102"/>
+    <enumeration value="103"/>
+    <enumeration value="104"/>
+    <enumeration value="105"/>
+  </cl>
+  <cl id="40">
+    <enumeration value="AA"/>
+    <enumeration value="AAA"/>
+    <enumeration value="AAC"/>
+    <enumeration value="AAD"/>
+    <enumeration value="AAE"/>
+    <enumeration value="AAF"/>
+    <enumeration value="AAH"/>
+    <enumeration value="AAI"/>
+    <enumeration value="AAS"/>
+    <enumeration value="AAT"/>
+    <enumeration value="AAV"/>
+    <enumeration value="AAY"/>
+    <enumeration value="AAZ"/>
+    <enumeration value="ABA"/>
+    <enumeration value="ABB"/>
+    <enumeration value="ABC"/>
+    <enumeration value="ABD"/>
+    <enumeration value="ABF"/>
+    <enumeration value="ABK"/>
+    <enumeration value="ABL"/>
+    <enumeration value="ABN"/>
+    <enumeration value="ABR"/>
+    <enumeration value="ABS"/>
+    <enumeration value="ABT"/>
+    <enumeration value="ABU"/>
+    <enumeration value="ACF"/>
+    <enumeration value="ACG"/>
+    <enumeration value="ACH"/>
+    <enumeration value="ACI"/>
+    <enumeration value="ACJ"/>
+    <enumeration value="ACK"/>
+    <enumeration value="ACL"/>
+    <enumeration value="ACM"/>
+    <enumeration value="ACS"/>
+    <enumeration value="ADC"/>
+    <enumeration value="ADE"/>
+    <enumeration value="ADJ"/>
+    <enumeration value="ADK"/>
+    <enumeration value="ADL"/>
+    <enumeration value="ADM"/>
+    <enumeration value="ADN"/>
+    <enumeration value="ADO"/>
+    <enumeration value="ADP"/>
+    <enumeration value="ADQ"/>
+    <enumeration value="ADR"/>
+    <enumeration value="ADT"/>
+    <enumeration value="ADW"/>
+    <enumeration value="ADY"/>
+    <enumeration value="ADZ"/>
+    <enumeration value="AEA"/>
+    <enumeration value="AEB"/>
+    <enumeration value="AEC"/>
+    <enumeration value="AED"/>
+    <enumeration value="AEF"/>
+    <enumeration value="AEH"/>
+    <enumeration value="AEI"/>
+    <enumeration value="AEJ"/>
+    <enumeration value="AEK"/>
+    <enumeration value="AEL"/>
+    <enumeration value="AEM"/>
+    <enumeration value="AEN"/>
+    <enumeration value="AEO"/>
+    <enumeration value="AEP"/>
+    <enumeration value="AES"/>
+    <enumeration value="AET"/>
+    <enumeration value="AEU"/>
+    <enumeration value="AEV"/>
+    <enumeration value="AEW"/>
+    <enumeration value="AEX"/>
+    <enumeration value="AEY"/>
+    <enumeration value="AEZ"/>
+    <enumeration value="AJ"/>
+    <enumeration value="AU"/>
+    <enumeration value="CA"/>
+    <enumeration value="CAB"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CAE"/>
+    <enumeration value="CAF"/>
+    <enumeration value="CAI"/>
+    <enumeration value="CAJ"/>
+    <enumeration value="CAK"/>
+    <enumeration value="CAL"/>
+    <enumeration value="CAM"/>
+    <enumeration value="CAN"/>
+    <enumeration value="CAO"/>
+    <enumeration value="CAP"/>
+    <enumeration value="CAQ"/>
+    <enumeration value="CAR"/>
+    <enumeration value="CAS"/>
+    <enumeration value="CAT"/>
+    <enumeration value="CAU"/>
+    <enumeration value="CAV"/>
+    <enumeration value="CAW"/>
+    <enumeration value="CAX"/>
+    <enumeration value="CAY"/>
+    <enumeration value="CAZ"/>
+    <enumeration value="CD"/>
+    <enumeration value="CG"/>
+    <enumeration value="CS"/>
+    <enumeration value="CT"/>
+    <enumeration value="DAB"/>
+    <enumeration value="DAC"/>
+    <enumeration value="DAD"/>
+    <enumeration value="DAF"/>
+    <enumeration value="DAG"/>
+    <enumeration value="DAH"/>
+    <enumeration value="DAI"/>
+    <enumeration value="DAJ"/>
+    <enumeration value="DAK"/>
+    <enumeration value="DAL"/>
+    <enumeration value="DAM"/>
+    <enumeration value="DAN"/>
+    <enumeration value="DAO"/>
+    <enumeration value="DAP"/>
+    <enumeration value="DAQ"/>
+    <enumeration value="DL"/>
+    <enumeration value="EG"/>
+    <enumeration value="EP"/>
+    <enumeration value="ER"/>
+    <enumeration value="FAA"/>
+    <enumeration value="FAB"/>
+    <enumeration value="FAC"/>
+    <enumeration value="FC"/>
+    <enumeration value="FH"/>
+    <enumeration value="FI"/>
+    <enumeration value="GAA"/>
+    <enumeration value="HAA"/>
+    <enumeration value="HD"/>
+    <enumeration value="HH"/>
+    <enumeration value="IAA"/>
+    <enumeration value="IAB"/>
+    <enumeration value="ID"/>
+    <enumeration value="IF"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="KO"/>
+    <enumeration value="L1"/>
+    <enumeration value="LA"/>
+    <enumeration value="LAA"/>
+    <enumeration value="LAB"/>
+    <enumeration value="LF"/>
+    <enumeration value="MAE"/>
+    <enumeration value="MI"/>
+    <enumeration value="ML"/>
+    <enumeration value="NAA"/>
+    <enumeration value="OA"/>
+    <enumeration value="PA"/>
+    <enumeration value="PAA"/>
+    <enumeration value="PC"/>
+    <enumeration value="PL"/>
+    <enumeration value="PRV"/>
+    <enumeration value="RAB"/>
+    <enumeration value="RAC"/>
+    <enumeration value="RAD"/>
+    <enumeration value="RAF"/>
+    <enumeration value="RE"/>
+    <enumeration value="RF"/>
+    <enumeration value="RH"/>
+    <enumeration value="RV"/>
+    <enumeration value="SA"/>
+    <enumeration value="SAA"/>
+    <enumeration value="SAD"/>
+    <enumeration value="SAE"/>
+    <enumeration value="SAI"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SM"/>
+    <enumeration value="SU"/>
+    <enumeration value="TAB"/>
+    <enumeration value="TAC"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="V1"/>
+    <enumeration value="V2"/>
+    <enumeration value="WH"/>
+    <enumeration value="XAA"/>
+    <enumeration value="YY"/>
+    <enumeration value="ZZZ"/>
+  </cl>
+  <cl id="41">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="42">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="43">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="44">
+    <enumeration value="1"/>
+    <enumeration value="2"/>
+    <enumeration value="3"/>
+    <enumeration value="4"/>
+    <enumeration value="5"/>
+    <enumeration value="6"/>
+    <enumeration value="7"/>
+  </cl>
+  <cl id="45">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+</codedb>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM.xslt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM.xslt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM.xslt	(revision 8542)
@@ -0,0 +1,1931 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsl:stylesheet xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:saxon="http://saxon.sf.net/" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<!--Implementers: please note that overriding process-prolog or process-root is 
+    the preferred method for meta-stylesheets to use where possible. -->
+
+<xsl:param name="archiveDirParameter" />
+  <xsl:param name="archiveNameParameter" />
+  <xsl:param name="fileNameParameter" />
+  <xsl:param name="fileDirParameter" />
+  <xsl:variable name="document-uri">
+    <xsl:value-of select="document-uri(/)" />
+  </xsl:variable>
+
+<!--PHASES-->
+
+
+<!--PROLOG-->
+<xsl:output indent="yes" method="xml" omit-xml-declaration="no" standalone="yes" />
+
+<!--XSD TYPES FOR XSLT2-->
+
+
+<!--KEYS AND FUNCTIONS-->
+
+
+<!--DEFAULT RULES-->
+
+
+<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-select-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="." />
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-->
+<!--This mode can be used to generate an ugly though full XPath for locators-->
+<xsl:template match="*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">
+        <xsl:value-of select="name()" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>*:</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>[namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])" />
+    <xsl:text>[</xsl:text>
+    <xsl:value-of select="1+ $preceding" />
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+  <xsl:template match="@*" mode="schematron-get-full-path">
+    <xsl:apply-templates mode="schematron-get-full-path" select="parent::*" />
+    <xsl:text>/</xsl:text>
+    <xsl:choose>
+      <xsl:when test="namespace-uri()=''">@<xsl:value-of select="name()" />
+</xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@*[local-name()='</xsl:text>
+        <xsl:value-of select="local-name()" />
+        <xsl:text>' and namespace-uri()='</xsl:text>
+        <xsl:value-of select="namespace-uri()" />
+        <xsl:text>']</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--MODE: SCHEMATRON-FULL-PATH-2-->
+<!--This mode can be used to generate prefixed XPath for humans-->
+<xsl:template match="node() | @*" mode="schematron-get-full-path-2">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="preceding-sibling::*[name(.)=name(current())]">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+<!--MODE: SCHEMATRON-FULL-PATH-3-->
+<!--This mode can be used to generate prefixed XPath for humans 
+	(Top-level element has index)-->
+
+<xsl:template match="node() | @*" mode="schematron-get-full-path-3">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="name(.)" />
+      <xsl:if test="parent::*">
+        <xsl:text>[</xsl:text>
+        <xsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1" />
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="not(self::*)">
+      <xsl:text />/@<xsl:value-of select="name(.)" />
+    </xsl:if>
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-FROM-PATH -->
+<xsl:template match="/" mode="generate-id-from-path" />
+  <xsl:template match="text()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')" />
+  </xsl:template>
+  <xsl:template match="comment()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')" />
+  </xsl:template>
+  <xsl:template match="processing-instruction()" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-from-path">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:value-of select="concat('.@', name())" />
+  </xsl:template>
+  <xsl:template match="*" mode="generate-id-from-path" priority="-0.5">
+    <xsl:apply-templates mode="generate-id-from-path" select="parent::*" />
+    <xsl:text>.</xsl:text>
+    <xsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')" />
+  </xsl:template>
+
+<!--MODE: GENERATE-ID-2 -->
+<xsl:template match="/" mode="generate-id-2">U</xsl:template>
+  <xsl:template match="*" mode="generate-id-2" priority="2">
+    <xsl:text>U</xsl:text>
+    <xsl:number count="*" level="multiple" />
+  </xsl:template>
+  <xsl:template match="node()" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>n</xsl:text>
+    <xsl:number count="node()" />
+  </xsl:template>
+  <xsl:template match="@*" mode="generate-id-2">
+    <xsl:text>U.</xsl:text>
+    <xsl:number count="*" level="multiple" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="string-length(local-name(.))" />
+    <xsl:text>_</xsl:text>
+    <xsl:value-of select="translate(name(),':','.')" />
+  </xsl:template>
+<!--Strip characters-->  <xsl:template match="text()" priority="-1" />
+
+<!--SCHEMA SETUP-->
+<xsl:template match="/">
+    <svrl:schematron-output schemaVersion="iso" title="Schema for Factur-X; 1.07.2; Accounting, MINIMUM">
+      <xsl:comment>
+        <xsl:value-of select="$archiveDirParameter" />  Â 
+		 <xsl:value-of select="$archiveNameParameter" /> Â 
+		 <xsl:value-of select="$fileNameParameter" /> Â 
+		 <xsl:value-of select="$fileDirParameter" />
+      </xsl:comment>
+      <svrl:ns-prefix-in-attribute-values prefix="rsm" uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="qdt" uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="ram" uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" />
+      <svrl:ns-prefix-in-attribute-values prefix="udt" uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M5" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M6" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M7" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M8" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M9" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M10" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M11" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M12" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M13" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M14" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M15" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M16" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M17" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M18" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M19" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M20" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M21" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M22" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M23" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M24" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M25" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M26" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M27" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M28" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M29" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M30" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M31" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M32" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M33" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M34" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M35" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M36" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M37" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M38" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M39" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M40" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M41" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M42" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M43" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M44" select="/" />
+      <svrl:active-pattern>
+        <xsl:attribute name="document">
+          <xsl:value-of select="document-uri(/)" />
+        </xsl:attribute>
+        <xsl:apply-templates />
+      </svrl:active-pattern>
+      <xsl:apply-templates mode="M45" select="/" />
+    </svrl:schematron-output>
+  </xsl:template>
+
+<!--SCHEMATRON PATTERNS-->
+<svrl:text>Schema for Factur-X; 1.07.2; Accounting, MINIMUM</svrl:text>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SellerTradeParty" mode="M5" priority="1000">
+    <svrl:fired-rule context="//ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA'])">
+          <xsl:attribute name="id">FX-SCH-A-000001</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M5" priority="-1" />
+  <xsl:template match="@*|node()" mode="M5" priority="-2">
+    <xsl:apply-templates mode="M5" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" mode="M6" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID='VA']" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="contains(' 1A AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', substring(.,1,2), ' '))">
+          <xsl:attribute name="id">FX-SCH-A-000002</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix âELâ.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M6" priority="-1" />
+  <xsl:template match="@*|node()" mode="M6" priority="-2">
+    <xsl:apply-templates mode="M6" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M7" priority="1000">
+    <svrl:fired-rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:TaxBasisTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:TaxBasisTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000003</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:GrandTotalAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:GrandTotalAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000004</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(ram:DuePayableAmount)" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(ram:DuePayableAmount)">
+          <xsl:attribute name="id">FX-SCH-A-000005</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-15]-An Invoice shall have the Amount due for payment (BT-115).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:TaxBasisTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000006</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
+          <xsl:attribute name="id">FX-SCH-A-000007</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:GrandTotalAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000008</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="string-length(substring-after(ram:DuePayableAmount,'.'))&lt;=2">
+          <xsl:attribute name="id">FX-SCH-A-000009</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M7" priority="-1" />
+  <xsl:template match="@*|node()" mode="M7" priority="-2">
+    <xsl:apply-templates mode="M7" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice" mode="M8" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != '')">
+          <xsl:attribute name="id">FX-SCH-A-000010</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-01]-An Invoice shall have a Specification identifier (BT-24).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:ID !='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:ID !='')">
+          <xsl:attribute name="id">FX-SCH-A-000011</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-02]-An Invoice shall have an Invoice number (BT-1).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format='102']!='')">
+          <xsl:attribute name="id">FX-SCH-A-000012</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-03]-An Invoice shall have an Invoice issue date (BT-2).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:ExchangedDocument/ram:TypeCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:ExchangedDocument/ram:TypeCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000013</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-04]-An Invoice shall have an Invoice type code (BT-3).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')">
+          <xsl:attribute name="id">FX-SCH-A-000014</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-05]-An Invoice shall have an Invoice currency code (BT-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000015</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-06]-An Invoice shall contain the Seller name (BT-27).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!='')">
+          <xsl:attribute name="id">FX-SCH-A-000016</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-07]-An Invoice shall contain the Buyer name (BT-44).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
+          <xsl:attribute name="id">FX-SCH-A-000017</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-08]-An Invoice shall contain the Seller postal address (BG-5).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=''">
+          <xsl:attribute name="id">FX-SCH-A-000018</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	[BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M8" priority="-1" />
+  <xsl:template match="@*|node()" mode="M8" priority="-2">
+    <xsl:apply-templates mode="M8" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" mode="M9" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TypeCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TypeCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000020</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TypeCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M9" priority="-1" />
+  <xsl:template match="@*|node()" mode="M9" priority="-2">
+    <xsl:apply-templates mode="M9" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" mode="M10" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M10" priority="-1" />
+  <xsl:template match="@*|node()" mode="M10" priority="-2">
+    <xsl:apply-templates mode="M10" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" mode="M11" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@format" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@format">
+          <xsl:attribute name="id">FX-SCH-A-000021</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@format' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M11" priority="-1" />
+  <xsl:template match="@*|node()" mode="M11" priority="-2">
+    <xsl:apply-templates mode="M11" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" mode="M12" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]" />
+    <xsl:variable name="codeValue3" select="@format" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=3]/enumeration[@value=$codeValue3]">
+          <xsl:attribute name="id">FX-SCH-A-000022</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@format' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M12" priority="-1" />
+  <xsl:template match="@*|node()" mode="M12" priority="-2">
+    <xsl:apply-templates mode="M12" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" mode="M13" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode" />
+    <xsl:variable name="codeValue2" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=2]/enumeration[@value=$codeValue2]">
+          <xsl:attribute name="id">FX-SCH-A-000023</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:TypeCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M13" priority="-1" />
+  <xsl:template match="@*|node()" mode="M13" priority="-2">
+    <xsl:apply-templates mode="M13" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" mode="M14" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000024</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
+          <xsl:attribute name="id">FX-SCH-A-000025</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M14" priority="-1" />
+  <xsl:template match="@*|node()" mode="M14" priority="-2">
+    <xsl:apply-templates mode="M14" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" mode="M15" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M15" priority="-1" />
+  <xsl:template match="@*|node()" mode="M15" priority="-2">
+    <xsl:apply-templates mode="M15" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M16" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M16" priority="-1" />
+  <xsl:template match="@*|node()" mode="M16" priority="-2">
+    <xsl:apply-templates mode="M16" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" mode="M17" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M17" priority="-1" />
+  <xsl:template match="@*|node()" mode="M17" priority="-2">
+    <xsl:apply-templates mode="M17" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" mode="M18" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID" />
+    <xsl:variable name="codeValue1" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=1]/enumeration[@value=$codeValue1]">
+          <xsl:attribute name="id">FX-SCH-A-000026</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:ID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M18" priority="-1" />
+  <xsl:template match="@*|node()" mode="M18" priority="-2">
+    <xsl:apply-templates mode="M18" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" mode="M19" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M19" priority="-1" />
+  <xsl:template match="@*|node()" mode="M19" priority="-2">
+    <xsl:apply-templates mode="M19" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" mode="M20" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SellerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SellerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000027</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SellerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:BuyerTradeParty)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:BuyerTradeParty)=1">
+          <xsl:attribute name="id">FX-SCH-A-000028</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:BuyerTradeParty' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M20" priority="-1" />
+  <xsl:template match="@*|node()" mode="M20" priority="-2">
+    <xsl:apply-templates mode="M20" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" mode="M21" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:IssuerAssignedID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:IssuerAssignedID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000029</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:IssuerAssignedID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M21" priority="-1" />
+  <xsl:template match="@*|node()" mode="M21" priority="-2">
+    <xsl:apply-templates mode="M21" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" mode="M22" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @schemeID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M22" priority="-1" />
+  <xsl:template match="@*|node()" mode="M22" priority="-2">
+    <xsl:apply-templates mode="M22" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" mode="M23" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M23" priority="-1" />
+  <xsl:template match="@*|node()" mode="M23" priority="-2">
+    <xsl:apply-templates mode="M23" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" mode="M24" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:PostalTradeAddress' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M24" priority="-1" />
+  <xsl:template match="@*|node()" mode="M24" priority="-2">
+    <xsl:apply-templates mode="M24" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization" mode="M25" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M25" priority="-1" />
+  <xsl:template match="@*|node()" mode="M25" priority="-2">
+    <xsl:apply-templates mode="M25" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M26" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue4" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M26" priority="-1" />
+  <xsl:template match="@*|node()" mode="M26" priority="-2">
+    <xsl:apply-templates mode="M26" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" mode="M27" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M27" priority="-1" />
+  <xsl:template match="@*|node()" mode="M27" priority="-2">
+    <xsl:apply-templates mode="M27" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" mode="M28" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:Name)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:Name)=1">
+          <xsl:attribute name="id">FX-SCH-A-000030</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:Name' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:PostalTradeAddress)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:PostalTradeAddress)=1">
+          <xsl:attribute name="id">FX-SCH-A-000032</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:PostalTradeAddress' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000033</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000034</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M28" priority="-1" />
+  <xsl:template match="@*|node()" mode="M28" priority="-2">
+    <xsl:apply-templates mode="M28" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" mode="M29" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:CountryID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:CountryID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000035</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:CountryID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M29" priority="-1" />
+  <xsl:template match="@*|node()" mode="M29" priority="-2">
+    <xsl:apply-templates mode="M29" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" mode="M30" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID" />
+    <xsl:variable name="codeValue5" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=5]/enumeration[@value=$codeValue5]">
+          <xsl:attribute name="id">FX-SCH-A-000036</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:CountryID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M30" priority="-1" />
+  <xsl:template match="@*|node()" mode="M30" priority="-2">
+    <xsl:apply-templates mode="M30" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" mode="M31" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]" />
+    <xsl:variable name="codeValue4" select="@schemeID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=4]/enumeration[@value=$codeValue4]">
+          <xsl:attribute name="id">FX-SCH-A-000031</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@schemeID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M31" priority="-1" />
+  <xsl:template match="@*|node()" mode="M31" priority="-2">
+    <xsl:apply-templates mode="M31" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" mode="M32" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and  not(ram:ID/@schemeID=&quot;FC&quot;)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and  not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M32" priority="-1" />
+  <xsl:template match="@*|node()" mode="M32" priority="-2">
+    <xsl:apply-templates mode="M32" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" mode="M33" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M33" priority="-1" />
+  <xsl:template match="@*|node()" mode="M33" priority="-2">
+    <xsl:apply-templates mode="M33" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" mode="M34" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M34" priority="-1" />
+  <xsl:template match="@*|node()" mode="M34" priority="-2">
+    <xsl:apply-templates mode="M34" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" mode="M35" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:ID)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:ID)=1">
+          <xsl:attribute name="id">FX-SCH-A-000019</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:ID' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M35" priority="-1" />
+  <xsl:template match="@*|node()" mode="M35" priority="-2">
+    <xsl:apply-templates mode="M35" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" mode="M36" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@schemeID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@schemeID">
+          <xsl:attribute name="id">FX-SCH-A-000037</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@schemeID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M36" priority="-1" />
+  <xsl:template match="@*|node()" mode="M36" priority="-2">
+    <xsl:apply-templates mode="M36" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" mode="M37" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:InvoiceCurrencyCode)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:InvoiceCurrencyCode)=1">
+          <xsl:attribute name="id">FX-SCH-A-000038</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
+          <xsl:attribute name="id">FX-SCH-A-000039</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M37" priority="-1" />
+  <xsl:template match="@*|node()" mode="M37" priority="-2">
+    <xsl:apply-templates mode="M37" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" mode="M38" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode" />
+    <xsl:variable name="codeValue6" select="." />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=6]/enumeration[@value=$codeValue6]">
+          <xsl:attribute name="id">FX-SCH-A-000040</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of 'ram:InvoiceCurrencyCode' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M38" priority="-1" />
+  <xsl:template match="@*|node()" mode="M38" priority="-2">
+    <xsl:apply-templates mode="M38" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" mode="M39" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxBasisTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxBasisTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000041</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
+          <xsl:attribute name="id">FX-SCH-A-000042</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:GrandTotalAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:GrandTotalAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000043</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:GrandTotalAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="count(ram:DuePayableAmount)=1" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="count(ram:DuePayableAmount)=1">
+          <xsl:attribute name="id">FX-SCH-A-000044</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Element 'ram:DuePayableAmount' must occur exactly 1 times.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M39" priority="-1" />
+  <xsl:template match="@*|node()" mode="M39" priority="-2">
+    <xsl:apply-templates mode="M39" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" mode="M40" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M40" priority="-1" />
+  <xsl:template match="@*|node()" mode="M40" priority="-2">
+    <xsl:apply-templates mode="M40" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" mode="M41" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M41" priority="-1" />
+  <xsl:template match="@*|node()" mode="M41" priority="-2">
+    <xsl:apply-templates mode="M41" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" mode="M42" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Attribute @currencyID' marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M42" priority="-1" />
+  <xsl:template match="@*|node()" mode="M42" priority="-2">
+    <xsl:apply-templates mode="M42" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" mode="M43" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]" />
+
+		<!--REPORT -->
+<xsl:if test="true()">
+      <svrl:successful-report test="true()">
+        <xsl:attribute name="location">
+          <xsl:apply-templates mode="schematron-select-full-path" select="." />
+        </xsl:attribute>
+        <svrl:text>
+	Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and  not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</svrl:text>
+      </svrl:successful-report>
+    </xsl:if>
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M43" priority="-1" />
+  <xsl:template match="@*|node()" mode="M43" priority="-2">
+    <xsl:apply-templates mode="M43" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" mode="M44" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]" />
+    <xsl:variable name="codeValue7" select="@currencyID" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="document('FACTUR-X_MINIMUM_codedb.xml')//cl[@id=7]/enumeration[@value=$codeValue7]">
+          <xsl:attribute name="id">FX-SCH-A-000045</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Value of '@currencyID' is not allowed.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M44" priority="-1" />
+  <xsl:template match="@*|node()" mode="M44" priority="-2">
+    <xsl:apply-templates mode="M44" select="@*|*" />
+  </xsl:template>
+
+<!--PATTERN -->
+
+
+	<!--RULE -->
+<xsl:template match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" mode="M45" priority="1000">
+    <svrl:fired-rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]" />
+
+		<!--ASSERT -->
+<xsl:choose>
+      <xsl:when test="@currencyID" />
+      <xsl:otherwise>
+        <svrl:failed-assert test="@currencyID">
+          <xsl:attribute name="id">FX-SCH-A-000046</xsl:attribute>
+          <xsl:attribute name="location">
+            <xsl:apply-templates mode="schematron-select-full-path" select="." />
+          </xsl:attribute>
+          <svrl:text>
+	Attribute '@currencyID' is required in this context.</svrl:text>
+        </svrl:failed-assert>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+  <xsl:template match="text()" mode="M45" priority="-1" />
+  <xsl:template match="@*|node()" mode="M45" priority="-2">
+    <xsl:apply-templates mode="M45" select="@*|*" />
+  </xsl:template>
+</xsl:stylesheet>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM_codedb.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM_codedb.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/src/schema/xslt/FACTUR-X_MINIMUM_codedb.xml	(revision 8542)
@@ -0,0 +1,919 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<codedb>
+  <cl id="1">
+    <enumeration value="urn:factur-x.eu:1p0:minimum"/>
+    <enumeration value="urn:zugferd.de:2p0:minimum"/>
+  </cl>
+  <cl id="2">
+    <enumeration value="71"/>
+    <enumeration value="80"/>
+    <enumeration value="81"/>
+    <enumeration value="82"/>
+    <enumeration value="83"/>
+    <enumeration value="84"/>
+    <enumeration value="102"/>
+    <enumeration value="130"/>
+    <enumeration value="202"/>
+    <enumeration value="203"/>
+    <enumeration value="204"/>
+    <enumeration value="211"/>
+    <enumeration value="218"/>
+    <enumeration value="219"/>
+    <enumeration value="261"/>
+    <enumeration value="262"/>
+    <enumeration value="295"/>
+    <enumeration value="296"/>
+    <enumeration value="308"/>
+    <enumeration value="325"/>
+    <enumeration value="326"/>
+    <enumeration value="331"/>
+    <enumeration value="380"/>
+    <enumeration value="381"/>
+    <enumeration value="382"/>
+    <enumeration value="383"/>
+    <enumeration value="384"/>
+    <enumeration value="385"/>
+    <enumeration value="386"/>
+    <enumeration value="387"/>
+    <enumeration value="388"/>
+    <enumeration value="389"/>
+    <enumeration value="390"/>
+    <enumeration value="393"/>
+    <enumeration value="394"/>
+    <enumeration value="395"/>
+    <enumeration value="396"/>
+    <enumeration value="420"/>
+    <enumeration value="456"/>
+    <enumeration value="457"/>
+    <enumeration value="458"/>
+    <enumeration value="527"/>
+    <enumeration value="532"/>
+    <enumeration value="553"/>
+    <enumeration value="575"/>
+    <enumeration value="623"/>
+    <enumeration value="633"/>
+    <enumeration value="751"/>
+    <enumeration value="780"/>
+    <enumeration value="817"/>
+    <enumeration value="870"/>
+    <enumeration value="875"/>
+    <enumeration value="876"/>
+    <enumeration value="877"/>
+    <enumeration value="935"/>
+  </cl>
+  <cl id="3">
+    <enumeration value="102"/>
+  </cl>
+  <cl id="4">
+    <enumeration value="0002"/>
+    <enumeration value="0003"/>
+    <enumeration value="0004"/>
+    <enumeration value="0005"/>
+    <enumeration value="0006"/>
+    <enumeration value="0007"/>
+    <enumeration value="0008"/>
+    <enumeration value="0009"/>
+    <enumeration value="0010"/>
+    <enumeration value="0011"/>
+    <enumeration value="0012"/>
+    <enumeration value="0013"/>
+    <enumeration value="0014"/>
+    <enumeration value="0015"/>
+    <enumeration value="0016"/>
+    <enumeration value="0017"/>
+    <enumeration value="0018"/>
+    <enumeration value="0019"/>
+    <enumeration value="0020"/>
+    <enumeration value="0021"/>
+    <enumeration value="0022"/>
+    <enumeration value="0023"/>
+    <enumeration value="0024"/>
+    <enumeration value="0025"/>
+    <enumeration value="0026"/>
+    <enumeration value="0027"/>
+    <enumeration value="0028"/>
+    <enumeration value="0029"/>
+    <enumeration value="0030"/>
+    <enumeration value="0031"/>
+    <enumeration value="0032"/>
+    <enumeration value="0033"/>
+    <enumeration value="0034"/>
+    <enumeration value="0035"/>
+    <enumeration value="0036"/>
+    <enumeration value="0037"/>
+    <enumeration value="0038"/>
+    <enumeration value="0039"/>
+    <enumeration value="0040"/>
+    <enumeration value="0041"/>
+    <enumeration value="0042"/>
+    <enumeration value="0043"/>
+    <enumeration value="0044"/>
+    <enumeration value="0045"/>
+    <enumeration value="0046"/>
+    <enumeration value="0047"/>
+    <enumeration value="0048"/>
+    <enumeration value="0049"/>
+    <enumeration value="0050"/>
+    <enumeration value="0051"/>
+    <enumeration value="0052"/>
+    <enumeration value="0053"/>
+    <enumeration value="0054"/>
+    <enumeration value="0055"/>
+    <enumeration value="0056"/>
+    <enumeration value="0057"/>
+    <enumeration value="0058"/>
+    <enumeration value="0059"/>
+    <enumeration value="0060"/>
+    <enumeration value="0061"/>
+    <enumeration value="0062"/>
+    <enumeration value="0063"/>
+    <enumeration value="0064"/>
+    <enumeration value="0065"/>
+    <enumeration value="0066"/>
+    <enumeration value="0067"/>
+    <enumeration value="0068"/>
+    <enumeration value="0069"/>
+    <enumeration value="0070"/>
+    <enumeration value="0071"/>
+    <enumeration value="0072"/>
+    <enumeration value="0073"/>
+    <enumeration value="0074"/>
+    <enumeration value="0075"/>
+    <enumeration value="0076"/>
+    <enumeration value="0077"/>
+    <enumeration value="0078"/>
+    <enumeration value="0079"/>
+    <enumeration value="0080"/>
+    <enumeration value="0081"/>
+    <enumeration value="0082"/>
+    <enumeration value="0083"/>
+    <enumeration value="0084"/>
+    <enumeration value="0085"/>
+    <enumeration value="0086"/>
+    <enumeration value="0087"/>
+    <enumeration value="0088"/>
+    <enumeration value="0089"/>
+    <enumeration value="0090"/>
+    <enumeration value="0091"/>
+    <enumeration value="0093"/>
+    <enumeration value="0094"/>
+    <enumeration value="0095"/>
+    <enumeration value="0096"/>
+    <enumeration value="0097"/>
+    <enumeration value="0098"/>
+    <enumeration value="0099"/>
+    <enumeration value="0100"/>
+    <enumeration value="0101"/>
+    <enumeration value="0102"/>
+    <enumeration value="0104"/>
+    <enumeration value="0105"/>
+    <enumeration value="0106"/>
+    <enumeration value="0107"/>
+    <enumeration value="0108"/>
+    <enumeration value="0109"/>
+    <enumeration value="0110"/>
+    <enumeration value="0111"/>
+    <enumeration value="0112"/>
+    <enumeration value="0113"/>
+    <enumeration value="0114"/>
+    <enumeration value="0115"/>
+    <enumeration value="0116"/>
+    <enumeration value="0117"/>
+    <enumeration value="0118"/>
+    <enumeration value="0119"/>
+    <enumeration value="0120"/>
+    <enumeration value="0121"/>
+    <enumeration value="0122"/>
+    <enumeration value="0123"/>
+    <enumeration value="0124"/>
+    <enumeration value="0125"/>
+    <enumeration value="0126"/>
+    <enumeration value="0127"/>
+    <enumeration value="0128"/>
+    <enumeration value="0129"/>
+    <enumeration value="0130"/>
+    <enumeration value="0131"/>
+    <enumeration value="0132"/>
+    <enumeration value="0133"/>
+    <enumeration value="0134"/>
+    <enumeration value="0135"/>
+    <enumeration value="0136"/>
+    <enumeration value="0137"/>
+    <enumeration value="0138"/>
+    <enumeration value="0139"/>
+    <enumeration value="0140"/>
+    <enumeration value="0141"/>
+    <enumeration value="0142"/>
+    <enumeration value="0143"/>
+    <enumeration value="0144"/>
+    <enumeration value="0145"/>
+    <enumeration value="0146"/>
+    <enumeration value="0147"/>
+    <enumeration value="0148"/>
+    <enumeration value="0149"/>
+    <enumeration value="0150"/>
+    <enumeration value="0151"/>
+    <enumeration value="0152"/>
+    <enumeration value="0153"/>
+    <enumeration value="0154"/>
+    <enumeration value="0155"/>
+    <enumeration value="0156"/>
+    <enumeration value="0157"/>
+    <enumeration value="0158"/>
+    <enumeration value="0159"/>
+    <enumeration value="0160"/>
+    <enumeration value="0161"/>
+    <enumeration value="0162"/>
+    <enumeration value="0163"/>
+    <enumeration value="0164"/>
+    <enumeration value="0165"/>
+    <enumeration value="0166"/>
+    <enumeration value="0167"/>
+    <enumeration value="0168"/>
+    <enumeration value="0169"/>
+    <enumeration value="0170"/>
+    <enumeration value="0171"/>
+    <enumeration value="0172"/>
+    <enumeration value="0173"/>
+    <enumeration value="0174"/>
+    <enumeration value="0175"/>
+    <enumeration value="0176"/>
+    <enumeration value="0177"/>
+    <enumeration value="0178"/>
+    <enumeration value="0179"/>
+    <enumeration value="0180"/>
+    <enumeration value="0183"/>
+    <enumeration value="0184"/>
+    <enumeration value="0185"/>
+    <enumeration value="0186"/>
+    <enumeration value="0187"/>
+    <enumeration value="0188"/>
+    <enumeration value="0189"/>
+    <enumeration value="0190"/>
+    <enumeration value="0191"/>
+    <enumeration value="0192"/>
+    <enumeration value="0193"/>
+    <enumeration value="0194"/>
+    <enumeration value="0195"/>
+    <enumeration value="0196"/>
+    <enumeration value="0197"/>
+    <enumeration value="0198"/>
+    <enumeration value="0199"/>
+    <enumeration value="0200"/>
+    <enumeration value="0201"/>
+    <enumeration value="0202"/>
+    <enumeration value="0203"/>
+    <enumeration value="0204"/>
+    <enumeration value="0205"/>
+    <enumeration value="0206"/>
+    <enumeration value="0207"/>
+    <enumeration value="0208"/>
+    <enumeration value="0209"/>
+    <enumeration value="0210"/>
+    <enumeration value="0211"/>
+    <enumeration value="0212"/>
+    <enumeration value="0213"/>
+    <enumeration value="0214"/>
+    <enumeration value="0215"/>
+    <enumeration value="0216"/>
+    <enumeration value="0217"/>
+    <enumeration value="0218"/>
+    <enumeration value="0219"/>
+    <enumeration value="0220"/>
+    <enumeration value="0221"/>
+    <enumeration value="0222"/>
+    <enumeration value="0223"/>
+    <enumeration value="0224"/>
+    <enumeration value="0225"/>
+    <enumeration value="0226"/>
+    <enumeration value="0227"/>
+    <enumeration value="0228"/>
+    <enumeration value="0229"/>
+    <enumeration value="0230"/>
+    <enumeration value="0231"/>
+    <enumeration value="0232"/>
+    <enumeration value="0233"/>
+    <enumeration value="0234"/>
+    <enumeration value="0235"/>
+    <enumeration value="0236"/>
+    <enumeration value="0237"/>
+    <enumeration value="0238"/>
+  </cl>
+  <cl id="5">
+    <enumeration value="AD"/>
+    <enumeration value="AE"/>
+    <enumeration value="AF"/>
+    <enumeration value="AG"/>
+    <enumeration value="AI"/>
+    <enumeration value="AL"/>
+    <enumeration value="AM"/>
+    <enumeration value="AO"/>
+    <enumeration value="AQ"/>
+    <enumeration value="AR"/>
+    <enumeration value="AS"/>
+    <enumeration value="AT"/>
+    <enumeration value="AU"/>
+    <enumeration value="AW"/>
+    <enumeration value="AX"/>
+    <enumeration value="AZ"/>
+    <enumeration value="BA"/>
+    <enumeration value="BB"/>
+    <enumeration value="BD"/>
+    <enumeration value="BE"/>
+    <enumeration value="BF"/>
+    <enumeration value="BG"/>
+    <enumeration value="BH"/>
+    <enumeration value="BI"/>
+    <enumeration value="BJ"/>
+    <enumeration value="BL"/>
+    <enumeration value="BM"/>
+    <enumeration value="BN"/>
+    <enumeration value="BO"/>
+    <enumeration value="BQ"/>
+    <enumeration value="BR"/>
+    <enumeration value="BS"/>
+    <enumeration value="BT"/>
+    <enumeration value="BV"/>
+    <enumeration value="BW"/>
+    <enumeration value="BY"/>
+    <enumeration value="BZ"/>
+    <enumeration value="CA"/>
+    <enumeration value="CC"/>
+    <enumeration value="CD"/>
+    <enumeration value="CF"/>
+    <enumeration value="CG"/>
+    <enumeration value="CH"/>
+    <enumeration value="CI"/>
+    <enumeration value="CK"/>
+    <enumeration value="CL"/>
+    <enumeration value="CM"/>
+    <enumeration value="CN"/>
+    <enumeration value="CO"/>
+    <enumeration value="CR"/>
+    <enumeration value="CU"/>
+    <enumeration value="CV"/>
+    <enumeration value="CW"/>
+    <enumeration value="CX"/>
+    <enumeration value="CY"/>
+    <enumeration value="CZ"/>
+    <enumeration value="DE"/>
+    <enumeration value="DJ"/>
+    <enumeration value="DK"/>
+    <enumeration value="DM"/>
+    <enumeration value="DO"/>
+    <enumeration value="DZ"/>
+    <enumeration value="EC"/>
+    <enumeration value="EE"/>
+    <enumeration value="EG"/>
+    <enumeration value="EH"/>
+    <enumeration value="ER"/>
+    <enumeration value="ES"/>
+    <enumeration value="ET"/>
+    <enumeration value="FI"/>
+    <enumeration value="FJ"/>
+    <enumeration value="FK"/>
+    <enumeration value="FM"/>
+    <enumeration value="FO"/>
+    <enumeration value="FR"/>
+    <enumeration value="GA"/>
+    <enumeration value="GB"/>
+    <enumeration value="GD"/>
+    <enumeration value="GE"/>
+    <enumeration value="GF"/>
+    <enumeration value="GG"/>
+    <enumeration value="GH"/>
+    <enumeration value="GI"/>
+    <enumeration value="GL"/>
+    <enumeration value="GM"/>
+    <enumeration value="GN"/>
+    <enumeration value="GP"/>
+    <enumeration value="GQ"/>
+    <enumeration value="GR"/>
+    <enumeration value="GS"/>
+    <enumeration value="GT"/>
+    <enumeration value="GU"/>
+    <enumeration value="GW"/>
+    <enumeration value="GY"/>
+    <enumeration value="HK"/>
+    <enumeration value="HM"/>
+    <enumeration value="HN"/>
+    <enumeration value="HR"/>
+    <enumeration value="HT"/>
+    <enumeration value="HU"/>
+    <enumeration value="ID"/>
+    <enumeration value="IE"/>
+    <enumeration value="IL"/>
+    <enumeration value="IM"/>
+    <enumeration value="IN"/>
+    <enumeration value="IO"/>
+    <enumeration value="IQ"/>
+    <enumeration value="IR"/>
+    <enumeration value="IS"/>
+    <enumeration value="IT"/>
+    <enumeration value="JE"/>
+    <enumeration value="JM"/>
+    <enumeration value="JO"/>
+    <enumeration value="JP"/>
+    <enumeration value="KE"/>
+    <enumeration value="KG"/>
+    <enumeration value="KH"/>
+    <enumeration value="KI"/>
+    <enumeration value="KM"/>
+    <enumeration value="KN"/>
+    <enumeration value="KP"/>
+    <enumeration value="KR"/>
+    <enumeration value="KW"/>
+    <enumeration value="KY"/>
+    <enumeration value="KZ"/>
+    <enumeration value="LA"/>
+    <enumeration value="LB"/>
+    <enumeration value="LC"/>
+    <enumeration value="LI"/>
+    <enumeration value="LK"/>
+    <enumeration value="LR"/>
+    <enumeration value="LS"/>
+    <enumeration value="LT"/>
+    <enumeration value="LU"/>
+    <enumeration value="LV"/>
+    <enumeration value="LY"/>
+    <enumeration value="MA"/>
+    <enumeration value="MC"/>
+    <enumeration value="MD"/>
+    <enumeration value="ME"/>
+    <enumeration value="MF"/>
+    <enumeration value="MG"/>
+    <enumeration value="MH"/>
+    <enumeration value="MK"/>
+    <enumeration value="ML"/>
+    <enumeration value="MM"/>
+    <enumeration value="MN"/>
+    <enumeration value="MO"/>
+    <enumeration value="MP"/>
+    <enumeration value="MQ"/>
+    <enumeration value="MR"/>
+    <enumeration value="MS"/>
+    <enumeration value="MT"/>
+    <enumeration value="MU"/>
+    <enumeration value="MV"/>
+    <enumeration value="MW"/>
+    <enumeration value="MX"/>
+    <enumeration value="MY"/>
+    <enumeration value="MZ"/>
+    <enumeration value="NA"/>
+    <enumeration value="NC"/>
+    <enumeration value="NE"/>
+    <enumeration value="NF"/>
+    <enumeration value="NG"/>
+    <enumeration value="NI"/>
+    <enumeration value="NL"/>
+    <enumeration value="NO"/>
+    <enumeration value="NP"/>
+    <enumeration value="NR"/>
+    <enumeration value="NU"/>
+    <enumeration value="NZ"/>
+    <enumeration value="OM"/>
+    <enumeration value="PA"/>
+    <enumeration value="PE"/>
+    <enumeration value="PF"/>
+    <enumeration value="PG"/>
+    <enumeration value="PH"/>
+    <enumeration value="PK"/>
+    <enumeration value="PL"/>
+    <enumeration value="PM"/>
+    <enumeration value="PN"/>
+    <enumeration value="PR"/>
+    <enumeration value="PS"/>
+    <enumeration value="PT"/>
+    <enumeration value="PW"/>
+    <enumeration value="PY"/>
+    <enumeration value="QA"/>
+    <enumeration value="RE"/>
+    <enumeration value="RO"/>
+    <enumeration value="RS"/>
+    <enumeration value="RU"/>
+    <enumeration value="RW"/>
+    <enumeration value="SA"/>
+    <enumeration value="SB"/>
+    <enumeration value="SC"/>
+    <enumeration value="SD"/>
+    <enumeration value="SE"/>
+    <enumeration value="SG"/>
+    <enumeration value="SH"/>
+    <enumeration value="SI"/>
+    <enumeration value="SJ"/>
+    <enumeration value="SK"/>
+    <enumeration value="SL"/>
+    <enumeration value="SM"/>
+    <enumeration value="SN"/>
+    <enumeration value="SO"/>
+    <enumeration value="SR"/>
+    <enumeration value="SS"/>
+    <enumeration value="ST"/>
+    <enumeration value="SV"/>
+    <enumeration value="SX"/>
+    <enumeration value="SY"/>
+    <enumeration value="SZ"/>
+    <enumeration value="TC"/>
+    <enumeration value="TD"/>
+    <enumeration value="TF"/>
+    <enumeration value="TG"/>
+    <enumeration value="TH"/>
+    <enumeration value="TJ"/>
+    <enumeration value="TK"/>
+    <enumeration value="TL"/>
+    <enumeration value="TM"/>
+    <enumeration value="TN"/>
+    <enumeration value="TO"/>
+    <enumeration value="TR"/>
+    <enumeration value="TT"/>
+    <enumeration value="TV"/>
+    <enumeration value="TW"/>
+    <enumeration value="TZ"/>
+    <enumeration value="UA"/>
+    <enumeration value="UG"/>
+    <enumeration value="UM"/>
+    <enumeration value="US"/>
+    <enumeration value="UY"/>
+    <enumeration value="UZ"/>
+    <enumeration value="VA"/>
+    <enumeration value="VC"/>
+    <enumeration value="VE"/>
+    <enumeration value="VG"/>
+    <enumeration value="VI"/>
+    <enumeration value="VN"/>
+    <enumeration value="VU"/>
+    <enumeration value="WF"/>
+    <enumeration value="WS"/>
+    <enumeration value="YE"/>
+    <enumeration value="YT"/>
+    <enumeration value="ZA"/>
+    <enumeration value="ZM"/>
+    <enumeration value="ZW"/>
+    <enumeration value="1A"/>
+    <enumeration value="XI"/>
+  </cl>
+  <cl id="6">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+  <cl id="7">
+    <enumeration value="AED"/>
+    <enumeration value="AFN"/>
+    <enumeration value="ALL"/>
+    <enumeration value="AMD"/>
+    <enumeration value="ANG"/>
+    <enumeration value="AOA"/>
+    <enumeration value="ARS"/>
+    <enumeration value="AUD"/>
+    <enumeration value="AWG"/>
+    <enumeration value="AZN"/>
+    <enumeration value="BAM"/>
+    <enumeration value="BBD"/>
+    <enumeration value="BDT"/>
+    <enumeration value="BGN"/>
+    <enumeration value="BHD"/>
+    <enumeration value="BIF"/>
+    <enumeration value="BMD"/>
+    <enumeration value="BND"/>
+    <enumeration value="BOB"/>
+    <enumeration value="BOV"/>
+    <enumeration value="BRL"/>
+    <enumeration value="BSD"/>
+    <enumeration value="BTN"/>
+    <enumeration value="BWP"/>
+    <enumeration value="BYN"/>
+    <enumeration value="BZD"/>
+    <enumeration value="CAD"/>
+    <enumeration value="CDF"/>
+    <enumeration value="CHE"/>
+    <enumeration value="CHF"/>
+    <enumeration value="CHW"/>
+    <enumeration value="CLF"/>
+    <enumeration value="CLP"/>
+    <enumeration value="CNY"/>
+    <enumeration value="COP"/>
+    <enumeration value="COU"/>
+    <enumeration value="CRC"/>
+    <enumeration value="CUC"/>
+    <enumeration value="CUP"/>
+    <enumeration value="CVE"/>
+    <enumeration value="CZK"/>
+    <enumeration value="DJF"/>
+    <enumeration value="DKK"/>
+    <enumeration value="DOP"/>
+    <enumeration value="DZD"/>
+    <enumeration value="EGP"/>
+    <enumeration value="ERN"/>
+    <enumeration value="ETB"/>
+    <enumeration value="EUR"/>
+    <enumeration value="FJD"/>
+    <enumeration value="FKP"/>
+    <enumeration value="GBP"/>
+    <enumeration value="GEL"/>
+    <enumeration value="GHS"/>
+    <enumeration value="GIP"/>
+    <enumeration value="GMD"/>
+    <enumeration value="GNF"/>
+    <enumeration value="GTQ"/>
+    <enumeration value="GYD"/>
+    <enumeration value="HKD"/>
+    <enumeration value="HNL"/>
+    <enumeration value="HTG"/>
+    <enumeration value="HUF"/>
+    <enumeration value="IDR"/>
+    <enumeration value="ILS"/>
+    <enumeration value="INR"/>
+    <enumeration value="IQD"/>
+    <enumeration value="IRR"/>
+    <enumeration value="ISK"/>
+    <enumeration value="JMD"/>
+    <enumeration value="JOD"/>
+    <enumeration value="JPY"/>
+    <enumeration value="KES"/>
+    <enumeration value="KGS"/>
+    <enumeration value="KHR"/>
+    <enumeration value="KMF"/>
+    <enumeration value="KPW"/>
+    <enumeration value="KRW"/>
+    <enumeration value="KWD"/>
+    <enumeration value="KYD"/>
+    <enumeration value="KZT"/>
+    <enumeration value="LAK"/>
+    <enumeration value="LBP"/>
+    <enumeration value="LKR"/>
+    <enumeration value="LRD"/>
+    <enumeration value="LSL"/>
+    <enumeration value="LYD"/>
+    <enumeration value="MAD"/>
+    <enumeration value="MDL"/>
+    <enumeration value="MGA"/>
+    <enumeration value="MKD"/>
+    <enumeration value="MMK"/>
+    <enumeration value="MNT"/>
+    <enumeration value="MOP"/>
+    <enumeration value="MRU"/>
+    <enumeration value="MUR"/>
+    <enumeration value="MVR"/>
+    <enumeration value="MWK"/>
+    <enumeration value="MXN"/>
+    <enumeration value="MXV"/>
+    <enumeration value="MYR"/>
+    <enumeration value="MZN"/>
+    <enumeration value="NAD"/>
+    <enumeration value="NGN"/>
+    <enumeration value="NIO"/>
+    <enumeration value="NOK"/>
+    <enumeration value="NPR"/>
+    <enumeration value="NZD"/>
+    <enumeration value="OMR"/>
+    <enumeration value="PAB"/>
+    <enumeration value="PEN"/>
+    <enumeration value="PGK"/>
+    <enumeration value="PHP"/>
+    <enumeration value="PKR"/>
+    <enumeration value="PLN"/>
+    <enumeration value="PYG"/>
+    <enumeration value="QAR"/>
+    <enumeration value="RON"/>
+    <enumeration value="RSD"/>
+    <enumeration value="RUB"/>
+    <enumeration value="RWF"/>
+    <enumeration value="SAR"/>
+    <enumeration value="SBD"/>
+    <enumeration value="SCR"/>
+    <enumeration value="SDG"/>
+    <enumeration value="SEK"/>
+    <enumeration value="SGD"/>
+    <enumeration value="SHP"/>
+    <enumeration value="SLE"/>
+    <enumeration value="SOS"/>
+    <enumeration value="SRD"/>
+    <enumeration value="SSP"/>
+    <enumeration value="STN"/>
+    <enumeration value="SVC"/>
+    <enumeration value="SYP"/>
+    <enumeration value="SZL"/>
+    <enumeration value="THB"/>
+    <enumeration value="TJS"/>
+    <enumeration value="TMT"/>
+    <enumeration value="TND"/>
+    <enumeration value="TOP"/>
+    <enumeration value="TRY"/>
+    <enumeration value="TTD"/>
+    <enumeration value="TWD"/>
+    <enumeration value="TZS"/>
+    <enumeration value="UAH"/>
+    <enumeration value="UGX"/>
+    <enumeration value="USD"/>
+    <enumeration value="USN"/>
+    <enumeration value="UYI"/>
+    <enumeration value="UYU"/>
+    <enumeration value="UYW"/>
+    <enumeration value="UZS"/>
+    <enumeration value="VED"/>
+    <enumeration value="VES"/>
+    <enumeration value="VND"/>
+    <enumeration value="VUV"/>
+    <enumeration value="WST"/>
+    <enumeration value="XAF"/>
+    <enumeration value="XAG"/>
+    <enumeration value="XAU"/>
+    <enumeration value="XBA"/>
+    <enumeration value="XBB"/>
+    <enumeration value="XBC"/>
+    <enumeration value="XBD"/>
+    <enumeration value="XCD"/>
+    <enumeration value="XDR"/>
+    <enumeration value="XOF"/>
+    <enumeration value="XPD"/>
+    <enumeration value="XPF"/>
+    <enumeration value="XPT"/>
+    <enumeration value="XSU"/>
+    <enumeration value="XTS"/>
+    <enumeration value="XUA"/>
+    <enumeration value="XXX"/>
+    <enumeration value="YER"/>
+    <enumeration value="ZAR"/>
+    <enumeration value="ZMW"/>
+    <enumeration value="ZWG"/>
+    <enumeration value="ZWL"/>
+  </cl>
+</codedb>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_custom_format.csv
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_custom_format.csv	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_custom_format.csv	(revision 8542)
@@ -0,0 +1,11 @@
+"id";"name";"email";"city";"created_at";"status";"amount_eur"
+"1";"Max Mustermann";"max.mustermann@example.com";"Berlin";"2026-01-01";"active";"129.90"
+"2";"Erika Musterfrau";"erika.musterfrau@example.com";"Hamburg";"2026-01-02";"inactive";"49.50"
+"3";"Paul Beispiel";"paul.beispiel@example.com";"MÃŒnchen";"2026-01-03";"active";"199.00"
+"4";"Lena Demo";"lena.demo@example.com";"KÃ¶ln";"2026-01-03";"active";"15.99"
+"5";"Tobias Test";"tobias.test@example.com";"Frankfurt";"2026-01-04";"pending";"0.00"
+"6";"Sara Sample";"sara.sample@example.com";"Stuttgart";"2026-01-04";"active";"78.10"
+"7";"Jan Platzhalter";"jan.platzhalter@example.com";"Dresden";"2026-01-05";"inactive";"12.00"
+"8";"Mia Beispiel";"mia.beispiel@example.com";"Leipzig";"2026-01-05";"active";"5.49"
+"9";"Tim Dummy";"tim.dummy@example.com";"NÃŒrnberg";"2026-01-06";"pending";"250.00"
+"10";"Nina Probe";"nina.probe@example.com";"Bremen";"2026-01-06";"active";"99.95"
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_native_format.csv
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_native_format.csv	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/csv_dummy_native_format.csv	(revision 8542)
@@ -0,0 +1,11 @@
+id,name,email,city,created_at,status,amount_eur
+1,Max Mustermann,max.mustermann@example.com,Berlin,2026-01-01,active,129.90
+2,Erika Musterfrau,erika.musterfrau@example.com,Hamburg,2026-01-02,inactive,49.50
+3,Paul Beispiel,paul.beispiel@example.com,MÃŒnchen,2026-01-03,active,199.00
+4,Lena Demo,lena.demo@example.com,KÃ¶ln,2026-01-03,active,15.99
+5,Tobias Test,tobias.test@example.com,Frankfurt,2026-01-04,pending,0.00
+6,Sara Sample,sara.sample@example.com,Stuttgart,2026-01-04,active,78.10
+7,Jan Platzhalter,jan.platzhalter@example.com,Dresden,2026-01-05,inactive,12.00
+8,Mia Beispiel,mia.beispiel@example.com,Leipzig,2026-01-05,active,5.49
+9,Tim Dummy,tim.dummy@example.com,NÃŒrnberg,2026-01-06,pending,250.00
+10,Nina Probe,nina.probe@example.com,Bremen,2026-01-06,active,99.95
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/dummy_attachment_1.dummy
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/dummy_attachment_1.dummy	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/dummy_attachment_1.dummy	(revision 8542)
@@ -0,0 +1,1 @@
+Dummy
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_206.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_206.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_206.xml	(revision 8542)
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">
+                20200305
+            </udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Rechnung gemÃ€Ã Bestellung vom 01.03.2020.</ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Unsere GLN: 4000001123452
+                Ihre GLN: 4000001987658
+                Ihre Kundennummer: GE2020211
+                Zahlbar innerhalb 30 Tagen netto bis 04.04.2020, 3% Skonto innerhalb 10 Tagen bis 15.03.2020.
+            </ram:Content>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:Name>GTIN: 4012345001235, Unsere Art.-Nr.: TB100A4, TrennblÃ€tter A4</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.90</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:SellerTradeParty>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>Hans Muster</ram:LineOne>
+                    <ram:LineTwo>KundenstraÃe 15</ram:LineTwo>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20200305</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20200404</udt:DateTimeString>
+                </ram:DueDateDateTime>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>198.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">37.62</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>235.62</ram:GrandTotalAmount>
+                <ram:DuePayableAmount>235.62</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268.xml	(revision 8542)
@@ -0,0 +1,1338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100">
+	<rsm:ExchangedDocumentContext>
+		<ram:GuidelineSpecifiedDocumentContextParameter>
+			<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+		</ram:GuidelineSpecifiedDocumentContextParameter>
+	</rsm:ExchangedDocumentContext>
+	<rsm:ExchangedDocument>
+		<ram:ID>XXX</ram:ID>
+		<ram:TypeCode>380</ram:TypeCode>
+		<ram:IssueDateTime>
+			<udt:DateTimeString format="102">20250228</udt:DateTimeString>
+		</ram:IssueDateTime>
+		<ram:IncludedNote>
+			<ram:Content>SEPA-Lastschrift</ram:Content>
+			<ram:SubjectCode>AAB</ram:SubjectCode>
+		</ram:IncludedNote>
+		<ram:IncludedNote>
+			<ram:Content>PAYMENTAMOUNT:1028.31</ram:Content>
+			<ram:SubjectCode>PMD</ram:SubjectCode>
+		</ram:IncludedNote>
+		<ram:IncludedNote>
+			<ram:Content>PAYMENTCURRENCY:EUR</ram:Content>
+			<ram:SubjectCode>PMD</ram:SubjectCode>
+		</ram:IncludedNote>
+	</rsm:ExchangedDocument>
+	<rsm:SupplyChainTradeTransaction>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>1</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593124</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>14:38</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>DÃSSELDORF</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>SHELL</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0004702</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>003969</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0102380</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>168.11</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">41.64</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.66</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>71.66</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 120 (2)</ram:IssuerAssignedID>
+					<ram:TypeCode>130 (2)</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ (2)</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>567</ram:ID>
+                    <ram:TypeCode>1</ram:TypeCode>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>2</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0078</ram:SellerAssignedID>
+				<ram:Name>Reinigungsservice (PKW)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593124</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>17:31</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>GELSENKIRC</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>SOFT CAR WASH</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS3497210</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000002913</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0102442</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>1176.00</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="C62">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="C62">1.</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>0.63</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>12.39</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>567</ram:ID>
+                    <ram:TypeCode>2</ram:TypeCode>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>3</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593127</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>13:10</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>MEDENBACH</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>ARAL</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS3475777</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>01011618</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0104125</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>212.40</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">48.95</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>2.46</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>106.43</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 64E</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>740</ram:ID>
+                    <ram:TypeCode>3</ram:TypeCode>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>4</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593127</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>17:29</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>DIVERSE / OTHERS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0018321</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000002487</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0104567</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>145.29</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">43.63</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250221</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250221</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.50</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>64.89</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT PL 64E</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>740</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>5</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0009</ram:SellerAssignedID>
+				<ram:Name>DIESEL</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593125</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>07:26</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>GESCHER</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>AVIA</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0005031</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000020000</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0144200</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>137.73</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">48.56</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250219</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250219</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>0.76</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>67.64</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 620</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>668</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>6</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0028</ram:SellerAssignedID>
+				<ram:Name>TRUCK DIESEL</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593125</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>07:21</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>GESCHER</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>AVIA</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0005031</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000009719</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0145000</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>136.47</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">51.57</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250224</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250224</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>0.80</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>71.18</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 620</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>668</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>7</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0078</ram:SellerAssignedID>
+				<ram:Name>Reinigungsservice (PKW)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593128</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>13:22</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>MR.WASH</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS9984161</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>6023203470</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0040230</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>1261.00</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="C62">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="C62">1.</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250221</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250221</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>0.68</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>13.29</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 622</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>783</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>8</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593128</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>12:40</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>DIVERSE / OTHERS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0018321</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000003012</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0040346</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>152.87</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">43.26</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250225</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250225</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.57</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>67.70</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 622</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>783</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>9</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593129</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>07:27</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>AHAUS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>ARAL</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0070048</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>01012724</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0038315</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>161.99</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">29.15</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250217</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.12</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>48.34</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>838</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>10</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593129</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>16:28</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>DIVERSE / OTHERS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0018321</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000002172</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0038800</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>146.96</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">41.74</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250220</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250220</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.45</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>62.79</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>838</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>11</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593129</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>07:02</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>AHAUS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>ARAL</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0070048</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>01014777</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0039250</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>162.00</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">39.63</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250225</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250225</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.52</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>65.72</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>838</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>12</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0036</ram:SellerAssignedID>
+				<ram:Name>EURO 95 (SUPER)</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593129</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>17:46</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>DIVERSE / OTHERS</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0018321</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>0000003523</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0038700</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>146.97</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">39.41</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250227</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250227</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.37</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>59.29</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>838</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>13</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0964</ram:SellerAssignedID>
+				<ram:Name>Autostrom nach Energiemenge (kWh) DC</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0110026693</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>17:32</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>CHARGEPOINT AUSTRI</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>CP00674680</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>459A8468BCBE2577</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0000000</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>67.00</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="KWH">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="KWH">64.704</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250216</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250216</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>43.35</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 68E</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>905</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>14</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0966</ram:SellerAssignedID>
+				<ram:Name>Autostrom nach Ladezeit DC</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0110026693</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>17:32</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>CHARGEPOINT AUSTRI</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>CP00674680</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>459A8468BCBE2577</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0000000</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>9.05</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="MIN">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="MIN">2.1</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250216</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250216</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>0.19</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL 68E</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>905</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:IncludedSupplyChainTradeLineItem>
+			<ram:AssociatedDocumentLineDocument>
+				<ram:LineID>15</ram:LineID>
+			</ram:AssociatedDocumentLineDocument>
+			<ram:SpecifiedTradeProduct>
+				<ram:SellerAssignedID>0009</ram:SellerAssignedID>
+				<ram:Name>DIESEL</ram:Name>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>LeoID</ram:Description>
+					<ram:Value>704310.0109593130</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Uhrzeit</ram:Description>
+					<ram:Value>18:19</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Ort</ram:Description>
+					<ram:Value>BOCHUM</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Marke</ram:Description>
+					<ram:Value>ARAL</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Servicestelle</ram:Description>
+					<ram:Value>SS0070435</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Lieferscheinnummer</ram:Description>
+					<ram:Value>02021148</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:ApplicableProductCharacteristic>
+					<ram:Description>Kilometerstand</ram:Description>
+					<ram:Value>0068430</ram:Value>
+				</ram:ApplicableProductCharacteristic>
+				<ram:OriginTradeCountry>
+					<ram:ID>DE</ram:ID>
+				</ram:OriginTradeCountry>
+			</ram:SpecifiedTradeProduct>
+			<ram:SpecifiedLineTradeAgreement>
+				<ram:NetPriceProductTradePrice>
+					<ram:ChargeAmount>160.38</ram:ChargeAmount>
+					<ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+				</ram:NetPriceProductTradePrice>
+			</ram:SpecifiedLineTradeAgreement>
+			<ram:SpecifiedLineTradeDelivery>
+				<ram:BilledQuantity unitCode="LTR">67.37</ram:BilledQuantity>
+			</ram:SpecifiedLineTradeDelivery>
+			<ram:SpecifiedLineTradeSettlement>
+				<ram:ApplicableTradeTax>
+					<ram:TypeCode>VAT</ram:TypeCode>
+					<ram:CategoryCode>S</ram:CategoryCode>
+					<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+				</ram:ApplicableTradeTax>
+				<ram:BillingSpecifiedPeriod>
+					<ram:StartDateTime>
+						<udt:DateTimeString format="102">20250220</udt:DateTimeString>
+					</ram:StartDateTime>
+					<ram:EndDateTime>
+						<udt:DateTimeString format="102">20250220</udt:DateTimeString>
+					</ram:EndDateTime>
+				</ram:BillingSpecifiedPeriod>
+				<ram:SpecifiedTradeAllowanceCharge>
+					<ram:ChargeIndicator>
+						<udt:Indicator>true</udt:Indicator>
+					</ram:ChargeIndicator>
+					<ram:ActualAmount>1.22</ram:ActualAmount>
+					<ram:Reason>Fee</ram:Reason>
+				</ram:SpecifiedTradeAllowanceCharge>
+				<ram:SpecifiedTradeSettlementLineMonetarySummation>
+					<ram:LineTotalAmount>109.27</ram:LineTotalAmount>
+				</ram:SpecifiedTradeSettlementLineMonetarySummation>
+				<ram:AdditionalReferencedDocument>
+					<ram:IssuerAssignedID>WAT-PL621</ram:IssuerAssignedID>
+					<ram:TypeCode>130</ram:TypeCode>
+					<ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+				</ram:AdditionalReferencedDocument>
+				<ram:ReceivableSpecifiedTradeAccountingAccount>
+					<ram:ID>773</ram:ID>
+				</ram:ReceivableSpecifiedTradeAccountingAccount>
+			</ram:SpecifiedLineTradeSettlement>
+		</ram:IncludedSupplyChainTradeLineItem>
+		<ram:ApplicableHeaderTradeAgreement>
+			<ram:SellerTradeParty>
+				<ram:ID>DE119375450</ram:ID>
+				<ram:Name>DKV Euro Service GmbH + Co. KG</ram:Name>
+				<ram:DefinedTradeContact>
+					<ram:PersonName>DKV Kundenberatung</ram:PersonName>
+					<ram:TelephoneUniversalCommunication>
+						<ram:CompleteNumber>0049 (2102) 5518-444</ram:CompleteNumber>
+					</ram:TelephoneUniversalCommunication>
+					<ram:EmailURIUniversalCommunication>
+						<ram:URIID>Kundenberatung@dkv-mobility.com</ram:URIID>
+					</ram:EmailURIUniversalCommunication>
+				</ram:DefinedTradeContact>
+				<ram:PostalTradeAddress>
+					<ram:PostcodeCode>40882</ram:PostcodeCode>
+					<ram:LineOne>Balcke-DÃŒrr-Allee 3</ram:LineOne>
+					<ram:CityName>Ratingen</ram:CityName>
+					<ram:CountryID>DE</ram:CountryID>
+				</ram:PostalTradeAddress>
+				<ram:SpecifiedTaxRegistration>
+					<ram:ID schemeID="VA">DE119375450</ram:ID>
+				</ram:SpecifiedTaxRegistration>
+			</ram:SellerTradeParty>
+			<ram:BuyerTradeParty>
+				<ram:ID>XXX</ram:ID>
+				<ram:Name>XXX</ram:Name>
+				<ram:PostalTradeAddress>
+					<ram:PostcodeCode>XXX</ram:PostcodeCode>
+					<ram:LineOne>XXX</ram:LineOne>
+					<ram:CityName>Bochum</ram:CityName>
+					<ram:CountryID>DE</ram:CountryID>
+				</ram:PostalTradeAddress>
+				<ram:SpecifiedTaxRegistration>
+					<ram:ID schemeID="VA">DEXXXXXXXXX</ram:ID>
+				</ram:SpecifiedTaxRegistration>
+			</ram:BuyerTradeParty>
+			<ram:AdditionalReferencedDocument>
+				<ram:IssuerAssignedID>25/642102534/001</ram:IssuerAssignedID>
+				<ram:TypeCode>130</ram:TypeCode>
+			</ram:AdditionalReferencedDocument>
+		</ram:ApplicableHeaderTradeAgreement>
+		<ram:ApplicableHeaderTradeDelivery/>
+		<ram:ApplicableHeaderTradeSettlement>
+			<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+			<ram:SpecifiedTradeSettlementPaymentMeans>
+				<ram:TypeCode>70</ram:TypeCode>
+				<ram:PayeePartyCreditorFinancialAccount>
+					<ram:IBANID>XXX</ram:IBANID>
+				</ram:PayeePartyCreditorFinancialAccount>
+			</ram:SpecifiedTradeSettlementPaymentMeans>
+			<ram:ApplicableTradeTax>
+				<ram:CalculatedAmount>164.18</ram:CalculatedAmount>
+				<ram:TypeCode>VAT</ram:TypeCode>
+				<ram:BasisAmount>864.13</ram:BasisAmount>
+				<ram:CategoryCode>S</ram:CategoryCode>
+				<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+			</ram:ApplicableTradeTax>
+			<ram:SpecifiedTradePaymentTerms>
+				<ram:Description>&lt;b&gt;Bitte geben Sie bei jeder Zahlung immer die &lt;u&gt;Kundennummer&lt;/u&gt; und die &lt;u&gt;Abrechnungsnummer&lt;/u&gt; an.&lt;/b&gt; Â»Ihr Zahlungsziel betrÃ€gt: 010 Tage nach Rechnungsdatum. Die Abbuchung erfolgt am: &lt;b&gt;Montag, 10.03.2025&lt;/b&gt;</ram:Description>
+				<ram:DueDateDateTime>
+					<udt:DateTimeString format="102">20250310</udt:DateTimeString>
+				</ram:DueDateDateTime>
+			</ram:SpecifiedTradePaymentTerms>
+			<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+				<ram:LineTotalAmount>864.13</ram:LineTotalAmount>
+				<ram:TaxBasisTotalAmount>864.13</ram:TaxBasisTotalAmount>
+				<ram:TaxTotalAmount currencyID="EUR">164.18</ram:TaxTotalAmount>
+				<ram:GrandTotalAmount>1028.31</ram:GrandTotalAmount>
+				<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+				<ram:DuePayableAmount>1028.31</ram:DuePayableAmount>
+			</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>567</ram:ID>
+                <ram:TypeCode>1</ram:TypeCode>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>740</ram:ID>
+                <ram:TypeCode>2</ram:TypeCode>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+		</ram:ApplicableHeaderTradeSettlement>
+	</rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268_extended.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268_extended.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/issues/xml_issue_268_extended.xml	(revision 8542)
@@ -0,0 +1,1346 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>XXX</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20250228</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>SEPA-Lastschrift</ram:Content>
+            <ram:SubjectCode>AAB</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>PAYMENTAMOUNT:1028.31</ram:Content>
+            <ram:SubjectCode>PMD</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>PAYMENTCURRENCY:EUR</ram:Content>
+            <ram:SubjectCode>PMD</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593124</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>14:38</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>DÃSSELDORF</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>SHELL</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0004702</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>003969</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0102380</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>168.11</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">41.64</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.66</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>71.66</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:InvoiceReferencedDocument>
+                    <ram:IssuerAssignedID>INV-1</ram:IssuerAssignedID>
+                    <ram:LineID>1</ram:LineID>
+                    <ram:TypeCode>71</ram:TypeCode>
+                    <ram:FormattedIssueDateTime>
+                        <a:DateTimeString format="102">20250312</a:DateTimeString>
+                    </ram:FormattedIssueDateTime>
+                </ram:InvoiceReferencedDocument>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 120 (2)</ram:IssuerAssignedID>
+                    <ram:TypeCode>130 (2)</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ (2)</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>567</ram:ID>
+                    <ram:TypeCode>1</ram:TypeCode>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0078</ram:SellerAssignedID>
+                <ram:Name>Reinigungsservice (PKW)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593124</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>17:31</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>GELSENKIRC</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>SOFT CAR WASH</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS3497210</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000002913</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0102442</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>1176.00</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="C62">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>0.63</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>12.39</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 120</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>567</ram:ID>
+                    <ram:TypeCode>2</ram:TypeCode>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593127</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>13:10</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>MEDENBACH</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>ARAL</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS3475777</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>01011618</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0104125</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>212.40</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">48.95</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>2.46</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>106.43</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 64E</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>740</ram:ID>
+                    <ram:TypeCode>3</ram:TypeCode>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>4</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593127</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>17:29</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>DIVERSE / OTHERS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0018321</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000002487</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0104567</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>145.29</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">43.63</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250221</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250221</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.50</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>64.89</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT PL 64E</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>740</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>5</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0009</ram:SellerAssignedID>
+                <ram:Name>DIESEL</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593125</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>07:26</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>GESCHER</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>AVIA</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0005031</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000020000</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0144200</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>137.73</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">48.56</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250219</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250219</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>0.76</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>67.64</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 620</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>668</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>6</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0028</ram:SellerAssignedID>
+                <ram:Name>TRUCK DIESEL</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593125</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>07:21</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>GESCHER</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>AVIA</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0005031</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000009719</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0145000</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>136.47</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">51.57</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250224</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250224</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>0.80</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>71.18</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 620</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>668</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>7</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0078</ram:SellerAssignedID>
+                <ram:Name>Reinigungsservice (PKW)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593128</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>13:22</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>MR.WASH</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS9984161</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>6023203470</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0040230</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>1261.00</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="C62">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250221</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250221</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>0.68</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>13.29</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 622</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>783</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>8</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593128</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>12:40</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>DIVERSE / OTHERS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0018321</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000003012</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0040346</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>152.87</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">43.26</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250225</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250225</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.57</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>67.70</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 622</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>783</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>9</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593129</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>07:27</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>AHAUS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>ARAL</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0070048</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>01012724</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0038315</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>161.99</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">29.15</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250217</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.12</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>48.34</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>838</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>10</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593129</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>16:28</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>DIVERSE / OTHERS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0018321</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000002172</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0038800</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>146.96</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">41.74</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250220</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250220</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.45</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>62.79</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>838</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>11</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593129</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>07:02</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>AHAUS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>ARAL</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0070048</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>01014777</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0039250</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>162.00</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">39.63</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250225</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250225</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.52</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>65.72</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>838</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>12</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0036</ram:SellerAssignedID>
+                <ram:Name>EURO 95 (SUPER)</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593129</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>17:46</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>DIVERSE / OTHERS</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0018321</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>0000003523</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0038700</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>146.97</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">39.41</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250227</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250227</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.37</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>59.29</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 625</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>838</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>13</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0964</ram:SellerAssignedID>
+                <ram:Name>Autostrom nach Energiemenge (kWh) DC</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0110026693</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>17:32</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>CHARGEPOINT AUSTRI</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>CP00674680</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>459A8468BCBE2577</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0000000</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>67.00</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="KWH">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KWH">64.704</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250216</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250216</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>43.35</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 68E</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>905</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>14</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0966</ram:SellerAssignedID>
+                <ram:Name>Autostrom nach Ladezeit DC</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0110026693</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>17:32</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>CHARGEPOINT AUSTRI</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>CP00674680</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>459A8468BCBE2577</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0000000</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.05</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="MIN">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="MIN">2.1</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250216</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250216</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>0.19</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL 68E</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>905</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>15</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:SellerAssignedID>0009</ram:SellerAssignedID>
+                <ram:Name>DIESEL</ram:Name>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>LeoID</ram:Description>
+                    <ram:Value>704310.0109593130</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Uhrzeit</ram:Description>
+                    <ram:Value>18:19</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Ort</ram:Description>
+                    <ram:Value>BOCHUM</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Marke</ram:Description>
+                    <ram:Value>ARAL</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Servicestelle</ram:Description>
+                    <ram:Value>SS0070435</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Lieferscheinnummer</ram:Description>
+                    <ram:Value>02021148</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>Kilometerstand</ram:Description>
+                    <ram:Value>0068430</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+                <ram:OriginTradeCountry>
+                    <ram:ID>DE</ram:ID>
+                </ram:OriginTradeCountry>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>160.38</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="LTR">100.</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="LTR">67.37</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20250220</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20250220</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.22</ram:ActualAmount>
+                    <ram:Reason>Fee</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>109.27</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+                <ram:AdditionalReferencedDocument>
+                    <ram:IssuerAssignedID>WAT-PL621</ram:IssuerAssignedID>
+                    <ram:TypeCode>130</ram:TypeCode>
+                    <ram:ReferenceTypeCode>ABZ</ram:ReferenceTypeCode>
+                </ram:AdditionalReferencedDocument>
+                <ram:ReceivableSpecifiedTradeAccountingAccount>
+                    <ram:ID>773</ram:ID>
+                </ram:ReceivableSpecifiedTradeAccountingAccount>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:SellerTradeParty>
+                <ram:ID>DE119375450</ram:ID>
+                <ram:Name>DKV Euro Service GmbH + Co. KG</ram:Name>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>DKV Kundenberatung</ram:PersonName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>0049 (2102) 5518-444</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>Kundenberatung@dkv-mobility.com</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>40882</ram:PostcodeCode>
+                    <ram:LineOne>Balcke-DÃŒrr-Allee 3</ram:LineOne>
+                    <ram:CityName>Ratingen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE119375450</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>XXX</ram:ID>
+                <ram:Name>XXX</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>XXX</ram:PostcodeCode>
+                    <ram:LineOne>XXX</ram:LineOne>
+                    <ram:CityName>Bochum</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DEXXXXXXXXX</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:BuyerTradeParty>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>25/642102534/001</ram:IssuerAssignedID>
+                <ram:TypeCode>130</ram:TypeCode>
+            </ram:AdditionalReferencedDocument>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery/>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>70</ram:TypeCode>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>XXX</ram:IBANID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>164.18</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>864.13</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>&lt;b&gt;Bitte geben Sie bei jeder Zahlung immer die &lt;u&gt;Kundennummer&lt;/u&gt; und die &lt;u&gt;Abrechnungsnummer&lt;/u&gt; an.&lt;/b&gt; Â»Ihr Zahlungsziel betrÃ€gt: 010 Tage nach Rechnungsdatum. Die Abbuchung erfolgt am: &lt;b&gt;Montag, 10.03.2025&lt;/b&gt;</ram:Description>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20250310</udt:DateTimeString>
+                </ram:DueDateDateTime>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>864.13</ram:LineTotalAmount>
+                <ram:TaxBasisTotalAmount>864.13</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">164.18</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>1028.31</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>1028.31</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>567</ram:ID>
+                <ram:TypeCode>1</ram:TypeCode>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>740</ram:ID>
+                <ram:TypeCode>2</ram:TypeCode>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/txt_addattachment_1.txt
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/txt_addattachment_1.txt	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/txt_addattachment_1.txt	(revision 8542)
@@ -0,0 +1,1 @@
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_basic_1.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_basic_1.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_basic_1.xml	(revision 8542)
@@ -0,0 +1,205 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- English disclaimer below.-->
+<!--Nutzungsrechte 
+ZUGFeRD Datenformat Version 2.1.1, 01.07.2020
+Beispiel Version 01.07.2020
+ 
+Zweck des Forums elektronisch Rechnung Deutschland, welches am 31. MÃ€rz 2010 unter der Arbeitsgemeinschaft fÃŒr 
+wirtschaftliche Verwaltung e. V. gegrÃŒndet wurde, ist u. a. die Schaffung und Spezifizierung eines offenen Datenformats 
+fÃŒr strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter 
+Technologien (âZUGFeRD Datenformatâ).
+ 
+Das ZUGFeRD Datenformat wird nach MaÃgabe des FeRD sowohl Unternehmen als auch der Ã¶ffentlichen Verwaltung 
+frei zugÃ€nglich gemacht. HierfÃŒr bietet FeRD allen Unternehmen und Organisationen der Ã¶ffentlichen Verwaltung eine 
+Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD-Datenformats zu fairen, sachgerechten und nicht 
+diskriminierenden Bedingungen an.
+ 
+Die Spezifikation des FeRD zur Implementierung des ZUGFeRD Datenformats ist in ihrer jeweils geltenden Fassung 
+abrufbar unter www.ferd-net.de.
+ 
+Im Einzelnen schlieÃt die NutzungsgewÃ€hrung ein: 
+=====================================
+ 
+FeRD rÃ€umt eine Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD Datenformats in der jeweils 
+geltenden und akzeptierten Fassung (www.ferd-net.de) ein. 
+Die Lizenz beinhaltet ein unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, 
+Weiterbearbeitung und Verbindung mit anderen Produkten.
+Die Lizenz gilt insbesondere fÃŒr die Entwicklung, die Gestaltung, die Herstellung, den Verkauf, die Nutzung oder 
+anderweitige Verwendung des ZUGFeRD Datenformats fÃŒr Hardware- und/oder Softwareprodukte sowie sonstige 
+Anwendungen und Dienste. 
+Diese Lizenz schlieÃt nicht die wesentlichen Patente der Mitglieder von FeRD ein. Als wesentliche Patente sind Patente 
+und Patentanmeldungen weltweit zu verstehen, die einen oder mehrere PatentansprÃŒche beinhalten, bei denen es sich um 
+notwendige AnsprÃŒche handelt. Notwendige AnsprÃŒche sind lediglich jene AnsprÃŒche der Wesentlichen Patente, die durch 
+die Implementierung des ZUGFeRD Datenformats notwendigerweise verletzt wÃŒrden. 
+Der Lizenznehmer ist berechtigt, seinen jeweiligen Konzerngesellschaften ein unbefristetes, weltweites, nicht ÃŒbertragbares, 
+unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, Weiterbearbeitung und Verbindung mit 
+anderen Produkten einzurÃ€umen. 
+ 
+Die Lizenz wird kostenfrei zur VerfÃŒgung gestellt. 
+ 
+AuÃer im Falle vorsÃ€tzlichen Verschuldens oder grober FahrlÃ€ssigkeit haftet FeRD weder fÃŒr Nutzungsausfall, entgangenen 
+Gewinn, Datenverlust, Kommunikationsverlust, Einnahmeausfall, VertragseinbuÃen, GeschÃ€ftsausfall oder fÃŒr Kosten, 
+SchÃ€den, Verluste oder Haftpflichten im Zusammenhang mit einer Unterbrechung der GeschÃ€ftstÃ€tigkeit, noch fÃŒr konkrete, 
+beilÃ€ufig entstandene, mittelbare SchÃ€den, Straf- oder FolgeschÃ€den und zwar auch dann nicht, wenn die MÃ¶glichkeit der 
+Kosten, Verluste bzw. SchÃ€den hÃ€tte normalerweise vorhergesehen werden kÃ¶nnen.-->
+<!--Right of use 
+ZUGFeRD Data format version 2.1.1, July 1, 2020
+ 
+The purpose of the Forum elektronische Rechnung Deutschland (FeRD), which was founded on March 31, 2010 under the 
+umbrella of Arbeitsgemeinschaft fÃŒr wirtschaftliche Verwaltung e. V., is, among other things, to create and specify an 
+open data format for structured electronic data exchange on the basis of open and non discriminatory, standardised 
+technologies ("ZUGFeRD data format").
+ 
+The ZUGFeRD data format is used by both companies and public administration according to the FeRD 
+made freely accessible. For this purpose FeRD offers all companies and organisations of the public administration a 
+License to use the copyrighted ZUGFeRD data format in a fair, appropriate and non 
+discriminatory conditions.
+ 
+The specification of the FeRD for the implementation of the ZUGFeRD data format is, in its currently valid version 
+available at www.ferd-net.de.
+ 
+In detail, the grant of use includes 
+=====================================
+ 
+FeRD grants a license for the use of the copyrighted ZUGFeRD data format in the respective 
+valid and accepted version (www.ferd-net.de). 
+The license includes an irrevocable right of use including the right of further development, 
+Further processing and connection with other products.
+The license applies in particular to the development, design, production, sale, use or 
+other use of the ZUGFeRD data format for hardware and/or software products and other 
+applications and services. 
+This license does not include the essential patents of the members of FeRD. The essential patents are patents 
+and patent applications worldwide which contain one or more claims that are 
+necessary claims. Necessary claims are only those claims of the essential patents which are 
+the implementation of the ZUGFeRD data format would necessarily be violated. 
+The Licensee is entitled to provide its respective group companies with an unlimited, worldwide, non-transferable, 
+irrevocable right of use including the right of further development, further processing and connection with 
+other products. 
+ 
+The license is provided free of charge. 
+ 
+Except in the case of intentional fault or gross negligence, FeRD is not liable for loss of use, loss of 
+Profit, loss of data, loss of communication, loss of revenue, loss of contracts, loss of business or for costs 
+damages, losses or liabilities in connection with an interruption of business, nor for concrete, 
+incidental, indirect, punitive or consequential damages, even if the possibility of 
+costs, losses or damages could normally have been foreseen.-->
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20200305</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Rechnung gemÃ€Ã Bestellung vom 01.03.2020.</ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Unsere GLN: 4000001123452
+                Ihre GLN: 4000001987658
+                Ihre Kundennummer: GE2020211
+                Zahlbar innerhalb 30 Tagen netto bis 04.04.2020, 3% Skonto innerhalb 10 Tagen bis 15.03.2020.
+            </ram:Content>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:Name>GTIN: 4012345001235, Unsere Art.-Nr.: TB100A4, TrennblÃ€tter A4</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.90</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:SellerTradeParty>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>Hans Muster</ram:LineOne>
+                    <ram:LineTwo>KundenstraÃe 15</ram:LineTwo>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20200305</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20200404</udt:DateTimeString>
+                </ram:DueDateDateTime>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>198.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">37.62</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>235.62</ram:GrandTotalAmount>
+                <ram:DuePayableAmount>235.62</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_dummy.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_dummy.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_dummy.xml	(revision 8542)
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<root>
+    <users>
+        <user>
+            <id>1</id>
+            <name>Max Mustermann</name>
+            <email>max.mustermann@example.com</email>
+            <city>Berlin</city>
+            <created_at>2026-01-01</created_at>
+            <status>active</status>
+            <amount_eur>129.90</amount_eur>
+        </user>
+    </users>
+</root>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_1.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_1.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_1.xml	(revision 8542)
@@ -0,0 +1,170 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
+    xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
+    xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10"
+    xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Rechnung gemÃ€Ã Bestellung vom 01.03.2018.</ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+                <ram:Name>TrennblÃ€tter A4</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000050986428</ram:GlobalID>
+                <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+                <ram:Name>Joghurt Banane</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">50.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>08154711</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:ID>549910</ram:ID>
+                <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>GE2020211</ram:ID>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>58</ram:TypeCode>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>DE5467894567876500</ram:IBANID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>19.25</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>275.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018</ram:Description>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>473.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>473.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">56.87</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>529.87</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>529.87</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_2.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_2.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_2.xml	(revision 8542)
@@ -0,0 +1,370 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- English disclaimer below.-->
+<!--Nutzungsrechte 
+ZUGFeRD Datenformat Version 2.1.1, 01.07.2020
+Beispiel Version 01.07.2020
+ 
+Zweck des Forums elektronisch Rechnung Deutschland, welches am 31. MÃ€rz 2010 unter der Arbeitsgemeinschaft fÃŒr 
+wirtschaftliche Verwaltung e. V. gegrÃŒndet wurde, ist u. a. die Schaffung und Spezifizierung eines offenen Datenformats 
+fÃŒr strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter 
+Technologien (âZUGFeRD Datenformatâ).
+ 
+Das ZUGFeRD Datenformat wird nach MaÃgabe des FeRD sowohl Unternehmen als auch der Ã¶ffentlichen Verwaltung 
+frei zugÃ€nglich gemacht. HierfÃŒr bietet FeRD allen Unternehmen und Organisationen der Ã¶ffentlichen Verwaltung eine 
+Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD-Datenformats zu fairen, sachgerechten und nicht 
+diskriminierenden Bedingungen an.
+ 
+Die Spezifikation des FeRD zur Implementierung des ZUGFeRD Datenformats ist in ihrer jeweils geltenden Fassung 
+abrufbar unter www.ferd-net.de.
+ 
+Im Einzelnen schlieÃt die NutzungsgewÃ€hrung ein: 
+=====================================
+ 
+FeRD rÃ€umt eine Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD Datenformats in der jeweils 
+geltenden und akzeptierten Fassung (www.ferd-net.de) ein. 
+Die Lizenz beinhaltet ein unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, 
+Weiterbearbeitung und Verbindung mit anderen Produkten.
+Die Lizenz gilt insbesondere fÃŒr die Entwicklung, die Gestaltung, die Herstellung, den Verkauf, die Nutzung oder 
+anderweitige Verwendung des ZUGFeRD Datenformats fÃŒr Hardware- und/oder Softwareprodukte sowie sonstige 
+Anwendungen und Dienste. 
+Diese Lizenz schlieÃt nicht die wesentlichen Patente der Mitglieder von FeRD ein. Als wesentliche Patente sind Patente 
+und Patentanmeldungen weltweit zu verstehen, die einen oder mehrere PatentansprÃŒche beinhalten, bei denen es sich um 
+notwendige AnsprÃŒche handelt. Notwendige AnsprÃŒche sind lediglich jene AnsprÃŒche der Wesentlichen Patente, die durch 
+die Implementierung des ZUGFeRD Datenformats notwendigerweise verletzt wÃŒrden. 
+Der Lizenznehmer ist berechtigt, seinen jeweiligen Konzerngesellschaften ein unbefristetes, weltweites, nicht ÃŒbertragbares, 
+unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, Weiterbearbeitung und Verbindung mit 
+anderen Produkten einzurÃ€umen. 
+ 
+Die Lizenz wird kostenfrei zur VerfÃŒgung gestellt. 
+ 
+AuÃer im Falle vorsÃ€tzlichen Verschuldens oder grober FahrlÃ€ssigkeit haftet FeRD weder fÃŒr Nutzungsausfall, entgangenen 
+Gewinn, Datenverlust, Kommunikationsverlust, Einnahmeausfall, VertragseinbuÃen, GeschÃ€ftsausfall oder fÃŒr Kosten, 
+SchÃ€den, Verluste oder Haftpflichten im Zusammenhang mit einer Unterbrechung der GeschÃ€ftstÃ€tigkeit, noch fÃŒr konkrete, 
+beilÃ€ufig entstandene, mittelbare SchÃ€den, Straf- oder FolgeschÃ€den und zwar auch dann nicht, wenn die MÃ¶glichkeit der 
+Kosten, Verluste bzw. SchÃ€den hÃ€tte normalerweise vorhergesehen werden kÃ¶nnen.-->
+<!--Right of use 
+ZUGFeRD Data format version 2.1.1, July 1, 2020
+ 
+The purpose of the Forum elektronische Rechnung Deutschland (FeRD), which was founded on March 31, 2010 under the 
+umbrella of Arbeitsgemeinschaft fÃŒr wirtschaftliche Verwaltung e. V., is, among other things, to create and specify an 
+open data format for structured electronic data exchange on the basis of open and non discriminatory, standardised 
+technologies ("ZUGFeRD data format").
+ 
+The ZUGFeRD data format is used by both companies and public administration according to the FeRD 
+made freely accessible. For this purpose FeRD offers all companies and organisations of the public administration a 
+License to use the copyrighted ZUGFeRD data format in a fair, appropriate and non 
+discriminatory conditions.
+ 
+The specification of the FeRD for the implementation of the ZUGFeRD data format is, in its currently valid version 
+available at www.ferd-net.de.
+ 
+In detail, the grant of use includes 
+=====================================
+ 
+FeRD grants a license for the use of the copyrighted ZUGFeRD data format in the respective 
+valid and accepted version (www.ferd-net.de). 
+The license includes an irrevocable right of use including the right of further development, 
+Further processing and connection with other products.
+The license applies in particular to the development, design, production, sale, use or 
+other use of the ZUGFeRD data format for hardware and/or software products and other 
+applications and services. 
+This license does not include the essential patents of the members of FeRD. The essential patents are patents 
+and patent applications worldwide which contain one or more claims that are 
+necessary claims. Necessary claims are only those claims of the essential patents which are 
+the implementation of the ZUGFeRD data format would necessarily be violated. 
+The Licensee is entitled to provide its respective group companies with an unlimited, worldwide, non-transferable, 
+irrevocable right of use including the right of further development, further processing and connection with 
+other products. 
+ 
+The license is provided free of charge. 
+ 
+Except in the case of intentional fault or gross negligence, FeRD is not liable for loss of use, loss of 
+Profit, loss of data, loss of communication, loss of revenue, loss of contracts, loss of business or for costs 
+damages, losses or liabilities in connection with an interruption of business, nor for concrete, 
+incidental, indirect, punitive or consequential damages, even if the possibility of 
+costs, losses or damages could normally have been foreseen.-->
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20180605</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>
+                Rechnung gemÃ€Ã Bestellung Nr. 2018-471331 vom 01.03.2018.
+            </ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>
+                Es bestehen Rabatt- und Bonusvereinbarungen.
+            </ram:Content>
+            <ram:SubjectCode>AAK</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+                <ram:IncludedNote>
+                    <ram:Content>Wir erlauben uns Ihnen folgende Positionen aus der Lieferung Nr. 2018-51112 in Rechnung zu stellen:</ram:Content>
+                </ram:IncludedNote>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:SellerAssignedID>KR3M</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Kunstrasen grÃŒn 3m breit</ram:Name>
+                <ram:Description>300cm x 100 cm</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>4.0000</ram:ChargeAmount>
+                    <ram:AppliedTradeAllowanceCharge>
+                        <ram:ChargeIndicator>
+                            <udt:Indicator>false</udt:Indicator>
+                        </ram:ChargeIndicator>
+                        <ram:ActualAmount>0.6667</ram:ActualAmount>
+                    </ram:AppliedTradeAllowanceCharge>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>3.3333</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="MTK">3.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>10.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000050986428</ram:GlobalID>
+                <ram:SellerAssignedID>SFK5</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Schweinesteak</ram:Name>
+                <ram:Description>aus Deutschland</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KGM">5.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>27.50</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000001234561</ram:GlobalID>
+                <ram:SellerAssignedID>GTRWA5</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Mineralwasser Medium 12 x 1,0l PET
+                </ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>5.4900</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.4900</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>109.80</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>4</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000001234578</ram:GlobalID>
+                <ram:SellerAssignedID>PFA5</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Pfand</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>2.7700</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>2.7700</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>55.40</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>08154713</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>GE2020211</ram:ID>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+            <ram:BuyerOrderReferencedDocument>
+                <ram:IssuerAssignedID>2013-471331</ram:IssuerAssignedID>
+            </ram:BuyerOrderReferencedDocument>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20180603</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>9.06</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>129.37</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>12.24</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>64.40</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>false</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:BasisAmount>10.00</ram:BasisAmount>
+                <ram:ActualAmount>1.00</ram:ActualAmount>
+                <ram:Reason>Sondernachlass</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>false</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:BasisAmount>137.30</ram:BasisAmount>
+                <ram:ActualAmount>13.73</ram:ActualAmount>
+                <ram:Reason>Sondernachlass</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>true</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:BasisAmount>137.30</ram:BasisAmount>
+                <ram:ActualAmount>5.80</ram:ActualAmount>
+                <ram:Reason>Versandkosten</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Zahlbar innerhalb 30 Tagen netto bis 04.07.2018, 3% Skonto innerhalb 10 Tagen bis 15.06.2018</ram:Description>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>202.70</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>5.80</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>14.73</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>193.77</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">21.30</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>215.07</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>50.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>165.07</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_3.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_3.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_3.xml	(revision 8542)
@@ -0,0 +1,425 @@
+﻿<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <rsm:ExchangedDocumentContext>
+        <ram:BusinessProcessSpecifiedDocumentContextParameter>
+            <ram:ID>A1</ram:ID>
+        </ram:BusinessProcessSpecifiedDocumentContextParameter>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>F20200024</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20200115</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>FOURNISSEUR F SARL au capital de 50 000 EUR</ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>RCS MAVILLE 123 456 789</ram:Content>
+            <ram:SubjectCode>ABL</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Tout retard de paiement engendre une pénalité exigible à compter de la date d'échéance, calculée sur la base de trois fois le taux d'intérêt légal. Indemnité forfaitaire pour frais de recouvrement en cas de retard de paiement : 40 €.</ram:Content>
+            <ram:SubjectCode>PMT</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">598785412598745</ram:GlobalID>
+                <ram:Name>PRESTATION SUPPORT</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:BuyerOrderReferencedDocument>
+                    <ram:LineID>1</ram:LineID>
+                </ram:BuyerOrderReferencedDocument>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>60.0000</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>E</ram:CategoryCode>
+                    <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>100</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:Reason>FRAIS PALETTE</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>60.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>FOURNITURES DIVERSES</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:BuyerOrderReferencedDocument>
+                    <ram:LineID>3</ram:LineID>
+                </ram:BuyerOrderReferencedDocument>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>30.0000</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="C62">3.0000</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">3.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>2.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>71</ram:ReasonCode>
+                    <ram:Reason>REMISE VOLUME</ram:Reason>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>false</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>100</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeAllowanceCharge>
+                    <ram:ChargeIndicator>
+                        <udt:Indicator>true</udt:Indicator>
+                    </ram:ChargeIndicator>
+                    <ram:ActualAmount>1.00</ram:ActualAmount>
+                    <ram:ReasonCode>ADL</ram:ReasonCode>
+                </ram:SpecifiedTradeAllowanceCharge>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>28.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>APPEL</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:BuyerOrderReferencedDocument>
+                    <ram:LineID>2</ram:LineID>
+                </ram:BuyerOrderReferencedDocument>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>7.0000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>7.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>SERVEXEC</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:ID>123</ram:ID>
+                <ram:GlobalID schemeID="0088">587451236587</ram:GlobalID>
+                <ram:Name>LE FOURNISSEUR</ram:Name>
+                <ram:SpecifiedLegalOrganization>
+                    <ram:ID schemeID="0002">12345678900014</ram:ID>
+                    <ram:TradingBusinessName>SELLER TRADE NAME</ram:TradingBusinessName>
+                </ram:SpecifiedLegalOrganization>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>M. CONTACT</ram:PersonName>
+                    <ram:DepartmentName>DEP SELLER</ram:DepartmentName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>01 02 03 54 87</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>seller@seller.com</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>75018</ram:PostcodeCode>
+                    <ram:LineOne>35 rue d'ici</ram:LineOne>
+                    <ram:LineTwo>Seller line 2</ram:LineTwo>
+                    <ram:LineThree>Seller line 3</ram:LineThree>
+                    <ram:CityName>PARIS</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">moi@seller.com</ram:URIID>
+                </ram:URIUniversalCommunication>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">FR32123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
+                <ram:Name>LE CLIENT</ram:Name>
+                <ram:SpecifiedLegalOrganization>
+                    <ram:ID schemeID="0002">98765432100029</ram:ID>
+                </ram:SpecifiedLegalOrganization>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>Buyer contact name</ram:PersonName>
+                    <ram:DepartmentName>Buyer dep</ram:DepartmentName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>01 01 25 45 87</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>buyer@buyer.com</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>06000</ram:PostcodeCode>
+                    <ram:LineOne>58 rue de la mer</ram:LineOne>
+                    <ram:LineTwo>Buyer line 2</ram:LineTwo>
+                    <ram:LineThree>Buyer line 3</ram:LineThree>
+                    <ram:CityName>NICE</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">me@buyer.com</ram:URIID>
+                </ram:URIUniversalCommunication>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:BuyerTradeParty>
+            <ram:SellerTaxRepresentativeTradeParty>
+                <ram:Name>SELLER TAX REP</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>75018</ram:PostcodeCode>
+                    <ram:LineOne>35 rue d'ici</ram:LineOne>
+                    <ram:LineTwo>Seller line 2</ram:LineTwo>
+                    <ram:LineThree>Seller line 3</ram:LineThree>
+                    <ram:CityName>PARIS</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTaxRepresentativeTradeParty>
+            <ram:BuyerOrderReferencedDocument>
+                <ram:IssuerAssignedID>PO201925478</ram:IssuerAssignedID>
+            </ram:BuyerOrderReferencedDocument>
+            <ram:ContractReferencedDocument>
+                <ram:IssuerAssignedID>CT2018120802</ram:IssuerAssignedID>
+            </ram:ContractReferencedDocument>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20200115</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+            <ram:DespatchAdviceReferencedDocument>
+                <ram:IssuerAssignedID>DESPADV002</ram:IssuerAssignedID>
+            </ram:DespatchAdviceReferencedDocument>
+            <ram:ReceivingAdviceReferencedDocument>
+                <ram:IssuerAssignedID>RECEIV-ADV002</ram:IssuerAssignedID>
+            </ram:ReceivingAdviceReferencedDocument>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:CreditorReferenceID>CREDID</ram:CreditorReferenceID>
+            <ram:PaymentReference>F20180023BUYER</ram:PaymentReference>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:PayeeTradeParty>
+                <ram:ID>123</ram:ID>
+                <ram:Name>PAYEE NAME</ram:Name>
+                <ram:SpecifiedLegalOrganization>
+                    <ram:ID schemeID="0002">123456789</ram:ID>
+                </ram:SpecifiedLegalOrganization>
+            </ram:PayeeTradeParty>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>30</ram:TypeCode>
+                <ram:PayerPartyDebtorFinancialAccount>
+                    <ram:IBANID>FRDEBIT</ram:IBANID>
+                </ram:PayerPartyDebtorFinancialAccount>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>FR76 1254 2547 2569 8542 5874 698</ram:IBANID>
+                    <ram:ProprietaryID>LOC BANK ACCOUNT</ram:ProprietaryID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>8.00</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>40.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:DueDateTypeCode>72</ram:DueDateTypeCode>
+                <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:ExemptionReason>VAT EXEMP</ram:ExemptionReason>
+                <ram:BasisAmount>60.00</ram:BasisAmount>
+                <ram:CategoryCode>E</ram:CategoryCode>
+                <ram:ExemptionReasonCode>vatex-eu-d</ram:ExemptionReasonCode>
+                <ram:DueDateTypeCode>72</ram:DueDateTypeCode>
+                <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>false</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:CalculationPercent>5.00</ram:CalculationPercent>
+                <ram:BasisAmount>100.00</ram:BasisAmount>
+                <ram:ActualAmount>5.00</ram:ActualAmount>
+                <ram:ReasonCode>95</ram:ReasonCode>
+                <ram:Reason>REMISE COMMERCIALE</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>true</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:CalculationPercent>10.00</ram:CalculationPercent>
+                <ram:BasisAmount>100.00</ram:BasisAmount>
+                <ram:ActualAmount>10.00</ram:ActualAmount>
+                <ram:ReasonCode>FC</ram:ReasonCode>
+                <ram:Reason>FRAIS DEPLACEMENT</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20200215</udt:DateTimeString>
+                </ram:DueDateDateTime>
+                <ram:DirectDebitMandateID>MANDATE PT</ram:DirectDebitMandateID>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>95.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>10.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>5.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">8.00</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>108.00</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>108.00</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>BUYER ACCOUNT REF</ram:ID>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_4.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_4.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_4.xml	(revision 8542)
@@ -0,0 +1,170 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Rechnung gemÃ€Ã Bestellung Nr. 2018-471331 vom 01.03.2018.</ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Es bestehen Rabatt- und Bonusvereinbarungen.</ram:Content>
+            <ram:SubjectCode>AAK</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+                <ram:Name>TrennblÃ€tter A4</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000050986428</ram:GlobalID>
+                <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+                <ram:Name>Joghurt Banane</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">50.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:SellerTradeParty>
+                <ram:ID>549910</ram:ID>
+                <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+                <ram:Name>Lieferant GmbH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>80333</ram:PostcodeCode>
+                    <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+                    <ram:CityName>MÃŒnchen</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">DE123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>GE2020211</ram:ID>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:CreditorReferenceID>DE98ZZZ09999999999</ram:CreditorReferenceID>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>59</ram:TypeCode>
+                <ram:PayerPartyDebtorFinancialAccount>
+                    <ram:IBANID>DE21860000000086001055</ram:IBANID>
+                </ram:PayerPartyDebtorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>19.25</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>275.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Der Betrag in HÃ¶he von EUR 529,87 wird am 20.03.2018 von Ihrem Konto per SEPA-Lastschrift eingezogen.</ram:Description>
+                <ram:DirectDebitMandateID>REF A-123</ram:DirectDebitMandateID>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>473.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>473.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">56.87</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>529.87</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>529.87</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_5.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_5.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_en16931_5.xml	(revision 8542)
@@ -0,0 +1,153 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
+    xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
+    xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10"
+    xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>471102</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>Rechnung gemÃ€Ã Bestellung vom 01.03.2018.</ram:Content>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>Lieferant GmbH
+                LieferantenstraÃe 20
+                80333 MÃŒnchen
+                Deutschland
+                GeschÃ€ftsfÃŒhrer: Hans Muster
+                Handelsregisternummer: H A 123
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+                <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+                <ram:Name>TrennblÃ€tter A4</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0160">4000050986428</ram:GlobalID>
+                <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+                <ram:Name>Joghurt Banane</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">50.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>08154711</ram:BuyerReference>
+            <ram:BuyerTradeParty>
+                <ram:ID>GE2020211</ram:ID>
+                <ram:Name>Kunden AG Mitte</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>69876</ram:PostcodeCode>
+                    <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+                    <ram:CityName>Frankfurt</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>58</ram:TypeCode>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>DE5467894567876500</ram:IBANID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>19.25</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>275.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>198.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018</ram:Description>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>473.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>473.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">56.87</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>529.87</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>529.87</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_1.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_1.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_1.xml	(revision 8542)
@@ -0,0 +1,378 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <rsm:ExchangedDocumentContext>
+        <ram:TestIndicator>
+            <udt:Indicator>true</udt:Indicator>
+        </ram:TestIndicator>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>KR87654321012</ram:ID>
+        <ram:Name>KOSTENRECHNUNG</ram:Name>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20181006</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:ContentCode>ST3</ram:ContentCode>
+            <ram:Content>Es bestehen Rabatt- oder Bonusvereinbarungen.</ram:Content>
+            <ram:SubjectCode>AAK</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:ContentCode>EEV</ram:ContentCode>
+            <ram:Content>Der VerkÃ€ufer bleibt EigentÃŒmer der Waren bis zur vollstÃ€ndigen ErfÃŒllung der Kaufpreisforderung.</ram:Content>
+            <ram:SubjectCode>AAJ</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>MUSTERLIEFERANT GMBH
+                BAHNHOFSTRASSE 99
+                99199 MUSTERHAUSEN
+                GeschÃ€ftsfÃŒhrung:
+                Max Mustermann
+                USt-IdNr: DE123456789
+                Telefon: +49 932 431 0
+                www.musterlieferant.de
+                HRB Nr. 372876
+                Amtsgericht Musterstadt
+                GLN 4304171000002
+            </ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">4123456000014</ram:GlobalID>
+                <ram:SellerAssignedID>WA997</ram:SellerAssignedID>
+                <ram:IndustryAssignedID>IndustryId</ram:IndustryAssignedID>
+                <ram:ModelID>ModelId</ram:ModelID>
+                <ram:Name>Wirkarbeit HT</ram:Name>
+                <ram:BatchID>BatchId</ram:BatchID>
+                <ram:BrandName>BrandeName</ram:BrandName>
+                <ram:ModelName>ModelName</ram:ModelName>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>ZÃ€hlpunkt</ram:Description>
+                    <ram:Value>DE0001346484600000000000000100038</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0520</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0520</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KWH">10000.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>52.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">4123456000021</ram:GlobalID>
+                <ram:SellerAssignedID>ÃST250</ram:SellerAssignedID>
+                <ram:Name>Ãkosteuer Lieferant</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0205</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0205</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KWH">10000.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>20.50</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">4260331811362</ram:GlobalID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Kommissionierer 1250032 D. Muster</ram:Name>
+                <ram:Description>Besteller: Hr. Mayer, Personalnr. 4488</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>15.0000</ram:ChargeAmount>
+                    <ram:AppliedTradeAllowanceCharge>
+                        <ram:ChargeIndicator>
+                            <udt:Indicator>false</udt:Indicator>
+                        </ram:ChargeIndicator>
+                        <ram:ActualAmount>4.5000</ram:ActualAmount>
+                        <ram:Reason>Artikelrabatt 1</ram:Reason>
+                    </ram:AppliedTradeAllowanceCharge>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>10.5000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="HUR">27.5000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>288.75</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>4</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">2001015001325</ram:GlobalID>
+                <ram:SellerAssignedID>FB05</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>FALTENBEUTEL 16x6x28 CM</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0105</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0105</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">3500.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>36.75</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>5</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">4123456000038</ram:GlobalID>
+                <ram:SellerAssignedID>KOP05</ram:SellerAssignedID>
+                <ram:BuyerAssignedID/>
+                <ram:Name>Kopierpapier A4</ram:Name>
+                <ram:Description>ZÃ€hlerstand von-bis: 543210 - 544420</ram:Description>
+                <ram:ApplicableProductCharacteristic>
+                    <ram:Description>ZÃ€hler-Nr.</ram:Description>
+                    <ram:Value>MG-X79318</ram:Value>
+                </ram:ApplicableProductCharacteristic>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:GrossPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0100</ram:ChargeAmount>
+                </ram:GrossPriceProductTradePrice>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>0.0100</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="H87">1210.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>12.10</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>08154712</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:ID>549910</ram:ID>
+                <ram:GlobalID schemeID="0088">4333741000005</ram:GlobalID>
+                <ram:Name>MUSTERLIEFERANT GMBH</ram:Name>
+                <ram:DefinedTradeContact>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>+49 932 431 500</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>max.mustermann@musterlieferant.de</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>99199</ram:PostcodeCode>
+                    <ram:LineOne>BAHNHOFSTRASSE 99</ram:LineOne>
+                    <ram:CityName>MUSTERHAUSEN</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="FC">201/113/40209</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>339420</ram:ID>
+                <ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
+                <ram:Name>MUSTER-KUNDE GMBH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>40235</ram:PostcodeCode>
+                    <ram:LineOne>KUNDENWEG 88</ram:LineOne>
+                    <ram:CityName>DUESSELDORF</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>A777123</ram:IssuerAssignedID>
+                <ram:TypeCode>130</ram:TypeCode>
+            </ram:AdditionalReferencedDocument>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ShipToTradeParty>
+                <ram:GlobalID schemeID="0088">4304171088093</ram:GlobalID>
+                <ram:Name>MUSTER-MARKT</ram:Name>
+                <ram:DefinedTradeContact>
+                    <ram:DepartmentName>7322</ram:DepartmentName>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>31157</ram:PostcodeCode>
+                    <ram:LineOne>HAUPTSTRASSE 44</ram:LineOne>
+                    <ram:CityName>SARSTEDT</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:ShipToTradeParty>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20180930</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+            <ram:DeliveryNoteReferencedDocument>
+                <ram:IssuerAssignedID>L87654321012</ram:IssuerAssignedID>
+            </ram:DeliveryNoteReferencedDocument>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>58</ram:TypeCode>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>DE5467894567876500</ram:IBANID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:InvoiceeTradeParty>
+                <ram:ID>339420</ram:ID>
+                <ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
+                <ram:Name>MUSTER-KUNDE GMBH</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>40235</ram:PostcodeCode>
+                    <ram:LineOne>KUNDENWEG 88</ram:LineOne>
+                    <ram:CityName>DUESSELDORF</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:InvoiceeTradeParty>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>76.67</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>403.55</ram:BasisAmount>
+                <ram:LineTotalBasisAmount>410.10</ram:LineTotalBasisAmount>
+                <ram:AllowanceChargeBasisAmount>-6.55</ram:AllowanceChargeBasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>false</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:BasisAmount>410.10</ram:BasisAmount>
+                <ram:ActualAmount>21.55</ram:ActualAmount>
+                <ram:Reason>Sonderrabatt</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedLogisticsServiceCharge>
+                <ram:Description>Transportkosten: Frachbetrag</ram:Description>
+                <ram:AppliedAmount>15.00</ram:AppliedAmount>
+                <ram:AppliedTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+                </ram:AppliedTradeTax>
+            </ram:SpecifiedLogisticsServiceCharge>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Skontovereinbarung: 2% bei Zahlung innerhalb 10 Tagen nach Rechnungsdatum</ram:Description>
+                <ram:ApplicableTradePaymentDiscountTerms>
+                    <ram:BasisPeriodMeasure unitCode="DAY">10</ram:BasisPeriodMeasure>
+                    <ram:BasisAmount>480.22</ram:BasisAmount>
+                    <ram:CalculationPercent>2.00</ram:CalculationPercent>
+                    <ram:ActualDiscountAmount>9.60</ram:ActualDiscountAmount>
+                </ram:ApplicableTradePaymentDiscountTerms>
+                <ram:ApplicableTradePaymentPenaltyTerms>
+                    <ram:BasisPeriodMeasure unitCode="DAY">30</ram:BasisPeriodMeasure>
+                    <ram:BasisAmount>480.22</ram:BasisAmount>
+                    <ram:CalculationPercent>5.00</ram:CalculationPercent>
+                    <ram:ActualPenaltyAmount>24.01</ram:ActualPenaltyAmount>
+                </ram:ApplicableTradePaymentPenaltyTerms>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>410.10</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>15.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>21.55</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>403.55</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">76.67</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>480.22</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>480.22</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+            <ram:InvoiceReferencedDocument>
+                <ram:IssuerAssignedID>S-INV1</ram:IssuerAssignedID>
+                <ram:TypeCode>83</ram:TypeCode>
+                <ram:FormattedIssueDateTime>
+                    <qdt:DateTimeString format="102">20240930</qdt:DateTimeString>
+                </ram:FormattedIssueDateTime>
+            </ram:InvoiceReferencedDocument>
+            <ram:InvoiceReferencedDocument>
+                <ram:IssuerAssignedID>S-INV2</ram:IssuerAssignedID>
+                <ram:TypeCode>84</ram:TypeCode>
+                <ram:FormattedIssueDateTime>
+                    <qdt:DateTimeString format="102">20241031</qdt:DateTimeString>
+                </ram:FormattedIssueDateTime>
+            </ram:InvoiceReferencedDocument>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_2.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_2.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_extended_2.xml	(revision 8542)
@@ -0,0 +1,304 @@
+﻿<?xml version='1.0' encoding='UTF-8'?>
+<rsm:CrossIndustryInvoice xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <rsm:ExchangedDocumentContext>
+        <ram:BusinessProcessSpecifiedDocumentContextParameter>
+            <ram:ID>A1</ram:ID>
+        </ram:BusinessProcessSpecifiedDocumentContextParameter>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>F20200027</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20200115</udt:DateTimeString>
+        </ram:IssueDateTime>
+        <ram:IncludedNote>
+            <ram:Content>FOURNISSEUR F SARL au capital de 50 000 EUR</ram:Content>
+            <ram:SubjectCode>REG</ram:SubjectCode>
+        </ram:IncludedNote>
+        <ram:IncludedNote>
+            <ram:Content>RCS MAVILLE 123 456 789</ram:Content>
+            <ram:SubjectCode>ABL</ram:SubjectCode>
+        </ram:IncludedNote>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:GlobalID schemeID="0088">598785412598745</ram:GlobalID>
+                <ram:Name>PRESTATION SUPPORT</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:BuyerOrderReferencedDocument>
+                    <ram:LineID>1</ram:LineID>
+                </ram:BuyerOrderReferencedDocument>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>60.0000</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="C62">1.0000</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20191201</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20191231</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>60.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>FOURNITURES DIVERSES</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:BuyerOrderReferencedDocument>
+                    <ram:LineID>3</ram:LineID>
+                </ram:BuyerOrderReferencedDocument>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>10.0000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">3.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20191201</udt:DateTimeString>
+                    </ram:StartDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>30.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>APPEL</ram:Name>
+                <ram:Description>Description</ram:Description>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>5.0000</ram:ChargeAmount>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="C62">1.0000</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20191231</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>5.00</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>SERVEXEC</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:GlobalID schemeID="0088">587451236587</ram:GlobalID>
+                <ram:Name>LE FOURNISSEUR</ram:Name>
+                <ram:SpecifiedLegalOrganization>
+                    <ram:ID schemeID="0002">12345678900014</ram:ID>
+                    <ram:TradingBusinessName>SELLER TRADE NAME</ram:TradingBusinessName>
+                </ram:SpecifiedLegalOrganization>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>75018</ram:PostcodeCode>
+                    <ram:LineOne>35 rue d'ici</ram:LineOne>
+                    <ram:LineTwo>Seller line 2</ram:LineTwo>
+                    <ram:CityName>PARIS</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">moi@seller.com</ram:URIID>
+                </ram:URIUniversalCommunication>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">FR32123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
+                <ram:Name>LE CLIENT</ram:Name>
+                <ram:SpecifiedLegalOrganization>
+                    <ram:ID schemeID="0002">98765432100029</ram:ID>
+                </ram:SpecifiedLegalOrganization>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>06000</ram:PostcodeCode>
+                    <ram:LineOne>58 rue de la mer</ram:LineOne>
+                    <ram:LineTwo>Buyer line 2</ram:LineTwo>
+                    <ram:CityName>NICE</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:URIUniversalCommunication>
+                    <ram:URIID schemeID="EM">me@buyer.com</ram:URIID>
+                </ram:URIUniversalCommunication>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">FR 05 987 654 321</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:BuyerTradeParty>
+            <ram:SellerOrderReferencedDocument>
+                <ram:IssuerAssignedID>SALES REF 2547</ram:IssuerAssignedID>
+            </ram:SellerOrderReferencedDocument>
+            <ram:BuyerOrderReferencedDocument>
+                <ram:IssuerAssignedID>PO201925478</ram:IssuerAssignedID>
+            </ram:BuyerOrderReferencedDocument>
+            <ram:ContractReferencedDocument>
+                <ram:IssuerAssignedID>CT2018120802</ram:IssuerAssignedID>
+            </ram:ContractReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>SUPPort doc</ram:IssuerAssignedID>
+                <ram:URIID>url:gffter</ram:URIID>
+                <ram:TypeCode>916</ram:TypeCode>
+                <ram:Name>support descript</ram:Name>
+            </ram:AdditionalReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>TENDER-002</ram:IssuerAssignedID>
+                <ram:TypeCode>50</ram:TypeCode>
+            </ram:AdditionalReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>REFCLI0215</ram:IssuerAssignedID>
+                <ram:TypeCode>130</ram:TypeCode>
+            </ram:AdditionalReferencedDocument>
+            <ram:SpecifiedProcuringProject>
+                <ram:ID>PROJET2547</ram:ID>
+                <ram:Name>Project reference</ram:Name>
+            </ram:SpecifiedProcuringProject>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery>
+            <ram:ShipToTradeParty>
+                <ram:GlobalID schemeID="0088">3654789851</ram:GlobalID>
+                <ram:Name>DEL Name</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>06000</ram:PostcodeCode>
+                    <ram:LineOne>DEL 58 rue de la mer</ram:LineOne>
+                    <ram:LineTwo>DEL line 2</ram:LineTwo>
+                    <ram:CityName>NICE</ram:CityName>
+                    <ram:CountryID>FR</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:ShipToTradeParty>
+            <ram:ActualDeliverySupplyChainEvent>
+                <ram:OccurrenceDateTime>
+                    <udt:DateTimeString format="102">20200115</udt:DateTimeString>
+                </ram:OccurrenceDateTime>
+            </ram:ActualDeliverySupplyChainEvent>
+            <ram:DespatchAdviceReferencedDocument>
+                <ram:IssuerAssignedID>DESPADV002</ram:IssuerAssignedID>
+            </ram:DespatchAdviceReferencedDocument>
+            <ram:ReceivingAdviceReferencedDocument>
+                <ram:IssuerAssignedID>RECEIV-ADV002</ram:IssuerAssignedID>
+            </ram:ReceivingAdviceReferencedDocument>
+        </ram:ApplicableHeaderTradeDelivery>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:PaymentReference>F20180023BUYER</ram:PaymentReference>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>30</ram:TypeCode>
+                <ram:PayeePartyCreditorFinancialAccount>
+                    <ram:IBANID>FR76 1254 2547 2569 8542 5874 698</ram:IBANID>
+                </ram:PayeePartyCreditorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>10.00</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>100.00</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:DueDateTypeCode>72</ram:DueDateTypeCode>
+                <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:BillingSpecifiedPeriod>
+                <ram:StartDateTime>
+                    <udt:DateTimeString format="102">20191201</udt:DateTimeString>
+                </ram:StartDateTime>
+                <ram:EndDateTime>
+                    <udt:DateTimeString format="102">20191231</udt:DateTimeString>
+                </ram:EndDateTime>
+            </ram:BillingSpecifiedPeriod>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>false</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:ActualAmount>5.00</ram:ActualAmount>
+                <ram:Reason>REMISE COMMERCIALE</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradeAllowanceCharge>
+                <ram:ChargeIndicator>
+                    <udt:Indicator>true</udt:Indicator>
+                </ram:ChargeIndicator>
+                <ram:ActualAmount>10.00</ram:ActualAmount>
+                <ram:Reason>FRAIS DEPLACEMENT</ram:Reason>
+                <ram:CategoryTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
+                </ram:CategoryTradeTax>
+            </ram:SpecifiedTradeAllowanceCharge>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20200215</udt:DateTimeString>
+                </ram:DueDateDateTime>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>95.00</ram:LineTotalAmount>
+                <ram:ChargeTotalAmount>10.00</ram:ChargeTotalAmount>
+                <ram:AllowanceTotalAmount>5.00</ram:AllowanceTotalAmount>
+                <ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">10.00</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>110.00</ram:GrandTotalAmount>
+                <ram:TotalPrepaidAmount>10.00</ram:TotalPrepaidAmount>
+                <ram:DuePayableAmount>100.00</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+            <ram:InvoiceReferencedDocument>
+                <ram:IssuerAssignedID>F20200003</ram:IssuerAssignedID>
+                <ram:FormattedIssueDateTime>
+                    <qdt:DateTimeString format="102">20191130</qdt:DateTimeString>
+                </ram:FormattedIssueDateTime>
+            </ram:InvoiceReferencedDocument>
+            <ram:ReceivableSpecifiedTradeAccountingAccount>
+                <ram:ID>BUYER ACCOUNT REF</ram:ID>
+            </ram:ReceivableSpecifiedTradeAccountingAccount>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_1.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_1.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_1.xml	(revision 8542)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dummy></dummy>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_2.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_2.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_invalid_2.xml	(revision 8542)
@@ -0,0 +1,1 @@
+Bad XML
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_1.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_1.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_1.xml	(revision 8542)
@@ -0,0 +1,265 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!-- English disclaimer below.-->
+<!--Nutzungsrechte 
+ZUGFeRD Datenformat Version 2.1.1, 01.07.2020
+Beispiel Version 01.07.2020
+ 
+Zweck des Forums elektronisch Rechnung Deutschland, welches am 31. MÃ€rz 2010 unter der Arbeitsgemeinschaft fÃŒr 
+wirtschaftliche Verwaltung e. V. gegrÃŒndet wurde, ist u. a. die Schaffung und Spezifizierung eines offenen Datenformats 
+fÃŒr strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter 
+Technologien (âZUGFeRD Datenformatâ).
+ 
+Das ZUGFeRD Datenformat wird nach MaÃgabe des FeRD sowohl Unternehmen als auch der Ã¶ffentlichen Verwaltung 
+frei zugÃ€nglich gemacht. HierfÃŒr bietet FeRD allen Unternehmen und Organisationen der Ã¶ffentlichen Verwaltung eine 
+Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD-Datenformats zu fairen, sachgerechten und nicht 
+diskriminierenden Bedingungen an.
+ 
+Die Spezifikation des FeRD zur Implementierung des ZUGFeRD Datenformats ist in ihrer jeweils geltenden Fassung 
+abrufbar unter www.ferd-net.de.
+ 
+Im Einzelnen schlieÃt die NutzungsgewÃ€hrung ein: 
+=====================================
+ 
+FeRD rÃ€umt eine Lizenz fÃŒr die Nutzung des urheberrechtlich geschÃŒtzten ZUGFeRD Datenformats in der jeweils 
+geltenden und akzeptierten Fassung (www.ferd-net.de) ein. 
+Die Lizenz beinhaltet ein unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, 
+Weiterbearbeitung und Verbindung mit anderen Produkten.
+Die Lizenz gilt insbesondere fÃŒr die Entwicklung, die Gestaltung, die Herstellung, den Verkauf, die Nutzung oder 
+anderweitige Verwendung des ZUGFeRD Datenformats fÃŒr Hardware- und/oder Softwareprodukte sowie sonstige 
+Anwendungen und Dienste. 
+Diese Lizenz schlieÃt nicht die wesentlichen Patente der Mitglieder von FeRD ein. Als wesentliche Patente sind Patente 
+und Patentanmeldungen weltweit zu verstehen, die einen oder mehrere PatentansprÃŒche beinhalten, bei denen es sich um 
+notwendige AnsprÃŒche handelt. Notwendige AnsprÃŒche sind lediglich jene AnsprÃŒche der Wesentlichen Patente, die durch 
+die Implementierung des ZUGFeRD Datenformats notwendigerweise verletzt wÃŒrden. 
+Der Lizenznehmer ist berechtigt, seinen jeweiligen Konzerngesellschaften ein unbefristetes, weltweites, nicht ÃŒbertragbares, 
+unwiderrufliches Nutzungsrecht einschlieÃlich des Rechts der Weiterentwicklung, Weiterbearbeitung und Verbindung mit 
+anderen Produkten einzurÃ€umen. 
+ 
+Die Lizenz wird kostenfrei zur VerfÃŒgung gestellt. 
+ 
+AuÃer im Falle vorsÃ€tzlichen Verschuldens oder grober FahrlÃ€ssigkeit haftet FeRD weder fÃŒr Nutzungsausfall, entgangenen 
+Gewinn, Datenverlust, Kommunikationsverlust, Einnahmeausfall, VertragseinbuÃen, GeschÃ€ftsausfall oder fÃŒr Kosten, 
+SchÃ€den, Verluste oder Haftpflichten im Zusammenhang mit einer Unterbrechung der GeschÃ€ftstÃ€tigkeit, noch fÃŒr konkrete, 
+beilÃ€ufig entstandene, mittelbare SchÃ€den, Straf- oder FolgeschÃ€den und zwar auch dann nicht, wenn die MÃ¶glichkeit der 
+Kosten, Verluste bzw. SchÃ€den hÃ€tte normalerweise vorhergesehen werden kÃ¶nnen.-->
+ 
+ <!--Right of use 
+ZUGFeRD Data format version 2.1.1, July 1, 2020
+ 
+The purpose of the Forum elektronische Rechnung Deutschland (FeRD), which was founded on March 31, 2010 under the 
+umbrella of Arbeitsgemeinschaft fÃŒr wirtschaftliche Verwaltung e. V., is, among other things, to create and specify an 
+open data format for structured electronic data exchange on the basis of open and non discriminatory, standardised 
+technologies ("ZUGFeRD data format").
+ 
+The ZUGFeRD data format is used by both companies and public administration according to the FeRD 
+made freely accessible. For this purpose FeRD offers all companies and organisations of the public administration a 
+License to use the copyrighted ZUGFeRD data format in a fair, appropriate and non 
+discriminatory conditions.
+ 
+The specification of the FeRD for the implementation of the ZUGFeRD data format is, in its currently valid version 
+available at www.ferd-net.de.
+ 
+In detail, the grant of use includes 
+=====================================
+ 
+FeRD grants a license for the use of the copyrighted ZUGFeRD data format in the respective 
+valid and accepted version (www.ferd-net.de). 
+The license includes an irrevocable right of use including the right of further development, 
+Further processing and connection with other products.
+The license applies in particular to the development, design, production, sale, use or 
+other use of the ZUGFeRD data format for hardware and/or software products and other 
+applications and services. 
+This license does not include the essential patents of the members of FeRD. The essential patents are patents 
+and patent applications worldwide which contain one or more claims that are 
+necessary claims. Necessary claims are only those claims of the essential patents which are 
+the implementation of the ZUGFeRD data format would necessarily be violated. 
+The Licensee is entitled to provide its respective group companies with an unlimited, worldwide, non-transferable, 
+irrevocable right of use including the right of further development, further processing and connection with 
+other products. 
+ 
+The license is provided free of charge. 
+ 
+Except in the case of intentional fault or gross negligence, FeRD is not liable for loss of use, loss of 
+Profit, loss of data, loss of communication, loss of revenue, loss of contracts, loss of business or for costs 
+damages, losses or liabilities in connection with an interruption of business, nor for concrete, 
+incidental, indirect, punitive or consequential damages, even if the possibility of 
+costs, losses or damages could normally have been foreseen.-->
+
+<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+  <rsm:ExchangedDocumentContext>
+    <ram:GuidelineSpecifiedDocumentContextParameter>
+      <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2</ram:ID>
+    </ram:GuidelineSpecifiedDocumentContextParameter>
+  </rsm:ExchangedDocumentContext>
+  <rsm:ExchangedDocument>
+    <ram:ID>471102</ram:ID>
+    <ram:TypeCode>380</ram:TypeCode>
+    <ram:IssueDateTime>
+      <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+    </ram:IssueDateTime>
+    <ram:IncludedNote>
+      <ram:Content>Rechnung gemÃ€Ã Bestellung vom 01.03.2018.</ram:Content>
+    </ram:IncludedNote>
+    <ram:IncludedNote>
+      <ram:Content>Lieferant GmbH				
+LieferantenstraÃe 20				
+80333 MÃŒnchen				
+Deutschland				
+GeschÃ€ftsfÃŒhrer: Hans Muster
+Handelsregisternummer: H A 123
+      </ram:Content>
+      <ram:SubjectCode>REG</ram:SubjectCode>
+    </ram:IncludedNote>
+  </rsm:ExchangedDocument>
+  <rsm:SupplyChainTradeTransaction>
+    <ram:IncludedSupplyChainTradeLineItem>
+      <ram:AssociatedDocumentLineDocument>
+        <ram:LineID>1</ram:LineID>
+      </ram:AssociatedDocumentLineDocument>
+      <ram:SpecifiedTradeProduct>
+        <ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
+        <ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
+        <ram:Name>TrennblÃ€tter A4</ram:Name>
+      </ram:SpecifiedTradeProduct>
+      <ram:SpecifiedLineTradeAgreement>
+        <ram:GrossPriceProductTradePrice>
+          <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+        </ram:GrossPriceProductTradePrice>
+        <ram:NetPriceProductTradePrice>
+          <ram:ChargeAmount>9.9000</ram:ChargeAmount>
+        </ram:NetPriceProductTradePrice>
+      </ram:SpecifiedLineTradeAgreement>
+      <ram:SpecifiedLineTradeDelivery>
+        <ram:BilledQuantity unitCode="H87">20.0000</ram:BilledQuantity>
+      </ram:SpecifiedLineTradeDelivery>
+      <ram:SpecifiedLineTradeSettlement>
+        <ram:ApplicableTradeTax>
+          <ram:TypeCode>VAT</ram:TypeCode>
+          <ram:CategoryCode>S</ram:CategoryCode>
+          <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+        </ram:ApplicableTradeTax>
+        <ram:SpecifiedTradeSettlementLineMonetarySummation>
+          <ram:LineTotalAmount>198.00</ram:LineTotalAmount>
+        </ram:SpecifiedTradeSettlementLineMonetarySummation>
+      </ram:SpecifiedLineTradeSettlement>
+    </ram:IncludedSupplyChainTradeLineItem>
+    <ram:IncludedSupplyChainTradeLineItem>
+      <ram:AssociatedDocumentLineDocument>
+        <ram:LineID>2</ram:LineID>
+      </ram:AssociatedDocumentLineDocument>
+      <ram:SpecifiedTradeProduct>
+        <ram:GlobalID schemeID="0160">4000050986428</ram:GlobalID>
+        <ram:SellerAssignedID>ARNR2</ram:SellerAssignedID>
+        <ram:Name>Joghurt Banane</ram:Name>
+      </ram:SpecifiedTradeProduct>
+      <ram:SpecifiedLineTradeAgreement>
+        <ram:GrossPriceProductTradePrice>
+          <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+        </ram:GrossPriceProductTradePrice>
+        <ram:NetPriceProductTradePrice>
+          <ram:ChargeAmount>5.5000</ram:ChargeAmount>
+        </ram:NetPriceProductTradePrice>
+      </ram:SpecifiedLineTradeAgreement>
+      <ram:SpecifiedLineTradeDelivery>
+        <ram:BilledQuantity unitCode="H87">50.0000</ram:BilledQuantity>
+      </ram:SpecifiedLineTradeDelivery>
+      <ram:SpecifiedLineTradeSettlement>
+        <ram:ApplicableTradeTax>
+          <ram:TypeCode>VAT</ram:TypeCode>
+          <ram:CategoryCode>S</ram:CategoryCode>
+          <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+        </ram:ApplicableTradeTax>
+        <ram:SpecifiedTradeSettlementLineMonetarySummation>
+          <ram:LineTotalAmount>275.00</ram:LineTotalAmount>
+        </ram:SpecifiedTradeSettlementLineMonetarySummation>
+      </ram:SpecifiedLineTradeSettlement>
+    </ram:IncludedSupplyChainTradeLineItem>
+    <ram:ApplicableHeaderTradeAgreement>
+	  <ram:BuyerReference>04011000-12345-34</ram:BuyerReference>
+      <ram:SellerTradeParty>
+        <ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
+        <ram:Name>Lieferant GmbH</ram:Name>
+		<ram:DefinedTradeContact>
+			<ram:PersonName>Max Mustermann</ram:PersonName>
+			<ram:DepartmentName>Muster-Einkauf</ram:DepartmentName>
+			<ram:TelephoneUniversalCommunication>
+				<ram:CompleteNumber>+49891234567</ram:CompleteNumber>
+			</ram:TelephoneUniversalCommunication>
+			<ram:EmailURIUniversalCommunication>
+				<ram:URIID>Max@Mustermann.de</ram:URIID>
+			</ram:EmailURIUniversalCommunication>
+		</ram:DefinedTradeContact>
+        <ram:PostalTradeAddress>
+          <ram:PostcodeCode>80333</ram:PostcodeCode>
+          <ram:LineOne>LieferantenstraÃe 20</ram:LineOne>
+          <ram:CityName>MÃŒnchen</ram:CityName>
+          <ram:CountryID>DE</ram:CountryID>
+        </ram:PostalTradeAddress>
+        <ram:SpecifiedTaxRegistration>
+          <ram:ID schemeID="FC">201/113/40209</ram:ID>
+        </ram:SpecifiedTaxRegistration>
+        <ram:SpecifiedTaxRegistration>
+          <ram:ID schemeID="VA">DE123456789</ram:ID>
+        </ram:SpecifiedTaxRegistration>
+      </ram:SellerTradeParty>
+      <ram:BuyerTradeParty>
+        <ram:ID>GE2020211</ram:ID>
+        <ram:Name>Kunden AG Mitte</ram:Name>
+        <ram:PostalTradeAddress>
+          <ram:PostcodeCode>69876</ram:PostcodeCode>
+          <ram:LineOne>KundenstraÃe 15</ram:LineOne>
+          <ram:CityName>Frankfurt</ram:CityName>
+          <ram:CountryID>DE</ram:CountryID>
+        </ram:PostalTradeAddress>
+      </ram:BuyerTradeParty>
+    </ram:ApplicableHeaderTradeAgreement>
+    <ram:ApplicableHeaderTradeDelivery>
+      <ram:ActualDeliverySupplyChainEvent>
+        <ram:OccurrenceDateTime>
+          <udt:DateTimeString format="102">20180305</udt:DateTimeString>
+        </ram:OccurrenceDateTime>
+      </ram:ActualDeliverySupplyChainEvent>
+    </ram:ApplicableHeaderTradeDelivery>
+    <ram:ApplicableHeaderTradeSettlement>
+      <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+	  <ram:SpecifiedTradeSettlementPaymentMeans>
+		<ram:TypeCode>58</ram:TypeCode>
+		<ram:Information>Zahlung per SEPA Ãberweisung.</ram:Information>
+		<ram:PayeePartyCreditorFinancialAccount>
+			<ram:IBANID>DE02120300000000202051</ram:IBANID>
+			<ram:AccountName>Kunden AG</ram:AccountName>
+		</ram:PayeePartyCreditorFinancialAccount>
+		<ram:PayeeSpecifiedCreditorFinancialInstitution>
+			<ram:BICID>BYLADEM1001</ram:BICID>
+		</ram:PayeeSpecifiedCreditorFinancialInstitution>
+	  </ram:SpecifiedTradeSettlementPaymentMeans>
+      <ram:ApplicableTradeTax>
+        <ram:CalculatedAmount>19.25</ram:CalculatedAmount>
+        <ram:TypeCode>VAT</ram:TypeCode>
+        <ram:BasisAmount>275.00</ram:BasisAmount>
+        <ram:CategoryCode>S</ram:CategoryCode>
+        <ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
+      </ram:ApplicableTradeTax>
+      <ram:ApplicableTradeTax>
+        <ram:CalculatedAmount>37.62</ram:CalculatedAmount>
+        <ram:TypeCode>VAT</ram:TypeCode>
+        <ram:BasisAmount>198.00</ram:BasisAmount>
+        <ram:CategoryCode>S</ram:CategoryCode>
+        <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
+      </ram:ApplicableTradeTax>
+      <ram:SpecifiedTradePaymentTerms>
+        <ram:Description>Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018</ram:Description>
+      </ram:SpecifiedTradePaymentTerms>
+      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        <ram:LineTotalAmount>473.00</ram:LineTotalAmount>
+        <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
+        <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
+        <ram:TaxBasisTotalAmount>473.00</ram:TaxBasisTotalAmount>
+		<ram:TaxTotalAmount currencyID="EUR">56.87</ram:TaxTotalAmount>
+        <ram:GrandTotalAmount>529.87</ram:GrandTotalAmount>
+        <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
+        <ram:DuePayableAmount>529.87</ram:DuePayableAmount>
+      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+    </ram:ApplicableHeaderTradeSettlement>
+  </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_2.xml
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_2.xml	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/assets/xml_xrechnung_2.xml	(revision 8542)
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
+    <rsm:ExchangedDocumentContext>
+        <ram:GuidelineSpecifiedDocumentContextParameter>
+            <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0</ram:ID>
+        </ram:GuidelineSpecifiedDocumentContextParameter>
+    </rsm:ExchangedDocumentContext>
+    <rsm:ExchangedDocument>
+        <ram:ID>123456789</ram:ID>
+        <ram:TypeCode>380</ram:TypeCode>
+        <ram:IssueDateTime>
+            <udt:DateTimeString format="102">20180605</udt:DateTimeString>
+        </ram:IssueDateTime>
+    </rsm:ExchangedDocument>
+    <rsm:SupplyChainTradeTransaction>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>1</ram:LineID>
+                <ram:IncludedNote>
+                    <ram:Content>Messpreis</ram:Content>
+                </ram:IncludedNote>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>Messpreis</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>386.52</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="DAY">366</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="DAY">31</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20160101</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20160131</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>32.74</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>2</ram:LineID>
+                <ram:IncludedNote>
+                    <ram:Content>Grundpreis</ram:Content>
+                </ram:IncludedNote>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>Grundpreis</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>3.2916</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="KWT">1</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KWT">2100</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20160101</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20160131</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>6912.37</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:IncludedSupplyChainTradeLineItem>
+            <ram:AssociatedDocumentLineDocument>
+                <ram:LineID>3</ram:LineID>
+                <ram:IncludedNote>
+                    <ram:Content>Arbeitspreis</ram:Content>
+                </ram:IncludedNote>
+            </ram:AssociatedDocumentLineDocument>
+            <ram:SpecifiedTradeProduct>
+                <ram:Name>Arbeitspreis</ram:Name>
+            </ram:SpecifiedTradeProduct>
+            <ram:SpecifiedLineTradeAgreement>
+                <ram:NetPriceProductTradePrice>
+                    <ram:ChargeAmount>0.061232374</ram:ChargeAmount>
+                    <ram:BasisQuantity unitCode="KWH">1</ram:BasisQuantity>
+                </ram:NetPriceProductTradePrice>
+            </ram:SpecifiedLineTradeAgreement>
+            <ram:SpecifiedLineTradeDelivery>
+                <ram:BilledQuantity unitCode="KWH">616290</ram:BilledQuantity>
+            </ram:SpecifiedLineTradeDelivery>
+            <ram:SpecifiedLineTradeSettlement>
+                <ram:ApplicableTradeTax>
+                    <ram:TypeCode>VAT</ram:TypeCode>
+                    <ram:CategoryCode>S</ram:CategoryCode>
+                    <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+                </ram:ApplicableTradeTax>
+                <ram:BillingSpecifiedPeriod>
+                    <ram:StartDateTime>
+                        <udt:DateTimeString format="102">20160101</udt:DateTimeString>
+                    </ram:StartDateTime>
+                    <ram:EndDateTime>
+                        <udt:DateTimeString format="102">20160131</udt:DateTimeString>
+                    </ram:EndDateTime>
+                </ram:BillingSpecifiedPeriod>
+                <ram:SpecifiedTradeSettlementLineMonetarySummation>
+                    <ram:LineTotalAmount>37736.90</ram:LineTotalAmount>
+                </ram:SpecifiedTradeSettlementLineMonetarySummation>
+            </ram:SpecifiedLineTradeSettlement>
+        </ram:IncludedSupplyChainTradeLineItem>
+        <ram:ApplicableHeaderTradeAgreement>
+            <ram:BuyerReference>90000000-03083-12</ram:BuyerReference>
+            <ram:SellerTradeParty>
+                <ram:Name>[Seller name]</ram:Name>
+                <ram:SpecifiedLegalOrganization/>
+                <ram:DefinedTradeContact>
+                    <ram:PersonName>Kundencenter</ram:PersonName>
+                    <ram:TelephoneUniversalCommunication>
+                        <ram:CompleteNumber>0800-12345678</ram:CompleteNumber>
+                    </ram:TelephoneUniversalCommunication>
+                    <ram:EmailURIUniversalCommunication>
+                        <ram:URIID>kundencenter@sellder.de</ram:URIID>
+                    </ram:EmailURIUniversalCommunication>
+                </ram:DefinedTradeContact>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>12345</ram:PostcodeCode>
+                    <ram:LineOne>[Seller address line 1]</ram:LineOne>
+                    <ram:CityName>[Seller city]</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+                <ram:SpecifiedTaxRegistration>
+                    <ram:ID schemeID="VA">ATU123456789</ram:ID>
+                </ram:SpecifiedTaxRegistration>
+            </ram:SellerTradeParty>
+            <ram:BuyerTradeParty>
+                <ram:ID>BI123456</ram:ID>
+                <ram:Name>[Buyer name]</ram:Name>
+                <ram:PostalTradeAddress>
+                    <ram:PostcodeCode>12345</ram:PostcodeCode>
+                    <ram:LineOne>[Buyer address line 1]</ram:LineOne>
+                    <ram:CityName>[Buyer city]</ram:CityName>
+                    <ram:CountryID>DE</ram:CountryID>
+                </ram:PostalTradeAddress>
+            </ram:BuyerTradeParty>
+            <ram:ContractReferencedDocument>
+                <ram:IssuerAssignedID>CR123456</ram:IssuerAssignedID>
+            </ram:ContractReferencedDocument>
+            <ram:AdditionalReferencedDocument>
+                <ram:IssuerAssignedID>01_15_Anhang_01.pdf</ram:IssuerAssignedID>
+                <ram:TypeCode>916</ram:TypeCode>
+                <ram:Name>AufschlÃŒsselung der einzelnen Leistungspositionen</ram:Name>
+                <ram:AttachmentBinaryObject mimeCode="application/pdf" filename="01_15_Anhang_01.pdf">JVBERi0xLjUNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhkZS1ERSkgL1N0cnVjdFRyZWVSb290IDEwIDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4+Pg0KZW5kb2JqDQoyIDAgb2JqDQo8PC9UeXBlL1BhZ2VzL0NvdW50IDEvS2lkc1sgMyAwIFJdID4+DQplbmRvYmoNCjMgMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0YxIDUgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSL0dTOCA4IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDU5NS4zMiA4NDEuOTJdIC9Db250ZW50cyA0IDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9TL1N0cnVjdFBhcmVudHMgMD4+DQplbmRvYmoNCjQgMCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjEzPj4NCnN0cmVhbQ0KeJytj0FrwkAQhe8L+x/ecaaQzWyycTcgQk2sWBAsDXgQDx7WINpAm/72npsED8VzB+bwmDcz70O6w3yebqtNDVkssKwrfGolRsYKwVsIirIweYbgrCkzfEWt9k/otFo2WqUvFtYacWjOWo1ugYUXEzIHPxPjA5qPwbd+92j74TTaSYW7Wmt1oJoTR6ceVw70w0lBHedTf0f2hMhJTpeOC4pcEp47dnQ7tTyjiHHUxwtbmRYM+IjmVavVEO5Nq3+AycSaUP6FmRju0R/+YbWt8AtH80VUDQplbmRzdHJlYW0NCmVuZG9iag0KNSAwIG9iag0KPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvTmFtZS9GMS9CYXNlRm9udC9BQkNERUUrQ2FsaWJyaS9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvRm9udERlc2NyaXB0b3IgNiAwIFIvRmlyc3RDaGFyIDMyL0xhc3RDaGFyIDI0Ni9XaWR0aHMgMTcgMCBSPj4NCmVuZG9iag0KNiAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9BQkNERUUrQ2FsaWJyaS9GbGFncyAzMi9JdGFsaWNBbmdsZSAwL0FzY2VudCA3NTAvRGVzY2VudCAtMjUwL0NhcEhlaWdodCA3NTAvQXZnV2lkdGggNTIxL01heFdpZHRoIDE3NDMvRm9udFdlaWdodCA0MDAvWEhlaWdodCAyNTAvU3RlbVYgNTIvRm9udEJCb3hbIC01MDMgLTI1MCAxMjQwIDc1MF0gL0ZvbnRGaWxlMiAxOCAwIFI+Pg0KZW5kb2JqDQo3IDAgb2JqDQo8PC9UeXBlL0V4dEdTdGF0ZS9CTS9Ob3JtYWwvY2EgMT4+DQplbmRvYmoNCjggMCBvYmoNCjw8L1R5cGUvRXh0R1N0YXRlL0JNL05vcm1hbC9DQSAxPj4NCmVuZG9iag0KOSAwIG9iag0KPDwvQXV0aG9yKFdFSVNTTUFOTiBNYXJjZWwpIC9DcmVhdG9yKP7/AE0AaQBjAHIAbwBzAG8AZgB0AK4AIABXAG8AcgBkACAAMgAwADEANikgL0NyZWF0aW9uRGF0ZShEOjIwMTgwNzI1MTI1OTQyKzAyJzAwJykgL01vZERhdGUoRDoyMDE4MDcyNTEyNTk0MiswMicwMCcpIC9Qcm9kdWNlcij+/wBNAGkAYwByAG8AcwBvAGYAdACuACAAVwBvAHIAZAAgADIAMAAxADYpID4+DQplbmRvYmoNCjE2IDAgb2JqDQo8PC9UeXBlL09ialN0bS9OIDYvRmlyc3QgMzkvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyODQ+Pg0Kc3RyZWFtDQp4nG1RwYqDMBC9F/oP8wdjrMIulMKybdmlVESFPZQeUp3VUE1KGqH9+03UYg4LIZk3897LZMIiCICtIGbAbBDYw673EFgIUfgGLIbI1tZrTB0tgAxzTLF43ghzo/vS7Frq8HCC4AyY1jBwNpvlYpQELwnX5j8Vc/dnZ5gUHqPQRJlSBjPV0pHfXGPOyzqRHKquR5dxNqvRxqsm9DAHegKbrPfWSypDmLhtJ6sZFJZ6UQ/MqTT4RbwiPcZO84q/ZSsk5Q13HbrEh7QO3AglJ6yN+OU2GNCP0teLUlfcqrLvbE9D5t4QmXEYR15q5eHPxu4e3greqtpL5K2oyOOO91harXmHe1H3mqa3Jn13P7mPjefpzrNeLv4ATdCbvw0KZW5kc3RyZWFtDQplbmRvYmoNCjE3IDAgb2JqDQpbIDIyNiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDI1MiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1NzkgMCAwIDYxNSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDQ3OSAwIDAgMCA0OTggMCA0NzEgMCAyMzAgMCA0NTUgMjMwIDAgNTI1IDAgMCAwIDAgMzkxIDMzNSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1MjddIA0KZW5kb2JqDQoxOCAwIG9iag0KPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNDY2NzUvTGVuZ3RoMSAzNDE5MzI+Pg0Kc3RyZWFtDQp4nOxcB3hUxdqeOWdbtiS7ySYk2SS7YUkoSwidgEiWNHoJsJhQE1KBUAQiiJRYAI2g2Lti94pls6AG7L1cxYa9cvVarmIFCyX7v3O+nVAE9bm/3vv7/Pvtvud9v2/KmZkzM2eCMYwzxpJw0bGKookjht2b9Gwd06e9xFjqu8UFRZPm5tj3MZ57NWOG1cUFowsT9lz1HOPddYyplw8rKi6Z/MMcD1N8dqTbh40fN7Gx6v0SpvRC7IvgsImBAuOn5yUz3n8FY3suHDcxt/cVj06/hzH+Ge5aUTWvcmH2ntxzGBsHV/2u6pQlnm0L3+zH2BorY/oHahfWzVv1vjqAsQl7GLP56ioXL2QZzMu4Dz6z1zWcWusbkNbIWPMzjA0J1ddUVu99yGhE/Q1I71+PgO1O+2L4N8HvVD9vybKvp6X0ZUwZztjo1rk1i+b3vXvg3Yzt34n0Aw0Lqip3zX35TsaeRXt7T55XuWxh97jsLiiP+plnXs2SyndvTBuH/qSJ9s+vnFfTedP63iiK8cpVFy5YvCTsYmvRPlGfZ+GimoUJdR1TkNWD23/BxFgbet50UeIN22fGDd7LUkxM2P1frHhe8M7tsR/t33ewKeZLU3+4MUxhZChnYG2MP2HetH/fvk0xX2o1HWa23iKS0o1dxOxsGdOjpJ3lsnWMxffHfRWkqjof34gUk/4KfR9UmUGsvsTWKszElDi9oig6VdF9yLqFH2GdTtNaABsz0eNhfsaynqc2GK9Vsj2Mh0Waep8+VvSUOXWxh1rDX8R0uh7P6Q803Zfsjj+yvj/bDG/8tdr7R5q6B7PvDzRdDbv+iPqbjvR/tewZrOHX0vmXv14X0h1Hx9RnqYzy4bHLGgzset0Fx07T3c5qf0/sWKbuPmocxrERx8xXztJ+T31/hqmvsWl/Zv26vqziiPvtZ9P/zPv9p0x9gvU7OnZ0X482/jpb81v1Is8Vx7zfjYfix8sTacPx0/LYlN8TO5Ypzx1Zr5rJSo+VT3/XkXHlLpb5i3s2/jJ2rDz6BMpneOu38/+ePH+WKXewonb9TzZcaWXDNH0Z6yaYV7HKiN/AZ9D+pnzCGoBiWY7/AL8nK+Af/bHv4X/H1E4RLvnP3hfzmvEd/9l7Ri1qUYva8Uy5ipuPm1bBdh83Tc8u+3Na9H/f1H7s3P92G6IWtahFLWr/vuke/X3/zvFrpuw99G8b6ih23m/ec95v54la1KIWtahFLWpRi1rUoha1qP3/tMN/xhQW/TkzalGLWtSiFrWoRS1qUYta1KIWtahF7a9v/Li/5R61qEUtalGLWtSiFrWoRS1qUYta1KIWtahFLWpRi1rU/oKmRpBGf1WNW+FBqQrTsW8Q6M08UPFQNtaR9WBDWREbwypZDatjs1kDW8CWsE3sNvYD75XePb1n+kBPjGd11vNh7S+koYznsDLVWpm5bD5bdJwyPLwX9+4Wfjy8M/yj9veePmd7qKHhKj6TrWf9vlgnPrs776r84MTIX4LrcVh/umjXbHC34/VYHalexlN5Bm/gC/gpfCVfzzfyK5mB/6Cl/3D035eDr0T+Gp3Cft34oTsc5+Zlv1EDmU67Jv8iXvSLyLGbobVT9BHX8cB08VcB+QJc0V8tjfr8hxk/47fzKMb/xQ3U/0XZ4xqv/X83y5l/yto1SxYvOnnhgvnzGubOmV1fV1tTPWvmjOnTpk4pLwtMmjihdPy4sWNGjxo5YviwkuKiwoKh/vwhJw4+YdDAvAH9++X2yOneJTurk7ejO9npsMfZLOYYk9Gg16kKZ92LvSUVnmB2RVCX7R0+PEf43koEKg8LVAQ9CJUcmSfoqdCyeY7M6UfO2qNy+imnvz0nt3sGs8E53T3FXk/whSKvp5VPKS2D3lDkLfcEd2t6jKZ12Zpjg5OZiRKe4uT6Ik+QV3iKgyWn1DcXVxShvhaLudBbWGPO6c5azBZIC1Swi3dhC+8yhGtC6VI8qEVhJpu4bVDNKq6sDo4vLSsucmVmlmsxVqjVFTQUBo1aXZ7Zos3sXE9L90ea17fa2awKn7XaW105rSyoVqJQs1rc3Lwu6PAFu3qLgl2Xf5yMLtcEu3uLioM+LyobNaH9Bjyoz7J7Pc17GRrv3f3lkZHKSMSQZd/LhBRdbB8mpEvN0Da0EP3LzBRtObfVz2bBCTaVlpHvYbNcIebP9ZUHlQqR8ohMSQyIlCaZ0l68wpspHlVxReR7Sn1ysGmWJ6c7Rl/7ZuGLdE9Qza6YVVUvuLKm2VtUROM2qSzoL4LwV0b6WtzSMxf5KyvQidliGErLgrnehUGnt4AyIOARz2D2xDKtSKRY0FkYZBVVkVLB3OIi0S5PcXNFETVQ1OUtLdvG+oQ/bOnrcW3pw/qyctGOYFIhHkp2cXNZdW3QXeGqxvys9ZS5MoP+cgxfubesplw8Ja892PVD3C5Tu6NWCn07KrfMLHpuzDJ5yhSXWi6eFgKeEly8BYORYMfj0lzxRAsGe8q4i8lsuEskh1BH1ANHzSocLpJUUbRwuCuzPJPsV5rkirRJnxU0HVaXHYH2NtF9jts0yi0a1NVTXFN0WAOPqFQfaWCktmO3UxFjEbkxSpjE4xwuk9QsrFzEFFSjhcRTTPYE2XhPmbfGW+7FHPKPLxN9E2OtPd9RE72jSqeUaU87MksmHeFReh55QZaJZOkohZiDJT6XfKyaP0zz293hRyWPkMle0a7m5uoWpmaJqexq4ZrQF55bHhznK/cGZ/m8maKdOd1bTMyaOamiEGu1BNudt6TS67F7SporW8NNs5pb/P7mhcUV9YOwLpq9I6qbvRPLBru0xk8oW+laLu4dz0bxUZMKUJXCClq8/OzSFj8/e+KUsm12xjxnTyoLKVwprCgob+mEtLJtHrwAtKgioiIoHI9wRE0T4Ji0/K5tfsaatFSdFtD8qlbOtJhJxjiralUoZqcbZWs38uOsVNWqoxS/zK1DzESxJsrdJZLbhBS7SNnO8CJhWiJZCxMD7Dfr/SZ/jN+q2BQMqQiFENmOvDGcbbFyG3e1oM4JWriVN7XE+F3btJomRHI2IaeINbXH0HKR7bCKcD/qeOBQDwJTyrZYGerXrshRIAyzMLkecwjvk2JPtZh/K8rrmyvKxe7BkjBX8eVB7h3Cgop3CFpssAbN3pqCoMVbIOL5Ip5PcYOIGzHzeRLHwxabbnOFFxsxVkwZc3Faa6qo0tMaDk8qy3zBtbs8E2tpGjClLBjjw8tNnzUS+YYJVCA8LNhUVSnawQJloqwxa0RVOdalrBBZRgRjUENMpAbkKNHKiPWGQlWYa5VeTSKMraOpPFjuEzctm12urVd7kA33DgoasqlOfba4UW55c7y3t7b5YK2bs9YJikHb2MQyirjg4mblNEhGK1pe5UVSVYWH5shErGV6WZhdFKnBnq/LrtFgdkUSmeiWmmWxmYMxPVAhvkJbeog9R59lLC+nxmveukgG3NsetKBF2YcNZaQARgdJI0Rb8F2Hpoqsj4pqSlvZBO8ybJ2i0VpNRiQHbVkjKvF2o/IWRLx5srBJbIKWSB1PUNQoem7FuGNLaA3f6j018zDD3iHefmL+Mdc2LFRW3nx0IDjVl9PddHTUpoWbm022Yxeg8TLZ2lkLKllV4q0AFhNOm2+eYvGq9I5sUcb6NOYaN4/04g2iZAngoKNi+WR6qstFLjR5vLaXHTcTPyyTeE1rlTfbT5Aej3j0MJuDdUe69e1uiQAOg1k96AyBroi9FnNljivYgJkps4gn4mn22L2DvOKiFR4mUIGH1L4sMP0x68SiaarylM3CZEeFJRXNJc3iiFpVGRm2yJ2C831HVIl1wTF5UJHoTrBpvKei3FOBoykvLcvMdGE1gj21OKd6K8WrYDz1Z/wU7ahS2SymOMNJpdwVNOLFVFtZ483EGyQodiAafdFGXWTZMFdzs7c5qK3bEmRG9dlYdiME4bvQ562sEUfoWnGCrtHKlqC52uiI2lzFXqzlGoS1scTAYeubJS5VzeKAPr3Ch5FwNMc3ewY2YwuejreHLrtqcgVeVeKN5NEedaULHgZhhPDKURFljMkSGWkJiNbM87VMN2YdimjfBT7KbNJqRcsmlAXHyyzaehLiZF9Q6ZCHRNF5PmFKmdynVJE8AsPrx6xyidKeoDKpLPJ4tPIjRFGXfGBUDBHtHRJZX+1vG/kemubCmB43jpeDOnSi8ozyFMtjbuXpCL/H8pS3WUB5C/wG+M0Ivw5+DbwT/Cr4FfDL4IfBD4EfBD/AAkynvMP6ApMAtV1VAzcBOwE9m4uaOLOgPGdO5TFWBFQDS4CLAT3yPoS0m1AjZx7lrK0xyXwkHuiZUpwhxelSNEmxWopVUqyUYoUUp0mxXIpTpVgmxVIpTpGiUYolUiyW4mQpFkqxQIr5UsyTokGKuVLMkWK2FPVS1ElRK0WNFNVSVEkxS4pKKSqkmCnFDCmmSzFNiqlSTJGiXIoyKU6SYrIUASkmSTFRiglSlEoxXopxUoyVYowUo6UYJcVIKUZIMVyKYVKUSFEsRZEUhVIUSDFUCr8U+VIMkeJEKQZLcYIUg6QYKEWeFAOk6C9FPyn6StFHit5S9JKipxS5UvSQIkeK7lL4pOgmRVcpukjRWYpsKbKk6CSFV4qOUmRK4ZHCLUWGFOlSpEnhkiJVihQpkqXoIEWSFIlSOKVIkCJeCocUdinipIiVwiaFVQqLFGYpYqQwSWGUwiCFXgqdFKoUihRcChYRPCxFmxQHpTggxX4p9knxsxQ/SfGjFD9IsVeKPVJ8L8V3UnwrxTdSfC3FV1LsluJLKb6Q4l9SfC7FZ1J8KsUnUvxTio+l+EiKf0ixS4oPpfhAiveleE+Kd6V4R4q3pXhLijeleEOK16V4TYqdUrwqxStSvCzFS1K8KMUOKV6Q4nkp/i7Fc1I8K8UzUjwtxVNSPCnFE1I8LsVjUjwqxSNSPCzFQ1I8KMUDUtwvxXYptknRKsV9UtwrxT1SbJViixQhKVqkCEpxtxR3SXGnFHdIsVmK26X4mxS3SXGrFLdIcbMUN0lxoxQ3SHG9FJukuE6Ka6W4RoqrpbhKiiuluEKKy6W4TIpLpbhEiouluEiKC6W4QIqNUpwvxXlSbJBivRTnStEsxTlSnC3FOinWSrFGCnns4fLYw+Wxh8tjD5fHHi6PPVwee7g89nB57OHy2MPlsYfLYw+Xxx4ujz1cHnu4PPZweezh8tjDF0khzz9cnn+4PP9wef7h8vzD5fmHy/MPl+cfLs8/XJ5/uDz/cHn+4fL8w+X5h8vzD5fnHy7PP1yef7g8/3B5/uHy/MPl+YfL8w+X5x8uzz9cnn+4PP9wef7h8vzD5fmHy/MPl+cfLo89XB57uDz2cHna4fK0w+Vph8vTDpenHS5PO1yedrg87XB52uGFW4RoVc4KZQxx48wcykgEnUHe6aGMQaAm8lYTrQplWEEryVtBdBrRcqJTQ+lDQctC6YWgpUSnEDVS2hLyFhMtouDJofQC0EKiBUTzKcs8ogaiuaG0YtAcotlE9UR1RLWhtCJQDXnVRFVEs4gqiSqIZhLNoHLTyZtGNJVoClE5URnRSUSTiQJEk4gmEk0gKiUaTzSOaCzRGKLRRKOIRoZcI0AjiIaHXCNBw4hKQq5RoOKQazSoiKiQqIDShlI5P1E+lRtCdCLRYMp5AtEgKj6QKI9oAFF/on5UWV+iPlRLb6JeRD2pslyiHlQuh6g7kY+oG1FXoi5EnanqbKIsqrMTkZeoI1WdSeShcm6iDKJ0ojQiF1FqKHUsKIUoOZQ6DtSBKImCiUROCiYQxRM5KM1OFEfBWCIbkZXSLERmohhKMxEZiQyhlPEgfSilFKQjUimokMeJmEY8TNSmZeEHyTtAtJ9oH6X9TN5PRD8S/UC0N5Q8CbQnlDwR9D153xF9S/QNpX1N3ldEu4m+pLQviP5Fwc+JPiP6lOgTyvJP8j4m7yPy/kG0i+hDSvuA6H0Kvkf0LtE7RG9TlrfIe5PojVCHk0CvhzpMBr1GtJOCrxK9QvQy0UuU5UWiHRR8geh5or8TPUdZniV6hoJPEz1F9CTRE0SPU87HyHuU6BGihyntIaIHKfgA0f1E24m2EbVSzvvIu5foHqKtRFtCSfmgUChpKqiFKEh0N9FdRHcS3UG0mej2UBL2a/43quU2olsp7Raim4luIrqR6Aai64k2EV1HlV1LtVxDdDWlXUV0JdEVRJdTgcvIu5ToEqKLKe0iquVCogsobSPR+UTnEW0gWk85zyWvmegcorOJ1hGtDSVWgtaEEmeBziI6M5RYCzqD6PRQYgDUFErEZsxXhxL7g1YRraTiK6jcaUTLQ4nVoFOp+DKipUSnEDUSLSFaTFUvouInEy0MJVaBFlBl8ynnPKIGorlEc4hmU7l6ojpqWS0VryGqppxVRLOIKokqiGYSzaBOT6eWTSOaSp2eQlWX043KiE6i5k6mGwWolklEE4kmEJWGnH7Q+JBT3GFcyCmm99iQ80zQmJAzBzSasowiGhly4lzAR5A3nGgYBUtCzlWg4pBzHago5FwNKgw5m0AFofgS0FAiP1E+0ZBQPN7v/ETyBocc5aATiAaFHGJqDCTKCzmGgQaEHGWg/iHHFFA/SutL1Cfk6A7qTTl7hRyiYz1DDrE2c4l6UPEcukN3Ih9V1o2oK1XWhagzUTZRVsghRqkTkZfq7Eh1ZlJlHqrFTZRB5dKJ0ohcRKlEKSH7dFByyD4D1CFknwlKIkokchIlEMVTAQcVsFMwjiiWyEZkpZwWymmmYAyRichIZKCcesqpo6BKpBBxIuYPx81yC7TFVbkPxlW7D0DvB/YBPyP2E2I/Aj8Ae4E9iH8PfIe0b+F/A3wNfAXsRvxL4Auk/Qv+58BnwKfAJ7F17n/G1rs/Bj4C/gHsQuxD8AfA+8B78N8FvwO8DbwFvGmb637D1sv9Ovg1W4N7py3b/SrwCvTLNp/7JeBFYAfSX0Dseds899+hn4N+FvoZ2xz307bZ7qds9e4nbXXuJ1D2cdT3GPAo4A8/guvDwEPAg9aT3Q9YF7nvty52b7cucW8DWoH7EL8XuAdpW5G2BbEQ0AIEgbstp7rvsix332lZ4b7DstK92bLKfTvwN+A24FbgFuBmS477JvCNwA0ocz14k2Wu+zroa6GvAa6Gvgp1XYm6rkBdlyN2GXApcAlwMXARcCHKXYD6NprHus83j3OfZ65zbzDf7F5vvtW9Rs1yn6Xmuc/kee4zAk2B0zc3BVYHVgZWbV4ZsKzklpWulaNWnrZy88p3VvrjDeYVgeWB0zYvD5waWBpYtnlpYLuyltUqa/yDA6dsbgzoGp2NSxrVPY18cyMvauQ9G7nCGu2NnkbVuiSwKLB486IAWzR+UdOi4CLdCcFFHy5S2CJubg0/smWRK6ME7F+xyGYvOTmwILBw84LA/Np5gTlo4Oy8ukD95rpAbV51oGZzdaAqb1agMq8iMDNvemDG5umBaXlTAlM3TwmU55UFTkL+yXmTAoHNkwIT80oDEzaXBsbljQ2MRXxM3qjA6M2jAiPzhgdGbB4eGJZXEihG51maPc2TptpFA8amoSXMxQt6uvyuD13fuHTMFXQ94lLj41LdqUrXuBReOC6FL0hZnXJ+ihqX/GKy4k/u2r0krsOLHT7o8HUHXYK/Q9ceJSzJnuRJUhNF35LGTCrROL+IuFc/ra/uJG92SVwij0t0JyrFXyfytUzlHs4Zt4NUE/Js5YnuEvVBLn7pTs8438gm+Ua1mtiEUUHT+KlBfnYwa6K4+kunBA1nB1lgytSyFs7PK9d+JyHoFL9UovlrNmxg6QWjgukTy0Lqpk3pBeWjgk1C+/2aDgvNkKXcN2Nx42Jfmf9E5vjQ8Y1DTXzY/qJdiYvjcXHhOMUfh8bHxbpjFXEJx6r+2F4DSuJsbpsiLmGbmuS3ISL619k6flJJnMVtUQL5lnEWxW/JLyzxW3J6lvyin1tEP+nOviUzcJmxeIlP+8Ir543C9Ymo+C5eAl98GjWf+X7VKBto5mLYEhlc8uul/q8b/2834K9v9Js8Q8PKWaxaORM4AzgdaAJWA6uAlcAK4DRgOXAqsAxYCpwCNAJLgMXAycBCYAEwH5gHNABzgTnAbKAeqANqgRqgGqgCZgGVQAUwE5gBTAemAVOBKUA5UAacBEwGAsAkYCIwASgFxgPjgLHAGGA0MAoYCYwAhgPDgBKgGCgCCoECYCjgB/KBIcCJwGDgBGAQMBDIAwYA/YF+QF+gD9Ab6AX0BHKBHkAO0B3wAd2ArkAXoDOQDWQBnQAv0BHIBDyAG8gA0oE0wAWkAilAMtABSAISASeQAMQDDsAOxAGxgA2wAhbADMQAJsAIGAA9oBsaxlUFFIADjFVzxHgbcBA4AOwH9gE/Az8BPwI/AHuBPcD3wHfAt8A3wNfAV8Bu4EvgC+BfwOfAZ8CnwCfAP4GPgY+AfwC7gA+BD4D3gfeAd4F3gLeBt4A3gTeA14HXgJ3Aq8ArwMvAS8CLwA7gBeB54O/Ac8CzwDPA08BTwJPAE8DjwGPAo8AjwMPAQ8CDwAPA/cB2YBvQCtwH3AvcA2wFtgAhoAUIAncDdwF3AncAm4Hbgb8BtwG3ArcANwM3ATcCNwDXA5uA64BrgWuAq4GrgCuBK4DLgcuAS4FLgIuBi4ALgQuAjcD5wHnABmA9cC7QDJwDnA2sA9YCa1j10CaO9c+x/jnWP8f651j/HOufY/1zrH+O9c+x/jnWP8f651j/HOufY/1zrH+O9c+x/vkiAHsAxx7AsQdw7AEcewDHHsCxB3DsARx7AMcewLEHcOwBHHsAxx7AsQdw7AEcewDHHsCxB3DsARx7AMcewLEHcOwBHHsAxx7AsQdw7AEcewDHHsCxB3DsARzrn2P9c6x/jrXPsfY51j7H2udY+xxrn2Ptc6x9jrXPsfb/2/vwX9zK/9sN+IsbW7z4sIOZsOSZMxhjxmsZa7voiP+LZDybwxazJnzWsg3sIvYwe4fNYmdCXcE2sVvY31iQPcqeZW/83v/j5vdY26n6ecyq3scMLIGx8L7w7rZbgFZ97GGRi+Al6DyHImF7+KujYl+1XRS2t7Ua4plZK2tTXkH0e34wvA+vXPjh/sJX1kHHaSW+NV7bdnfbrUeNQSmbwqayaWw6q2CV6H81q2ezMTJzWQObx+Zr3nyk1eFaC28mcmF70fShXAvYQmARW8Ia2Sn4LIReHPFE2sma38iW4rOMncqWs9PYCrYycl2qRVYgZbnmLwNWsdV4MqezMzQlmSJnsrPYGjy1dexsds6veue0q2Z2LluP53weO/+4esMR3kZ8LmAXYj5czC5hl7LLMS+uYlcfFb1Mi1/JrmXXYc6ItEsQuU5TIvUB9hS7h93F7mb3amNZhVGjEZHjUquN4UKMwQr08MzDWkzjt7R9tFah76JvzZGeLkP8jMNKnBIZR5HzTOSkWug5iFpWHjUSG9EH0od6RN4lWv8PRQ8flV+LyvG4+rCRuUrzhDo6ejx9KbsGK/B6XMWoCnUDNKnrNH14/Nr2vJs0/0Z2E7sZz+JWTUmmyC3Qt7LbsLZvZ5vZHfgc0ocr4rvYndqTC7IWFmJb2FY8yXvZfaxVi/9a2rHiWyLxUHtkG9vO7scMeYg9gp3mMXxk5EHEHo5En9Bi5D/GHocvcpH3FHsaO9Rz7O/sefYiexLeDu36DLyX2CvsVfYGt0G9zD7H9SB7Sf8xi2VD8eP/dozz1WwGm/FH7m5Hmz6VJbJN4Z/CS8M/qcNZLZ+EA+QdeEpb2Xr8xD7/UE7uZmbdP5iTbQ3/oE4Ddzn4tr6+7Ybw10yPXXOx+gp2OZUZ2UA2ho1llwXX+MoeYDacUpLYIH7PPYlFRaYc40M4gSjMgzOMiXFe6I/TKbb7UlPzvff1M2xQHSNaec7WfOMGnM7zD75/cEfuwfd3xw/M3c1z39v1/i77tzscA3P77Nq5q1dPl9+ZaruvAUX7ee9r6KcaNjSojnxR3h/TkO9XjBsaUElyvi91h29Hrm+HD9X4evYq545MhwZnrGI0Og3ejj2Ufp2z+/fp03uI0q9vtrdjrKLF+vYfMETt0ztDUZ0yMkQRPldfOTBFHXfQoKzy5k/uo89IjXPaDHolLTk+Z3CWfeLUrME90o2q0aDqTcYuAwo6jmoo7vi20ZGemJQebzLFpyclpjuMB9/Rx+77Th+7v1DXsP9i1XDCtPxO6uVmk6IzGFozklO6nZA5YnJcgl1nSbA7kkzGeIe1S9G0g2sT00QdaYmJVNfBMRhOb3ifbpXeyTqybPauGPdtrFP4s61WOx/tbY2I7NbwN1stEBYpzBD+VKGy7OJq065W7ervwrNEcncLH9PJm521x2qxJndM95ptPElnZVa7Vbnb+7D3Ra/qtXqt8ekT4gP6AMvPz48fODA3d/p0R4eBDkhHH/vu3o4+vXpy3/TI29/nc/kzUKU1a0/D4XUeXk+yrKi9Gh9qwcPLSkoyaE+ss5qpxqrejtnZ/QdwekwdjF41U9do4vYstzsrIUa34OAnc1RzgjctPSuOm3hIZ0vpnOHplhqrO41/wB87MckVq1ON1hh+QtuzMbYYnT7WlaQLWWJNqmqKs2w4eBpG9g7GdOdjXsczN7tcjKw/PT+TJyTb+ZgEexwuThsu8VZckjFUCffjB2PGUsOfbUGOVIzglrgI2zT+YYtV48+2IHfq/fgRNoYlc2sottTVyrNb9JNY/u58zPZd2mDtJOrVc7qrJTa5lVu3NsSW6kXOUAOyYnLna1NaTNDMjtn9HH3798nEUBj79lC8XoeY0brzJ9/8zS1tX3Xo2rUDz7rts2tK7+m74Pa1d7esuH3RQOXK2/bfPMHdWXdGZ/dJN352xex7zhp5wDGk6VHG2R3hfQYfej6Yva71214xZOEQxdazZ4fcXHOP5GStE7+nk62KAw+8l9VqFqNmFqNmtiOj2YxcZjFq5u0YBxZ+xJ8Ch3XqX2pJ7mDLTe7Vw+DuUuoOyKmVH4/Z0Cef5+700bhgTtjblWPgibl9+oi5Nh1bwzHrSD5UiZhLclk7vFxMJUwq7nW0B/uKHQGzivcR80vIRIPP5HSndMhMMCltfVRLYrozMcNpUdqGcZPTk5LsSTB2d9V7enZKjuFL9XytJdWdnTIvzpVgTTVZjXq90WrS1e2/2Gg2qjqj2YBlf0V7/JZunaypXVwHTlJvyeiWYolJSE/E7LOH96kf67JZJ9aFnSyewj3JHTpbs22tCvfHdMj2IG7JNrcqJ/jtLDsrvVvnn6xYQzXx9fp6Wou5u7F8eEpu8s5djoED4wem2t8jIfZPO0pYO//UcKgMrbtcHwodsdg6ZxqPXGw6bbGpbxtVe3ZmZpbTpJ7U5p+gMyd0Skv3xiomPltnTe6ckeJNjreY1JXK3bxucBIWnmqwxuz+IsZqUvWxaYnqk5ZYo8qxTVpNTW1m8fcNrmdMPYAztFhvQ+gNkqAMFEtKcfpjYpJ/jq12/ayvk6uEXgTW2OSfG2Kr9a6fG5B0xKrwHntVqAdGND+zYb+zUycndzQ/emZRsEtgXcMFG2vXlndX3OufXzs0PVO9KTO9+KyHV01YXzfowFe9ai4Tf19BtC8W7evOykTrWlI7t6JhzhhPgieBxaT+mJ1tSPnJVt35JwO1kd5dL4i9zL6rt2hsQnbqjw3IZkv5qcFWbcD4GyJtjrygso5ezYlawHGURDOMFsPBT0UflHijxaiDb2yr4HVGi9jBoK/gtxoQL4pPdRipP0a7Kz4+Jc7U9rzRnprgSLEb22422lNEzxrCX6lf6XozP1soerYlIyMuWfwuDusS16rk+c39vHtT9Pj0NIv/GDmo1tnK41t6zo70UvRPeyBPYH7lin5aUrx7G7QCg0SJrQ2DanuKMqEGFIr0F6XanxTmmXj1Jjoz8JLtP8DR/sbN7J2U6HAajLRGIy9hnfqV3hiji+s1et7oyc2VfQdUnVPao7Lzl3Ic+Mwkj92ROX7S5K6rn10/YtzGZ08rXBQY4DSr6xNcdlN6VvrgOZeUz7q0rl9SIs/AEIhhMaa726qc6cb41ATL6PVPLV+9Y+O4RLc7wa09+fA+PgprMZF1ojcsU5xbzfYabamh5+jzFs3DIjpid4mcGhL5KG2XyHSaYpye5BSP09RBtlb93kDKwMJh5sCdpunXKNk4jTJmULIdkfurG3D/PDaD7u9VKrbm5CTl9XlIORFvfovixEHLrFT5bSypS01HiyOtxtG+EQwU2ybOT7135WKaaavGcnimyBv38JZ35o5f9MERedeKeWjkPENVN5gSvClpnTrY9G2rZP9Mzkytf3yBIS7Jk5zaMSFGNVhi2m7lSw0mg5pstBrFi9ekOA5+bfrFELT1488hqoqowRLrsLQtbosxxdrMkfWnvIVRSGZ9aRQS8BSY0VaDqRXbotMWHdab9jRsNToRDTXoaIFpfTNElpbskFhKylv2uDa3s9OhdostubhTJhbN87JZB043Olz0HPQ12AHy2BzRgq3dE3M649Uc9sd0tOWac3I69jULz8E69qvOSbKo6dnV6fX2yIMQbx/tSfSOx+sKA45NAfuxeBxxR2eXb6uj31WRPfl/2PsS6Diqq81XVb3vi3rfqtXqTS11q1ut3ZZasiy1NsuWd2zZli3ZyJQ2S7bBGJKYJeEnCwYcfkjOTDgnk2TOTAI2BhzIxhmRdUyWn2EGAgST/IQlSkJyfkjmx9Lc9+qVuiUvccjk/OfkyNd69arq1Vu+e9+999163X01W2W3yUeUVt7h4i1Kdv5uWSgGXqOam3+QVVp4lytgUUacQqAiCIYqLmMyOlcw7t3vKivI49EPbtfpOIVawR3/4K7Fq98r5bGRuphlv+8vd2v5Ukkufw8caUK9RCMGLXhDl1dWdY75EYiit3ZEW+7ghx3XcweKRTFD1aG2+P4SKVRg5R1lIpFoqARz6pLRWu12R3WSKzCT+32pezoQMc2/GeuPMgzLKM1eu9OHR3vc7Ckxq+YTm+MsA/8UFq/D6TMr2kr5QJDV9jzUW9rd01168VvFY1UZnab5sg0PD8Q2b94SY/4NrJRMBgm2U/sXfitrB21pRVGUx+P+Niphm2C6+iHVIBdjPGPcHzrHGE/LR5cYq9NGF1w9Kxj3y/Ft8ONGl1qsooUGMViLOhF8ufbWj3zj2LEnb17V9tFvHDv8+PHcmWD3jdu23dQT4nvgeKw3yPpP/PjkuvaP//DOW8/fs679zu9+Ztt9wqrcxH0bdnx2rKlt8hToF9J3+W2gX34IHVayalgHE9sLnPw8SHY12IBhcXZpWNvZtClhzuJNq5EmMzZ2Rm/C/EZTk6PhPcw1Ua6JnWuAMWaevwAMfIEoGEuiyfyGACX5hvcEWhZzmBi6hmJNE01yoaXiLBk7pZ9zOOx2rsh0f15lC3s9QZuG22Isq2rNHpDUDthy9547dlT5anrTnspw0LRdo/yNraond+rTzesyLqsSxJlTG7R/KG9Puef7F1n9o6Av0nGgNbtlbcakDVblYm+5XeyroVUJ1/zXXCn8HQNdC79lPwBu96DbRVzaWMvjkWwka/DhPbrIAMKuz6kbmv/sWyNP7AcFYH6Ct1ZZWStoBj0RgYvPD85h2b74/BwWf2L7iDw0kGf1QkOi+c8CedyKn39MsMrxw5KAzCbw03AoyIlCkhNx5bp4rrAttacK9oOm/Z/eWL27t8aklLMs+Afayo6hVZW9dYFEx3WD13WWZ3cez5cPrEkbyH21Uh1fPVAdzVU4Kzqv23VdZwUT7Z7pr7B4vLA4tJlKfCVqX8hnjzdF4qtT4fLqtUOtudHuuMnuMmrNTpPVbVa5fW5buNqXaE5GY5n2XVhTeEG+mkG+eNRINAWSgTg9ZjfKTKClH/MMa7AozWWY1Oy7zwIyZ2QefOOsQO6A4CQyZOygwQuiEix4CeASNRsN8xfUlqDLHShRzV+QHCH2Tcxr7ufh4AcnFrl+q8oMvpDHrMRqHaR/58Ic18L9kEj/e2TFwxvbAm2pNk6rdmR1sFbJ4lVLFi9YsiYjrJGz55j3cwYUjRrx95bhdQ1qxIsgKNqIFz96etSKx7P4mcZzrCpXYnY8i7KmLNv0nSyDskw2m2wtP8eADfhJKVNaKvO9nexe/bKuT4ZS1IccxH58anBq16C0NpxN7BpsSInLnwwYkF2w6tFrHUzW8ayA6yslFdoFVAqLa6gz6XtbSHbrVr8s4HqdKepw7t41iL39VGJQ1LkK7OXX1Ig2hgBbXUO1EL0iI6pWKcqWHbtqXIvJ63EHDE0nN3ROb6hsnvnK6HF7el3D6qGutE6lU8uUnrYt+7NDn9gU+eKn2ofbAtvXt06sdup0CoVOd11LR7hjf2vvZHe4I7u+xgNypTK5jC6fO+SzVmy+ddOso7Il3rGxrR14tAd49Hn5GIqgBvQNwqNASxOj9TRgzjTg9WSDyYQT4EUDZlTD08yfQbelFl7D3EjRJWuKLllTlFspyqXUOVaT01iDHdqGqEdmKMcb5ZzdwGbZY4Y+eS+WTuAGseBL1ucYf4BfIz3oxE+eFZzdBvwsrNnxw1iAAfJl9rwY6YzdUTBlkUix5q/jPg+2rATHfjof3LHvk1tjmb0nd/ffllOWBMBlsai/tOaW9pZtdS5bdktrcHWuI+qCpSUIuk51tG9L322n9848fXvn2jWsVqnHK0698uLajVtX7T2eaz8xstpSviYN6A4Cug/CDEigLHqboFueqm2pnajlrDyOcvA43mENVpgAsgqMbgWGvYLMhYpzzJ8fb098McEmANTHoWQiKzsnwg7H32KYybmWHMXJIMN4B4MV3/uo7B4Z+x0Z8xMZI5N5Uy9Hup1v7zFMGliD+m1vH1WeZB5MHZImQOaVxCDJYOklIZJcqazie8IRUkck9bIQ6TY43xaQwWRgjZzBq35bgLqwKsVCT6R/MCFpFIoz9W0VxVbYFq0lvFByD0ZdF8/4OyY35Ia7UjrwCTmWU2prt0zlJr58qHHV1Bf2HTy1p/JL3E1HV+9sLmVZNhrsuXFL0ua2KQ0ui95q1GldTmvzsXPHZr7+sbXt05/bZj1xf7J3pA5/v1zN/H3cXdz3UTNah3YzdoK/zVLZiWW5UwXwdfImK9PbWd1ybuFPGM4WKsVwfO0JfKtF2Q/ZnN5oYXr7PTJjFVetVGLMQeQ9eH+WHjKV1UqPR1ldKUO4bBYHXLbhJrbxJnhsW3k4p4Vj2Fil5Oq7X9JtfNNm21PPvbUqX863vVjfveNFvp8u+VqITpp7Ac8IJpWoPo+VkgPMGizqQKc4GkznE/A/ISXYJYiSenXdLwk6m23jmwKufBX3loCrr297Uajv5ne8KEATdIHYIion03fxxKG8CtntooGLRBVg6uwOh5+zFXlOdaDAsrUkFScVLCCZbGRRYTWz1mwkGjVw9Iy7y2r8WMibGfzourp9HoujtfadNZMDyewNX5oae3BvhSmY5tOpTDhQlt35sd54Z4Axmc3z8yODVZ0px8iOdD7l2Lh7w1t83Km+/UjPSLOHmwkFyram1t24scJntyT9oSSrYYOrtzc1T25Oh3Pbs8Hm+mqXq7di9Z5IeLCt79imSrUqOP/uzgN8fVds+/5AXf7irsYWVuWqjMdsrWt8Vc3YPu0B+fg8zM7VaD36OJaOMxn/evz5ZGQwoA48k/QxHxqo78o0r/fLQq14X29ldw8cHg/1Ot+Ri2wT9Ze5uhpm0Sy2Hxmy+NAXPVmJHz0rVHaH8MM5tRDqlTvfEeSUKaIOgxoKamypI1KzZKHOOmqurNPqhIeF9L6NtSUqjpXBakNd2TXanhtq4+PdnZ1RSc3FO9d2xlUWrP7MyksUXXjswT0VWotNbzSV6EqghNVlda8e6R2JN5QZ+257ZO/0U7d1msNN8TG16A6o598nqq9l7YnhVZY4qD5A9w5Yc2+Qp2B1H0Rfxug+2RLqD02EODu15HYa1iTnVnIkE8tOZ6Gd2hD70+wU8iKbGAy10ads9K4Nx96x6rOdY/70hCaQgyfx9vizLlMXMTAvzCWofqO2RQz+unChxwWxFFiS7yYuG2Kw4tcZWPpB7JlmlUUMSsJKENsIlbWiqTGB/1wqLV7JABy3K8U1jZKpaiyPN8Af+GkPAhbN3DeKIh3Mn85qaAelSAftyOUjHZc0XdQiMAC8cK0KiS1xx+VTYG8eI/pO11LLxNNMOmdh+tLnFn5CoEpTMwLHtzGWaWpG0k+zUVSKdBRRHY0/6yjkOgq5DpDOue2VlQiDjXJwC9lLtfJYl7fD3EvGRBad4HYmEjAj3iXG5TUJezAr2uLSTlr8mgMlCiXDwALmuMpa6vaEnEbF/O3L0WE2qSyuUqer1KbWG+efYsb1WjdebHJKvZr5w7xeAk9eLy1BP/gZc0SjByCVWrUOVqlPzYfNNiTxDhC1oQ2iFDv6HRMODlFwEAUHUXCQJI/oHOFxh8RjSfIeI5c+BKMLfaV8/gLorgw6R/hstJjwyxKctGSZcivuHX6jQueSlfbWSntrpb21YlZ6/Frs42mx76HFlkuL/T4t9ke0cP9JkcN+WDoocprK7nJXWZeLshnbLAaskziz6KsD7Lvhl1KnK8kjWqHoGTEe0bJssmF3WKG8lOe22lpRz30BUCFoOJNdVc3H2yWQcNTB7jMpex/ou+7m3uAiVqyxb1d72bbNF+++dJoc3dy/ev9de7COug78s1cBRRxz+AHB0dsSZ2IWJm5mInomomMiKiaiZMo5Js4yfurs+imofjqN/NQb81NQ/dh0+FMaRlOC38+UYEhLsL9Xgt9qlWBcS55iNfj9zJNG1DcJ7HThT4kYu0PnGPa0vI+GNwYprKnBxZdW0j8x6MGcFYzdOOjBwpq275qDHtyrjdNfPTTxX8ZrG6b/+zQc677maT7YD4Yi6Gk52J8/2M4z/zr+9Tt72m49ewiO3XA83nVib0N294m+7hNDDdldJ3BUlaAn97MR8g3ESlaJ7kZ0xrBfJuu+O0k8b7KGiRip4BkpRkZpmhipZBqxJFpQzoo1ihkSDBhyw8I9nFMnuiNGG99lwzKHo1lzRLWI8JCVwukEKagRCiWdYtHl0fDLSRlRLAr2y6xCrVI5fGU2V1VNY2i5jIVbGxt8+mCZTyfjGG6v3W9Wq9WqkmRv3cVHL5Wy22rbo0ZOpdGoDTjGuWFhjn0OMOliTKJeTvW09PT3fKTnkR55K4WglWLUSuWrFe/qt9JzEz1q8ZF5ORcoy5RldB48Zz14unrwFPbg+e/B8uZ5Cn/5NXioGqyidTmituE0AvW16B7RsbrkK3Wad8zrzXvMk2auzlxntq/6eatHHu+2vylKIKA3Zybvnk1zJiKOCek1oRhrKVjTXLgu+Ypg1rwjILPJzJs5g1hjfNXPBVKn3P6mJKE45kKqxWuGIu7Irjn28lz1rhPrqraurbJrZAqtUpto2VJf3p7xRHPrN2/IReMDNw+U5RvjNiUH2lyjUJfWdqXKc3FbLDeweWMuyhjWCiAlDldJWcDqNik9vMcSqg1HsrFAaaJ5y6qaoa4KncVm0hntJvw+x+6yW0NV3mhNjC8tX7UJidyUj8kn0L3oj2Kksp55GY2gnYB5K5pkXjtbFrfefAe4krlGo8s41jrSajUara0jsr6Pob6b84G5wx31Ow929LwzsH5gz8DkAJccSA5srf5B5GD31jc7+u4wzrnyd8FC97Ra1AUZSKoXmWEmUwDHfGct4urAgrcFXMiYXn3+ggkI+5/Zm/OHA3OC2NBAD3BmwDTADwBnSFsHq38gQGsdW98UoD2XcU5w5dW4yTOCmmqSDCTVBVaRVmnIny7nzMQ1Ko5oYBWznF+2q/LX7pCWFXgmUgOPQ5d2afUoH2Nh1R2Ipeydwzn/zUaLXKVXHXMl2+KxNVXukE/F4fBaaU13MZOvLiKV629odiUsdkfVzts2DRzfVP6GSq+WWYy/rs3bw94SpUKlkO0w281arVGtCPdMr2MNfJnVbVZ2r9pa5/GmO+K5bi/vv4x0NF5dthqH1kYUCmc+0jaxIZnc8rHNu5Rmt7WMn9cM7lZr1HKDE6QruPA7dkz2VdSI7iL6M47MoUqqEyqprqikuqKS2qRKqlcrsRrVOfSVc6G8Tz/nyKexGClFMTqPFWc1jbCcnyVvC6DqOQHKOnIO/ZzgyCvTRAiUVAjcpvOSsZZdwvOrcY0dU5n4eNLRMZzz3Sry7BbJpfk1DmEB2nWdjjJviUqulst2+EpNhqVYv6CEUjK1DjLLMALbAxhxv5OnwPZ8hdieMPufiO3B118G7FrR9WRFl2o1YT8s4fcnjHg+6riaRGvelJhrqsmX4DBUuE8thqHOwyxjUplXLljIIo68cdVD0ZrEnNCUq8mHS0jkiZQnkSf3eZgiWH+Rt6mL4dMiDGxXA437it+uIm+UrKr5VBEUV8aNe9Lj/uCBRVtjKyBi8QXNV4SP4iL7qez/gJL6EsXFgL9ZIbFuG0YloG/Te4FQTWITWpdvzTc18fmqPJvfZkjM1eQtWCTCfTuLRAl0UmZ2sCGFXdvZVLW4tYjoIAqdS6wG5U15Vsvla7YZMJAAo4XCqNy5RNBA32RMOI6E61wicMsQvVT1SIgGC2uFy0mk7Kcqsz+OtUiLf761CHCWUxr9sctDznwbeOQEN0D1BhFaw69rO0FF2EBFYKENmgwainoRM8wlZr1efyV2MIy0R2V+4fKSrdhIJPusKNlyVpJsRStw8KC4sjsTaO4nAn0wc9BwcHDwoIHzrMPfmdGWxiuPM2HPRsA35xjuy/c259P5RIKvr6pn6/uRZy6cl2FW2qhxoYxsEbUDngHEqhB2Yl6eHiZV+YVCXajeVA9srQ/3o7BnTgjnbTLCTZtkOwq8bBFdsGudFsHiF8l/eWIxI8Uzxxy4wswpsJFd43NA3uXgS5TzqSJmFoSDSxZPrKvopWJOXnlmFlWA1xzt7LNsTu5BlaDfP0k4qbQ14q9WQqEQyp5jtud8xvApnvfYTvJJpiqZS7LJpMZzKjZVd59mhpumMXMcuQWPAO+FKQ47hfnwKQEeTtpOCihpSv4+yek4eD7mOSXEpjR19wmkDho6p28r6DZOMdRxhTcVBSNd/KKChcVj0B0ebKzoqQ3EeoQ1m/SB6kh4VaVfpbcYmoZXtw82uO8ciDVFLJmKipYy9pc6nVZfFY7bK1rKk2sr7SFPuVdvsZlDXmuJ3+mr7Ut9VGfn7dFoWRSwygNWxxRmVIZq0HUEK7Wr5mkG/+RKJXNXzmQOjLnUXOxR+1Tmc7oibMj7hOcpJFZSyB57VLBP6TKfE3TFAJB3Bwzds3pNrw5g0MdcQbPdqEgNrWrb0eDmW3e3pAdiSqO7pMRtUnwi1hkrywaMOn8mUtaVZH+l0+NAXGsqneofXdUx3Z+IRJikXCXjOJlKPr8xmeSza0JlHTXBRA2Wj04Y8zjIRxgl0XHyVi8pw1+Z5jGbPZFzzNacA3ms9xsM6uRJHgfmnfF7+Sn1KeeMtDtqanF7r2jJMAYBg/V+AZ6RJUEsZIyHg+f4+L0CP+VUnxLgWWeRPFgK8lCI4tvFORe5JIbPjrut8yct8bZ0pCUT1GhUhtJEuo4/dSrafUN7B0ynj8vWtoeyZVZWhtyu6Opyu9aos7q9LoNOLb/3VMfUuvJYx65ac0ePI5b147h9OfM+OyJ3oVWoF+1Ab4ge9gamHcWQhRlACbSW2fhkOgEU9qzGX86hRH1PM1uRB21ituRiYdn9DROxDffnbOttrC1/0phUcrW8jtHp+NzJ2il+K7P1ZI5nePzZcJU2zx9BLYnBuSkRO1B9cy8MzjXQ7QXPv3zBLG7FArf6FeJYpxtk9wvQgG3D/QKymaAJnS5/UiCtvEZaqc2dFHA7ADXP6LmihgDlwpsSaCph+u5gQlqj/qU4fO0lYXj4U14ahieP4jN2RK/usRiCzVtqAvUWjT7C35fszXpDXRM9+f2t/oqolw+57a7S5q3V3pTtCa32m411nrhH35j1Jjz6ZE3q4yFnT3uiMWSU/Ry83IQzmc+49TqNw2RxsgrWFqkvja3J+uyRGj7W6ten3KEmh70hkcpXexRy53+uqjP7oiVVWZOvbP6gH+yvJ2oP8UYnj6V8iP0Rw8r/nUSHcyKH7cxLyAuWbivSoADjPusyTcrxjH61sNMDB23dTwiuHLkFc9j9HMbOesmSvq4obPtvcqPbhmemwuQusbmNcn1pVTJYmqwKsr+CiSnDs5N1gsvPspA8We73x8sDfrx/j/0RO6Sw4p8QwT1s1aI0czfeFwZdtKMQ8zjocA1zDu8Ow/HMSe+YeZr0mEY/QXzI/jCyKae4RFHEUwpNRLnLRDzrChFPpdVuZ4eUFq/d7jWr5T+Tm0RtoxCP8rMyjQVG57Eo1YYv/kirKgyNqZz/FynPeeV4OwIk86UvKjQKDo9YVWJ5dP4di1EcMfojjLgoTr31rMY0RkYlxanHxBFcFvc/Lu9XoR+FthHF9mbQchVoHdFxZWY8g72A7bacAXkNj0anyhz8pIMCKsYZ8eqWqHRD1PCoUFSiKKrIFPoUWRZUxMKwGFJkb8ZdtHqMytr6UGcMTqy4365Q0JXZU900kLYXQVjf1ZmqnL+/IC06+NdWnSxbPVCPpXkt6OyHYTRW0Np0j20JcxfeuwRWSq1xfdY4Ffpn+cyyPbZG12cF45Q89M+CfOYag3e17MPx/kP5/smu0mjv4XXd413hTxnDq5Plq2Ml+LhuM/f+msmBymjvWOeaiQ0V8Z6xrlhnjd+b7awo78j6dlHsmZ8SD6SD7EstdSMjNiw6t2Y2OlVqtPknbdOFSNu7s+LmZn1UMysU7l9DfE0EXNzezPwUVvFyldZoMxtB79glQXGFQg5neSRkNQTtSrBnPzM7DUq5Qq51xnzzX1mKeGcg5lDJVAqDA0bRxj7LzMEoWtAnRFltYDY9zlfwFTrXOWZzzod05SdfS/8+zaZr73U1yMNTmpPfMf/EzJrt92JOFHYPDS7dPpQLp8tPCny6Cp4M194rkGfNmpMktAW+gFluv5cyTHztTTYRDV4+klULDpR0KisERkBDAyJzZS3ba/imZECn4ORKmcYXqw1XNpc3d7XE+YYNGX911K2Vwx25wl6WCmQSiZbulnLuaKKt0qk1GnUOm96qk5ssxtKoN+hwxHI10VUJu1qn18Ads06uN+njbn/IaQ83Y66HAK9H5A+jDNpCuI5CgSjmuslq1AYmog+4tA9YJxIPKkUpPU82fc6+++z/msWY2AIT1ugDgsuas2ofEKwTysSDgnJmMUSQEL0o0UEwU827JEBgL6zGyPxjHlFo7P6gcc+mdVqtVtenoN7T3XCmvZsvd0cUMoWc5Ux2p1alkO3cxUScPq/zFjl46jJIbnF6fc7536YzRpnWgn9LjnuS/YLcj7TIgZyoTZyDOrYXWZCC7T2DbOpzzOrHjJwzj1pezeAtURfIlrozNg7feVwwcjm45wSLklncFSVZEHnxS0CmOVZbG4mCHWb2SrmLe2TP1MWiNfWxWA09zj+DeyXj2Wfkty3v1RDp1ZDYq1bcq+HL9apV7NXwNfWqLV5XF43V1cWYj8TramPx2vroxRZ5uC4eq62PRevocX4W/+Ih9yR5M6tFOhSTdl5PnVWoOR1G57yo6M+quZyOIPLq+WUtM8wG6cXn/COy8/Q95/xpXLeMZ3rkdyyt+yipe3hZ3cNXqLunoqG+PNFQn5h/HPqfiNfVQ93Qb0az8B7zsnwXWKc4CpPPbsjDnj5TB6iqV56DWp+Qh3PkHDsGrzxXrEy5yOL73GWfPPumEn/yy2tRmhmVLeT1hGwqg9oVCwTiTrXaGQ8EYi41c1h688Y9pbPo5AqdWffvDcGER6v1JILBSpdW66rEdmBuYY55RLab9LBe5LadHUY8srENT2hN5dDfUQSdNc1KVuAJfDHnwRsS3fj6Epcge6VOn1IaPTa7x6RgzAprmddTalWq1fYynzfiUKsdEa+vzK5mavDHYjhI2AWdSSOXg9v9Ae+LOrVaZ9Tni7k0GlcM9MIDC+8z4+g14Fhc3EOoAH/1CR3TBzzrRS3AscQz2O6rcxwOfLnP063EiwwbTzWvSuK/sc5Uci38YSTu5vazD8kPF/PKE+k0dQKvzmcIrzw5co55dT6zhFeS5Vt2xW5jb1OYHBaL06hwaEqCDmewRM3Mf3zJtaoId6fELObHUm4+vfSayYSQCe1H18l2yNYhJTLC/AygKEqhOrAnnagfbUW70QE0gY6ijzBkF3ZufP31wiah/sbjq47HJmcqZvg9w2XDqnyvrhfl2mXtpqpsSVY4PjPc257NtvcOzxwXlN5tO53e7kNH1h1pO3Zrx62Zg+O14+7rdvl3WQa22Lewjc2KZk150pA8cuv4ri3NyWTzll3jtx5RRvbvLY2g1PnUebMY3heDMeczV08Y/ITlr3kCa/b6D9e/XAQ5U+6/touEzaHSmmx1JkqPVnp00KN0X7nsfPlx+X2lfel5eFn9Unvc81XZbNX9OHm/Ol2dLsO5+boM/PtqdTpdzQ7g9KIbX2BvWyx78WtV2UymjElns2nme/jm/E6cvo9L349z3GchqYKz+f9dXZ3+BZwwD0BmC67tZkiYb2ZSNRfzkDtVVZVleVpoXgmZN/FjL2arsknILCwgL3uefV7+FnjnjyH8pvXT7E/Zd+W/gvMn6fmPuV/I34Tz75B95rQ8rE3CqJ3sUiibDfnwp9DOsXc8Zll0olOWhjnMdI2ubFZYVsAplSCezJU/qMY6lFw1+5yc0fqdTq9JIWubf2MVqzJ7nc6AlpEzGlZtBuXkN2vYTfufY98zmNQsI1cqHjsthyUWpzLr2VeUahnLyjSKh+Z/DL2noyOfUKM20sr8E/6EGrP9MbVrVo/76J5VHKL+89zzeBBn9a5ZAd96XOGeFeDmZT+ltuhCi1vd2Xez++8b+YrB4zGc3f+ZPelPexq3te/Y0bq1yS87sP/BkYzVyX7Taa0Z/tTOun352MULpWuvBx1J8UZNaA/RkZUu/LWhIfzBrW1nUKgG9yLp0HL+GM75pwvrQPHDKXMZ0xyebV9HNZcrWfy5lML6haMfoeRC1mKXWvygRrVV+ggl9wulyWWzegzKtxi10W402Q1q5mWGUZqcNry88Vs7HLzLpPgB9y9Ki81l6dZYdWr2l+Bwwj9YkeUufoPDnpZMIYP8/1i8/oLbBlWYL/6B1VvcRoVcZ9Yv+R1lHUbCQ5Lt26vEa98WiRGukd76+xD73/4jiSu7RpqhdOFyJJtaRl9aRqclkmeBDhfRRcWNRfTCIr1+KSknRFJZimjobyF19V9Jr4ukefjvT9rTEun2LKM3lpPeU0SzmAzGJXSmmIwbFmnwMvRrkUzPFch8USTLZxbpc8vJGrV+YP2gRHUJ/eZvIdsJQh/Yb7Hf4pgAesbxjLPROQH0gquS0D3umPuBv5led7/uqfyQtMNz1wqt0P8HeqmYvNkltPs/lE6v0Ar9Y5Nv/i+RX0HIcAnZV2iFVmiFVmiFVqiIDlP67nIK9KzQCq3QCq3QCq3QCv2D0fYVWqEVWqEVWqEVWqEVWqEVWqEVWqEVWqEVWqEVWqEVWqEV+kcg8YcS4e9PkEbRd5AclSMZ89DC/0QybhvSISeSLbyOnNy2hZ8wLFyfY/yQ/huznmEXXoLUDVfWM/6F30G6HlkhvWXhD5CeIOlDCxcYAUq+Aql74fuQ+he+BektC09DeoKk90ANApR8jzlC6v8klH8BUvfCryD1L/wrpOtJ/paFX0B6gqT3QJ2fhF5lmHvgqbeYh+CpX0PqJnn/wtuQ3rLwG0hPkPShhV/CeGRIx22DftohfWjhefxFN2wpwt+Kgj/oZSJocAQRAznjyOe/DLJHaZ5DZbJv0bysqIwcOWWv07yi6LoSHZH9X5pXAbIGmlcjXj5J8xr2C4vltWiL/B6a16Fy+Rs0rzcoFFIZAxJK7NJnhRhVyQmaZ5DS9k80zyKl/SWa55DTfoHmZUVl5Ehn/zPNK4quK1GTQ07zKmQruYvm1cjkyNG8hlm/WF6LEo71NK9DNsfNNK9Xco57aN6Aav33QU8YmRrOhkmvcF7EWcyLOIt5EWcxLysqI+Is5hVF10WcxbyIs5gXcRbzIs5iXsRZzIs4i3m9wen/Ac2LOP9XxKMMqkJpVAe5PvJru4fQBJqGv/1oBq6tIb9SLP5W8RBcGYXcOErCnVYkAPFoAK4dQNfDvWlyNgLHESh9BNJhKKlHecjthSsj6CiU6IfaRqCOTegmkuNRL9R8E9R7mLQoQO4A6QkPfxPkd34PLbbBL/a5ClVDLrJ4VocqSPtDUMMklOWh3SFoB9exD91Ay3bD2fVwFd89DP2bXhzPJvJrw9OkB1fqz36CA4/a4Hwv3MFXhwgKS8co1jNBR8qTVg7D3X1kvBK6R+HZQ+TKYSg1TFDj4fr15Fof6oI+YXRGyXPjBNcm8vwIKTGCxqBNjPIwSXnaI6ksT65PE56OQl8k7hXGge/PQC9G4clpQGENGc0oGcno4jiG4G8MnhB7KI5niLTBU16PQo241iEoh+u6Cc6OQm6G8AH/jvVeyAukT4cIFni8+HeyD1CkxFpnyJjENsfJiPaRno6TVqYJn7oIV/bDlSHyO82HyBh5chR5MUrGJGIxTaRiGmodovKKOTZJr0utjEE9AsFnkvZyHK6MkVbFOqcJUoUe4BYnyVik3/EWsRX7LhCpwZJwPZVc3Cv8m9X4t8BnyNk44bUk1yJmYisiH8fpuCYItntJyUKPi0eEUbuRPCeO+gY4T5K5W8zNKKltjNRwE8HhMJ2lxXhL0jdOJRmPX+TLISINkoyOEF5jyZ1cHI3YxwO0zDScHaO1z8AoRA4dWeTSEJERPAPGloxL0jz7oCdDpP19tP0k0S4HCK/wnUv1VeMlo95CJUeS/FqoJY0ariLpM6TNYSKJuJUbFnlQmJmX6skDVK4nF0tjyRU5Pg7lR4js9EKJfShGMI3T+cejTvLsBKl/BmgSxpECOkooSebU0vaStPYU5G8iEniA9BrrvZvgKkZsPxkxltSltQqkD7gHhRJSfZcb2TQZ1SRBS9Qy0nNYxraTUYtydRORB1HzzCxqU6m0JAX76EzFPK0gGOByk1TrFs/KScKbcSoNYi0j9HyIzsARIj+jZIRi7/aSfki8Wq4RZ+gT4sw6dMmV/YtjqLgmvos6YJhgOkN1jWj9xHYrFttZPgJxzhylv3F//RUwO0pHOkosmUBslmhXL8UePyPqkRiUjy+xEJevXezDh8W22P6Iupyn2niGcG7fEq24fAQFHbi8X01FMoBHIo5FtA2SJ3Jo0c4ME007TjTu0BVHKsre0BKpEvXUBE3FUYn5w2S+iPZ/mGitUWq7xXpwSYHM9SvLqOgjjVPOFGqXZshokQ25nmiiUYoz9pn0xB8ZoWOQ7ImE8lKpriCcGSL5YSRZ0+V+xPKZEFumF0aIH3SU2I9Rwn3M1SG4hhE6QPSReC9F69y9zDeJ09lb0BYF3S/15q/x/q7R2+K9y+rolergfYvSfBCuiXySpEa0RQL10grSfTUPUpLKK3uRmHPrF2fOdJHlEfktSsEIbUvU2uOU7xVkzIeodydZEdEKHqB8luRYlKtJat3EFiaIlzVExilJyhAqeNHL9dnfgReLCA2RsWPcRqmuH6ZzdR/1rMZJX4t90lHie00T2aR9vDJvIb9xqR8N3I4XYTRc5A8Wz4drrg8VfFip9OW1W8Uy7SZhv/xpgfiAo8vGLfWrsMYpzJqCJZJ4WIEkXxz73NL5SJGETBJvWyDydn2RhRV7vZf0ZYRaqsOLvCzWJSIPU5Tj02SWCIt9kOb1Ulm6dlSLLbw4ymJLs1SmC0gcJTiOfUg+StbgMFlLiMiMFPVgmKS4zQIuB6HEviLbMXMVfSxq/mEyAsniNS7R4kNQ4wTROJdf1Y4TGyFZmWJvXLITl9MpS5+aJrpC5NVeOu7L29yhK3D00OLop4mUjpPaxVl06Trnw0qAZN/yaC2524864GwrWMsBcqULrvGgRQfgzhY4a4er7XAlCiU20vtRwqmtxA7lodz/Y+9boKMosv5vd/VMZiaTIk9ERLZFxKAxICIiskggCQmGJCbhoQKbyWRCBiczcWbygMUwsgEjIiIiIGIMLiIqi4iIiIoRMKIisoiK6CLrg1VURHx8fKyL3607FUi36EF395z//xx64Hf7dj1u1a9u3aqaTmA0rXHROooQ81G/jmJcNuikC+0azJ+PdYmyWTCObGRhbcWUs4jqHoVP81BmyXyixHB8Mhp1cT+ComDUXj6Wip7Rc+WaGG1pCT7XT/TQ2KpcstjeslGoFWH9OTI1A+vOpfpE+4X9bLrPP9HObNnSDOJI1CzqHI4tyiNNPB2NshDzFZP9DOpztLX51IdsTI/2JYtaICyny75G8wl+xsgUMUaifXn4OdmrDOIgh1pzkr/hKAux5aL+EZhaQitEAZbMpJ4WE3tZkjPR2zzSTvYqOlLDqTeCVcFBJt6Pwr8jTnBXRBhtS1GH2ozcjaX0k7mi/cuQOJyYKyAtOhrDSSuhsRKpaXIsi6gfZqtjyROzKFcG9bj4hIdkk/dGW9/unVEbBR1aErUnxrZjW9q9Wv+FORKtpT19tBzpn/IiWM8gTkS7ik9Y/rmaxdz8T51CT54v+1D8Ed8PRb9nSaf9QTXUP6L363vpFfoorzsYCAUqwvrwQLA6EHSFvQF/up7h8+lF3kmV4ZBe5Al5grWe8vS4HE9Z0FOnF1R7/CVTqj16nmtKoCas+wKTvG7dHaieEhQldFFz38v0XkJckaYXuXzVlXqOy+8OuG/EpyMDlX49p6Y8JOyUVHpDuq9jPRWBoD7MW+bzul0+XVrEPAE0qocCNUG3RxfNrXMFPXqNv9wT1MOVHn1Ubome53V7/CHPVXrI49E9VWWe8nJPue6LPtXLPSF30Fstukc2yj1hl9cXSh/u8nnLgl5hw6VXBbBCtOPyh7CWoLdCr3BVeX1T9DpvuFIP1ZSFfR49GEC7Xv8kbBRmDXuqsKS/HAkI+j3BULqeG9YrPK5wTdAT0oMe7IU3jDbcoTQ9VOVCXt2uarwXRapqfGFvNVbpr6nyBDFnyBOmCkJ6dTCAoyFai7X7fIE6vRLJ1b1V1S53WPf69bDgGluGRbCPfrQVqNDLvJOo4qihsKc+jIW9N3rSddnNC0N6lcs/RXfX4JBG2y3o8yPJQRf2JegNCUY9riq9plqYwRon4ZOQdypmDwewQ7WiSy4dB6Aqaks4j7vSFcSGeYLpRZ5JNT5X8IRfDWo3PUj4w+VjkCIxBAPSL73SQH046Cr3VLmCN4p+0JCe8MxJyHi1eOwOYPf9Xk8oPa/GneoK9cZR1EcEA4FwZThcPahPn7q6uvSq9nLpmL1PeEp1YFLQVV05pY87XBHwh0Myq6/G7QrRA5HvpLFQTXW1z4uOI9LS9esCNcjYFL0GXSgsnFU8FkS4cWjDnjS93BuqRgeODmh10IupbsziQenCYfQEq7zhMFZXNoV61e6OSBX6TSDYflMhLKT9tO/oB+U17nCacMdaLJsmyrQbwPGpq/S6Kzu0rA6Nev1uXw36/snWB/zoKane3tFp0SE71vBLrY3OIvR1HPdQOOh1Rx2y3QD5YXtdVxEDqV60gnNChJKgmDnlgTq/L+AqN7LnilKFnoXdweETNzXhaowC5R7RTZGn0uOrNjKKcQl9N5pdDIiX5kmlt8wbFvEprgSbXBEQs0U0WVKdppe5QtjWgP9EpGgfhFTpCx5/ep33Rm+1p9zrSg8EJ/URWh/M+QcZU3rj8JJb0BwQ1Zw6CJ4qeO2SOfJEjjcFzZMD2CdBDc4lHwY2otsYJgWVhkAZF1coBidEkwf7jRR4sBS6NjJTnqZXBDHoiSmCE3ES9llwjFzhiGJxPVCGwc4vSHFRoG73s9PvhWiQKxQKuL0u4R/lATeGLH/YFY2nXh8ykypqNPRWL5aR+s3e1KJyiobRcThlPoqz4nEHd0uT7iZa357s86KfRm2LuoLRlQot0CQSPUwTsdxbIaSHCKmuwQ6FKmnCYtVlNWLyhsRD6SXYwz7Y8ZBHhOhAtTcaUX+2qdEJjyajk0YyTY2oqwxU/UIfxTSoCfqxMR6qoDyAMZTaMtnjDrc72Ek/Rucv99LEGxR1cVdZoNbTYcH1B8JiykSDuVdO46inyKRQpVgPyjyGmevq0NGgMB8KozN5cYhOrDy/RICYbzlZenFBdsnYjKIsPbdYLywqGJObmZWpX5hRjPqFafrY3JKcgtElOuYoysgvuU4vyNYz8q/Tr8nNz0zTs8YVFmUVF+sFRXruqMK83Cx8lps/PG90Zm7+CH0YlssvwHU9F2ciVlpSoAuDsqrcrGJR2aisouE5qGYMy83LLbkuTc/OLckXdWZjpRl6YUZRSe7w0XkZRXrh6KLCguIsNJ+J1ebn5mcXoZWsUVn5Jbjk5uMzPWsMKnpxTkZeHpnKGI2tL6L2DS8ovK4od0ROiZ5TkJeZhQ+HZWHLMoblZUVNYaeG52XkjkrTMzNGZYzIolIFWEsRZZOtG5uTRY/QXgb+GV6SW5AvujG8IL+kCNU07GVRyYmiY3OLs9L0jKLcYkFIdlEBVi/oxBIFVAmWy8+K1iKo1g0jglmEPro462RbMrMy8rCuYlG4Y+b0uNNZQmm97FPuqXDhziXdFaquP/Pi4syLi1/B7ZkXF/+9FxcO+nvm5cX/ny8voqN35gXGmRcYZ15gnHmBYY7mZ15iGF9itLNz5kXGmRcZZ15k/L/3IsMhf/Yd4McuMAtOdSmYw44ZUyDmxx+hk/hfqOgnxkFJRVkpf3/g5y+NLXI6FcyjzDvd/HFxlP/o6ebv1EnkV0tPN398POXfdrr5ExJEftb3dPMnJWF+lCB+gl6j/Br+TSbsgrRnQldFhQuVrtBP6Q5XK4UwUpkAYxUflCsBuEmphQblZrhNmQELlDmwDJlbpSyBp9UY2MJGwitsHLyNtb+PtX1ssvPpKez0QTuD0E4O2ilGO6Vopwrt/BHt3IZ2FqCdB9DOKrTzNNrZjHbeQDtvoZ2PsPbPsLavjXaUdzvYOQvtXIB2BqOdHLQzFu240U4Q7UTQzp1opxntPIp21qOdrWhnJ9p5H+0cRDuH0c6PbJEifKqT0Y7asT9no51UtJOBdkahnQlox4t26tHOLLSzEO2sQDtr0c4mtPM62nkX7XyCdr5BO8fYOMWBdhLQTlejHU3tYOcctHMx2snGXMVopxzt3IR2bkE789DOMrSzFu28gHa2o5330c5naOd7NUaxsJGK+B2Tc9FOT7RzidGOpU8HO+einUFoZyza8aCdOrQzE+0sRDsr0c5GtLMd7exFO5+inWPKPMWmLFE6o51eaOcStHM12slGO4ViXtpi8E98fGpq5rQZM2xWxWY73NSIV9Nhm02xObZseQive++1WhRrzGFbfVNTvc2i2GJs4hYVel7ddDQSEc+t1vp580oj1VhYUWxaBCJ02TTFZo1E5rW0trTMi6bIi4qv2SaqkjXhVU0WCiGqWJli1fZHc2tooTrS2jd+f4wGMdrQw0Px6qswxWZp6VAvehBeLMIooaXlF/poV2yxL0ZejDyInwX4acJPh77aLYod+9reWWG/dN7hSKT65ztr1xQ7dlb21q4o9hO9Pa3uog3LmlZTd20a2LShhv52rLlDh+2iw3Y72O02dJpk6IGfDJhOjbPHKHb70cYZ4mo8ancodmcrXsuGLhs6nz5z8BNjUWKwYdjlxZUOq+KwaZoWnoNszQnHWJUYW31j4w+RyDRMiomZJlocwSf10dZICiIOi+KIQdkkSJjX5FAUx0kSIlTNhq1iBBrbq2wUdVgVuy0VpBajKTGSiIi4RyYipfHx++0a2C2SCuLCbm1xKKrDcoKLiKooKtrTNMVhnYeXA9cipOMkIdOREmqnTXE4fphxC10zfnDEKo641tLWUqSw5S79Ln02fhrxI1upTUMSYq2K+E/lT01KDN43iNZH0NOmGUmJtSixgpR2VmIVJbYDKz9LCw1C6ql5EWNVL9zRdtjIi8qw7y0tsYoa206MkZlYYibWAbEOJyTS5zzxPz9HpkeGRvDP0FibEus4OitKzoxZR2PjlNhOrV1au7SktqTOy5mXI9x1pm2mbYaNphTRg3w4YxSnXcVrULbws+xBlDowUxCUOTA2BpUTDM2YFnWNdooiTqvitHXgqBF3Ac6OJEVsWIF9w1by4RmkDMwUt1R1rB15atcp6kiiIjTHqpvQg2xN1cI9rUOHHiWqhg5UmRob09LiVFSn9YQdA1nOGEGWMxacsRw4BnvxuTRyaaS0dTr6i3AZp0NxOo/DFowlrR2uFyNbIsfByRVn/P5u+7sdHrwzbY9vj29b3vbtW+e8PGeLc4uTZuW0Nqu1oa1tR22cTYlzMLyumrRFXJOustswfXBFW9vx1taywU6hTW/Da1prA6Y3xKlKnNbaCnDCZlyMEmcXN23b9xw+vGf79jaZp8MlKnW8f2BL9CJtcAXdVwymJlRUAJx4QmFwz/72smKe1m9t3V/fzTmnXri1tbT0aGn0GqhalbiY7dvjVDXOetIetk74hKW11YLptu3igg77IrEvVMt9/knyvlsoep8p7jOCrrI0ffiUoC9NHxH03JhGby7T9DxX2P9LaVS7Q10ffwgsLswHuhvzwYFJmE+ZVYn5lI0+zKfsh26gZWcU6TBkVN51OpQW52fqMGN0EeKD9P/7ceiJu1lxEKuABrgd5sFIWAVPwxbcTQ2QOS6AztjeG/BwOx3mwF14nPwLbICt8AlcIXP0wn1PFozHHWEE7oD5uPFeDc/AS3AABlKOODy4dsEN9wQ8Ht8Cc+FuPCJshDb4B1xJ6Z2Qm7Nxo54LE2EyzIA7YQFu1x+HZ+Fl3MUNgqGgDiso1iG+uGiYOJaLMiloNwY37lcB7kzgD3AjHtD/BM3wEHKzCN6Gv8EaeA62wRtiz0b5O2Gk7AOD0cVLoJR+sqgRHoAVyOZieAf2wRPwPLwCO+GgzB+Pe/2+8HvkcDS46Le+ZkILPIy7i3thD3wAa2ETvAp/hc9pDxMtk4Cng0thCO5nxkAZ+KEWTxLLYCWeG5bAu7AfnoQX4DXYBV9gPiV3LI5MFyqpQW/oDm64R2oXwe+gHBYi8yy3sDAHRhYVjNKhrKToGh1bK/KchZEtFvrBxXA1HZ7EFzR/hFtxXB/B8gVwH+yFv8M6aIXt8CZ8SWXscBlyeR6MEz9NBU14ZD1Ez7tAEjihPx7bMnAVuQ48cBNMgWlwG/wZHgULXAtL4T34EJ6CF+F12A1fyRYk48heDpfgAfR8uB6CMBVuhtmwHB7DM1ER3I+78o9gPWyGHfAWHIav3f1CbstKwjWEGwhbCbcR7iTc43b5wpb9hAcJvyU8LtBqI0wk7OZ2hTzWXoRphP0IBxIOIcwkHOl2V1VbCwnLCH2EtYQRwvmELYSrCZ8jfJXwmMCYiwgHEmYTlpT7vJNiSgknE4YJGwibCOcTLiZsJlxO+Gi5P1AVs4ZwPeFzhJsJtxHuINxNuLfC63fF7Cc8QPgF4RHCoxVBlzvmuECbjTCRsBthL8K+hIMIM71+b9iWT1hCeD1hKWGFNxTw2XyEQWysy1ZP+CBhG+FBgXZOOJBwCGEm4Uifv6bKXkg4hnA8YRlhJaGfMEw41Rdw++wRwlmEcwjnEy4mbCFcQbiacB3hRsLWKk+5195GuJ1wN+Fewv1oJGg/QPgF4RHCo4THBTo0QgdhfACFozNhN8IehKmE6YT9CQcRDg0Ey/2ObMI8wqJq8Xwc4UTCcsLJhNWEtYTTCGcQNhHOJVxAuISwJej2hR0rCN8XGKsRphGWiEGKbSJcQNhCuIpwA+FWwldDOHdidxLuIdxHeIDwC8IjhMdCXn+FEwithE7CRMIuhN0Je4aq3NXOiwj7Ew4hzCEsIhxPWBEK9b3UWU1YSziNcAZhE+E8wsWELYQrCdcQbkDs52wlbCPcTriLcA/hPsIDhIcIvyc8LjDOSsgRL4vrTNiNsAdhKmE6YX/CwYSZhHmEJYTjCcsR+8f5CIOE9YQNhI2EswnniZ9ZiVtIuJTwQcKVhKsJ1xFuDNVUh+JaCdsItxPuItxDuI/w4zD6RtxBwsOE3xP+IJCrhDZCTphM2JVQJ+xFmEbYT+xYcD1I/g2S4Vp8Dq6X/96dAvbTxBj68nM4fd2XjfsHUUv0yanvfprfgmulRfybD7g3+DVaZ1x303DlS8cdhfgXEfrhytof18IBuCcaiLuaQbgvGYx7hyG4Og/9DflPvyUaadF7hvuvGbgLOv07BfcdJ/F3P8G4X4nX/AIy3PPgUeM/dqfgHvGXcOQJTKLXRtW4qwnSa54a3JfV4Q5oCu5Y/oj7nJtx7zud+Ig35DyZ77+R5/RbpeDe8NSY+CuxgLCQ8FrCIpq/qvy3XlSDphCmdsDo2SaPcuXhLr5dM6LjV2LCr8Rzf4I5v4jxvwrPxt30ONwFX49nnvF4ZpmIp4tSep3plr+ZMIleUk7GM4cPzwVT8UwDyG97qZ/mb8/738jX5Ve1NtpWDU9MJXiqGfMb7hU8m7Sj8BOdNP0nWvszMDzjp4kMz1KdxdnoN96dRXcKnvBOhSqegXr8BqngCfDnUcVTUM/fIBU5j06NKp6/e/0GKf4Nq9PF0x0VBefG6WLuL2KnX4EfKK3KTmW/chgDU7yqq33VoWqhWqpWqxF1ntqirlFb1Z3qfvUwAxbPdNaXDWWFrJRNZSvZ2+wA+16zap21XtoALVsbo1VotdosbaG2QluvfWx1WrtZ06yDrXnW8VafdZp1jnWpdZX1Oet26/sxu2I+jDlia7XttR20T7T77Q32B+077QftxxzJjp6O/o5MR4mj3BF2NDoWOJY71jm2OnY7PnZ8G6vFJsf2jO0fOzt2eeym2B2xnzo7O3s5Rzr9zqXOVufeuL5xwbgZcfPjVsU9F7c/7hh38K68P8/nq/kmvoPv44f48U68U/dO6Z2GdJrdaUmnXfEQ3zX+ovgF8avjN8XviN8Xfyj+eAJP6J6QnjAkIT9hYoI/oSFhbkJzwuqETQk7EvYlHEo4nsgTuyemJw5JzE+cmOhPbEicm9icuDpxU+KOxH2JhxKPJ/Gk7knpSUOS8pMmJvmTGpLmJjUnrU7alLQjaV/SoaTjyTy5e3J68pDk/OSJyf7khuS5yc3Jq5M3Je9I3pd8KPl4Ck/pnpKeMiQlP2Viij+lIWVuSnPK6pRNKTtS9qUcSjnemXfu3jm985DO+bg3EeNoi64nyQtN+qMmfbdJf7uDrpnSrbix0iFG6aCfM82on3vQWF4fYqz/ggeNeq8cY/29xpt0vyn/PJO+3KSb+nNhD5NebdIXm/RWY/sv+dSY3kcz6gOmmfSGDjpG4wERU/ou0lVciROjPRzYEpVXllOKhjO/M+42ekWfDtKlvEjK/lIOPVXuqxqlnCvlYilNLF2119jLwbOM+lCTFw1dadSHmVgbPsOkNxr1TN2km0Ylc7BJN3lNZhnqysn2Zc436UtIN7GR2SzlSinXSdlKuc/FnX8O7s3G4fpdSd/QRaAJ5sFiaIGVsAY2QCtsg52wB/bDp3AYjqJBmxKvdFHkmGTJEcxq1/tKOVTKIiknSumTcqqUs6VcIuUqKZ+TcoeUe6X8VMqjUZkt50h2Zyllv7MHSjlSynFSVkpZL2WTlNJ+trSf3SrlLuMo5HQxsp7T2aT3MOnZJr26g471j7QZ00cOMen5Rv26rib9OaN+wziT3tBBx/bfMIv0LngKHILn0XzcX03E/Zr41rgBZsFcWAjNsAJWw3rYBG2wA96GfXAADkVbe8MYKcukrJYyIuV8KeV8vmGNlJulfFvKD6U8HJXjQUrpTeOlN41Pl3KIlPlSlkoZlHKWlHIUx6+QUnr7+FYj6xM2G1masJ/0ZDwrnx4v0VpelVL65gTpmxOkb060Sil9c2JPKWX8mjhMSjlHJspeTZSsTmyQUkayiUullD46caOUsh0T90j5KfWmQ3z9w/dRWQrGfpfOJT0WuuGuMA36w2DIxPNUCQ5IOciZWiqtl8pIUrpaSjlDS6X1Umm99ICU30alS5UyXsruxjaUjUHdftJD3X7SGZ63k7FdVMY9TUo5zu75lMcU69ybpNwm5W4pPzTzUd5dylSjX5SXUb0dcy6Xcq0xDpSb1liP09gLz0CTnmnUJ80w6l7VpINRnxwx6XNM+lyTvqeDjixPPthBx/7cONSkjzfmv7HRlL7fqPuyjcz51pFuk+Nxch5FU6WP+OSI+N6X8mMpZXzxy6jrl/n9u83jUR2WssGccpOcRTeNN7Y0iHNfNYx+SHpVKJVSTF4UPiLl8aiskf5c862x3rrtP/XTehkH6+WqUj/3p3mmyPkzZV9UTk0+lS9PHSCljHx/zJQy76c1TsuWMk/K5WZupkk+p+2kHv/MKN0s49PNcp91s4xTN8u1vEFG1wYZ3RselXI9xDBxlwhd8cx6EfSDQdGUyE4p5XhHJJcRyXFEcnyL08ht4yCTPt7co8YFUi415pyZ+VN+Zsod4EwZwWauMMeDWTLizlpvjE1NecZZ0bTA3I4mucI17TOn3JYqZTml2HHNFb920RcGnthzRdOlr9wmo9dsuWrMlqvDbLlTmS39ZrZcM2+XnnK7yd9vj5j0FpO+waR/YdTnaCb9OSMHd2CM1DrM/HkbjZHgLiv5WAzxf3JViaY5pEyWUq7z8/tJKXdt82Xf5+Pux9Kh7rvfJ0+zQPwJNqPPpV/dLf3q7h+icoEst+CUc2yR3B0skswvkrNk0dtm/2iWntScauSmeSrldHTw+2EwEorgepA7pGbpe81yHWmWLW2We4QHyqWUq2yLZKBFekeL7NGybuY2LZN7qmXbjJF/2W6TfsS4Ui37tsNpFW+Wf2/UH+pizP9QV5NuTk8z6ekmva/xNLgyzbgjfSTepHOT7jTOyUccJl3voGP9j6Sa9FVG/dE8Iz+r3zfqj6cb8z8eMepr5nfIj/oTy036ZqO+NtVY/9pa43xaGzb2d+00kz7VqD9p2i89ucuk7zTq69JpPp5oz7qcDrpIzzPpI03lc0x6mbF/T60y6fuN+tM+Y/kN6436M4NM+iaT/qFR36ga27ux1qg/25NixEl9nbH8s5tNuomv5zca9U21Rv2FfkZ/eOGQUW8FY/9b+5r0YUZ9s2rS1xn1Ldykh436S/2Nets4kz7XqL9sM+rbTPZfyTHpDSZ9hkmfZ9IXGPVXu5t0v1F/TeuwniC/r3U8QQvdNL6vhU16bYc1QuhNxvF/bbZx/F77whg/tvcwpm9PN6WnmfSBJn2kSW826fuM/vF6P/Fv7WOKW7kHKpSl9A6jDD+gLFBwV2OJtyTQ+7BEsDpzeZszh2/lrXwzPrEqXypfYr7DCu4BlCPKEVCV75TvgPEMngEaH86H49oo1giVZbEcYU9NVFPwCdpmXLSCxWHJdNoB9oUgLMWz7H44piRjG2zYqmTntaA6c5xFiLnOYkTRu5Or7QAYzD8FpsZjmz4j2cYPokxB/XOSbfxtUFHbg9jG9yJuw746ontDvh/b2oqpfyfZxj9EuRn1j0i2dcj5scz5icx5QOb8h8zZ3t5rqL151N5R1N72lHxKKaCUwo4p/FVq4XZq4Q5qYXvKTkrZRSm7KUVEG/wAqLFqLChqvBqPrKYgq8yZ7RyBrLfyVrBim0RcYSDeeios+uYGN5RYfgb2agaqnZROMF3pqpwLESVVSYVG5XplPMxUfEoVNCkBJQCzlZuUMNyuzFZmw53KYuVemKd8rXwN85Xvle/hbuWfyj9hgXANuEe1qlZYqDpVJyxSE9QEWKx2VjvDveo56jmwRD1fPR/uU3urvWGp2lcthPvVsFoDm9Q6tQ5a1anqVHhRvVltwODTqDbCVvVW9VZ4SV2gLoA2dZG6CF5Wl6vvwDYWh17zA+vP+sNxNoxlwo8sl+UqKruf3a8wLawtUzSL2+JW+lk8Fo9ymWWSZZLS3+K1eJXLLSFLSBlgqbHUKFdY6ix1ykDLm9Ym5UpHscOlfOW4NVZRjjvjnVnqFOcNzmb18bjyuMnqN3HT4+aox7jKbczGz+PnsU78fH4+i+cX8AtYAr+QX8gSeW/emyXxi/nFLJlfwi9hKbwP78M680v5pews3p/3Z134AD6Anc0H8oGsKx/EB7Fz+GA+mHXjQ/gQdi4fyoey7nwYH8Z+xzN5JtN5Ds9h5/GJfCLrwct5OTufV/AK1pNX8kp2Aa/iVawXD/AAu5DfxG9iqbyG17DevI7XsYv4FD6FXcyn8+ksjd/Cb2GX8Jl8JkvnTbyJ9eGz+WzWl9/B72CX8jv5nawfn8/ns8v4Ar6A9ecL+UJ2OV/MF7MBfAlfwq7gS/lSNpA382Z2JW/hLWwQf5A/yK7iy/lyNpiv4CvY7/lKvpIN4Y/yR9nVfBVfxYby1Xw1y+BP8CfYMP4kf5IN50/xp1gmf5o/zbL4M/wZls2f5c+yEXwT38Ry+Iv8RZbLt/AtbCR/ib/EruEv85dZHn+Fv8JG8df4ayyfv85fZwX8Df4GK+R/5X9l1/I3+ZusiL/F32LF/B3+Divh7/J32Wj+Hn+PjeEf8A/YWP4l/5KN44f5YXYdP8KPsOv5t/xbdgP/nv8PG4/O66L4BRS5FOWYcgyj2I/Kjxg9LKoFNJpnFppnVppnMWpXtSvY1B5qD7CrqWoqOFgORrdYS5mlDJyWcks5xFkqLBXALZWWSuhkCVqCEG8JW8KQYKm11EIi17kOSbwH74FzvCfvCSm8F+8FnXkqT4Wz+EX8IujC03ganM3TeTp05X15XziHX8Yvg278cn45nMuv4FdAd34lvxJ+x6/iV4HOf89/D+fxq/nVGK1E/D2f4m9PPoKPgAv4BD4BenE3d8OF3MM9kMon8UnQm/u4Dy7ifu6Hi3k1r4Y0HuZhuITX8lpI5/W8HvrwBt4AfXmER+BS3sgboR+/ld8Kl/Hb+G3Qn8/hc+ByPpfPhQH8Ln4XXMHv5nfDQH4Pvweu5Iv4IhjE7+X3wlX8Pn4fxuv7+f3we/4AfwCG8GV8GVzN/8z/DEP5Q/whyOAP84dhGH+EPwLD+WP8Mcjkf+F/gSy+hq+BbL6Wr4URfB1fBzl8PV8PuXwD3wAj+Ua+Ea7hz/PnIY/i3yiKf/kYO7dCAcbONijk2zB6XstfxWhbxLdjtC3mOzDalvCdGGVH810YZcfw3Rhlx/K3cc0Yx/fgmnEd34trxvV8H98HN/Av+Bcwnn/Fv4IJ/Gv+NUzk3/Bv4A/8O/4dlMqfFxGnof4Ua29F37IoE5QJ+NijeEDRntaeBtX6L+u/gNmG2IZgHP7PeB/GwDPed8b7pPd1Je8T3+Koitf63hkfO+Nj/yEfUyyTxXddSg+1P8vWxkE3w/dLk+m3H2bAbJgPS+BBeBTWwkbYDK/CLtgLH8JBOII7e1CsitNeD8wesoftU0jW2KeSrLX/kWSd/WaUYbxrIBm2TydZY4+QrLXfQrLO/ieUNZivkWTYPpNkjX0WyVr7rSTr7LehrMV8s0mG7beTrLHPIVlrv4Nknf1OlHWYbx7JsP0ukjX2+SRr7XeTrLNPAxVTZyDW2JsQa+1zEev+DUbuoZ6H7AslM4skM4slM/dKZpZIZu6TjCyVjNwvGXlAMtIiGVkmGXlQMvJnychDkpEVkpGHJSMrJSOPSEYek4yskoz8RTKyWjLyuGRkAfY/ZG8mRpYTI4/+m4w8IRlZKxl5UjKyTjLylGTkacnIBukrz0hmNkpmnpXMPCeZeV4ys0ky8oJk5EXJyGbJyBbJyFbJyEuSkZclI9skI69IRl6VjLwmGVlDjKwnT2klRtr+TUZel4zskIy8IRnZKRn5q2TkTcnIbsnIW5KRtyUj70hG3pWM7JWMvCd95X3JzN8kM/skMx9IZvZLZv4uGflIMvKxZOQTycgBycg/JCPbiZFdxMge8pQP/01GPpOMHJSMfC4Z+UIy8qVk5CvJyGHJyNeSkSOSkW8kI99JRr6XjPyPZOSoZOR/JSP/lIz8IBn5l2TkuPSVH6PMiH9PQzDjUKLMONQoMw4mmfmUGDlEjHxLjBwTnoJrtiLaTT+VNA56K7vUB1geK2AVbBKbzG5kIVbD6tgUdjNrYrex2ex2NofdgafgD9lH7GP2CTvA/sE+ZZ+xg+xz9gX7kh1iX7HD7Gt2hH3DvmXfxQ3AejspO5WdaKBZbQaFXcOuAZXls3xgrJx5QGOVzAtWFmRBsLEwC4Od1bJa3AnUs3qIZdPYNHCyBvYniGP3sfsgiW1kr0Ny3OVxl0Mq1t4VHFp37Xearp2n9dDO13pqF2i9tAtFz7BF3wG0fzchf98B4DaRhmWiP4+pMN+JHO0/dz1bfDfFfJgCWrJ2LuZO1VIhtkO5qN1kLUXrrJ2lddHO1rpq52jdMO9Juyr0hE5aopakWTSrFqPZNLvm0GI1pxanca2TFq+J77s07Nt0bKQoo2q/14aAU8vQMoBj2gDowlawlWwVe5xtZS+xNvYy28ZeYa+y19h29vqpGBfflrGH2ENY48PsYWzLY+wx5Hs1wziKzG1Bex+yz0/U/hDmegxTN7Jn2XPsebaJvcBa2YtsM9tyqjGm2lewFVj7SrYSa1/FVmHtjzOMztjC17F20Q9Rezokn7LWU/SDOPtQcibKnaZ3UTnhDVjO4lfXwZ+gEWbCLDwRNeEoz4bbYQ7cAXPhTpgHd+EsvxsWwD2wEBbBYrgX5/x9sBTuh2Z4AFpgGUaAP8NyeAhWwMOwEh7BePAYrIK/wGp4HNbAExgdnoR18BSsh6dhAzyDseJZeA6eh03wArTCixg5tsBWeAna4GXYBq9gHHkNtsPrsAPegJ3wV4wqb8JueAvehndgD7yLMeY9eB/+BvvgA9gPf8eI8xF8DJ/AAfgHfAqfYfz5HL6AL+EQfCV+oxOj0TfwLXwH38P/wFH4XzgG/4Qf4F9wHH5EN1bUa9UitVgt+T/uzgNMimLr+1XVPVOz3T1DT3fPssCKiMQlB5EkOYNIFFxyUkCQICCCRBFRAZF0cclBMohIEskgonLRa0AyKFFExASIAt+p/w7L9PW+7/XeNzzv89HPVPWe33RVVzqnTlVPI1qKR0Ur0Vo8JtJFG9FWtBPtRQfRUXQSnUUX0VV0E4+LJ0R30UP0FE+KXqK3eEr0EX1FPzFPHBKHxRFxVBwTx8UJcVKcEl+Jr8VpcUacFefEeXFBfCMuim/FJc0Q34nLmim+F1fED+JH8ZP4Wfwiropr4rr4VdwQv4nfxU1xS9wmFcQ1oWmargW0oCa1kJakNdWaac21FlpbrZ3WUeuk9db6aWO0F7Sx2ovaFO11bZa2RntLe1tbp23S3tEOaB9rn2h/0z7VPtM+177QDmpfaoe0w9oR7ah2TDuundBOaqe0r/RKemX9U/0z/XP9C/2g/qV+SD+sH9GP6sf04/oJ/aR+Sv9K/1o/rZ/Rz+rn9PP6Bf0b/aL+rX5J/06/rH+vX9F/0H/Uf9J/1n/Rr+rX9Ov6r/oN/Tf9d/2mfku/HQgHHFld1pA1ZS1ZW9aRdWU9WV82kA1lI/mwbCwfkU1kU9lMNpctZEv5qGwlW8vHZLpsI9vKdrK97CA7yk6ys+xCRzc6nqCjh+wpn5S9ZG/5lOwj+8p+sr98Wg6QA+Ug+YwcLJ+VQ+h4Tg6Tw+UIOVKOkqPl83KMfEGOlS/KcfIl+bJ8RY6XE+RE+aqcJF+Tk+UUOVVOk9PlX+QM+brMkDPlLDlbzpFz5Tw5Xy6QC+UiuUKulKvkavmmXCPfkmvl23KdXC83yI1yk3xHbpbvyi1yq9wmt8sdcqfcJXfLPfI9uVe+L/fJD+SH8iO5X/5VHpAfy0/k3+Sn8jP5ufxCHpRfykPysDwij8pj8rg8IU/KU/Ir+bU8Lc/Is/KcPC8vyG/kRfmtvCS/k5fl9/KK/EH+KK/LX+UN+Zv8Xd6Ut+TtEAtx+YZcLJfIpXKZXC5/kj/LX+RVec0YbDxrDDGGGs8Zw4zhxghjpDHKGG08b4wxXjDGmkPN58xh5nBzhDnSHGWONp83x5hjzRfNceZL5svmK+Z4c4I50XzVnGRmmDPNWeZsc44515xnzjcXmAvNReYb5mJzibnUXGYuN1eYq8zV5pvmGvMtc635trnOXG9uN3eYO81d5m5zj/meudf80PzI/Kt5wPzY/MT8m/mp+Zn5ufmFedA8ZH5lnjbPmufNb8xvze/NH8yfzJ/NX8yr5jXzuvmrecP8zfzdvGXetpjFLWFplm4FrKB12jpjnbXOWeetC9Y31kXrW+uS9Z112freumL9YP1o/WT9bP1iXbWuWdetX60b1m/W79ZN65Z1O8zCPCzCWlgPB8LBsAyHwklhI2yGrXA4HAlnC9vhaNgJu2EvHAsnh7OHU8I5wjnDucKp4XvCucP3hvOE7wvnDd8fzhfOHy4QnhmeFZ4dnhOeG54Xnh9eEF4YXhR+I7w4vCS8FL/RwNo+1thHiLmCNChWzudrDci+f6E9TPb9Sy1da8MOa+21DuworOlxra/Wl50gizeKndQma5PZaW2GNoOdgWU/C7t1DnbrPOzWBditb7QN2kZ2ERbikl5Br8gZVuBFwAgYvGTADti8FNbYSwe/Cp7jF2RJWZZfxnr7T8aLxkwhjDeM7SK78YFxXZTGqntnrLerpyV/xBMqeVlR1phmQBlkAbaRdqYszBeYiHyAs5U4U3s0Nktmqeb79PeX5j4KD5sfUHjU3J/13S/pbCcL0XwiheWmGUBa5u6ReVjJzaMUfmQep/Cv5kkKPza/U1dGYirFSLJKMZJdpYi0biLVO3s0SfTXexGDwvcjpo9kA7FBoj6SApIDJCeIYEnUaiWp7cqL8oyLSqISE6KOqMM0UV/UZ7p4RDzCAsYUYwoLGhuNjUwaV4wrlJ4ILBef/g/ZWL+F/f/bvv7vWFhlQ/+s3fyftJmO7Cofl93lULJAynLWJpvZCNasKVmmibCTrclGKuuYaRu7/Umr+Nw/sYd/tIavkx28awETrcv/NWuYZe3ILs4g+51oFavT7EPNPTJnHmre0YRmHr/G5x2/0azjMZpxzMGcYy7NOG5Qr32UemoH1S/v2E7R2283LduKWo7lWp4Vs5Kt7FaKlcPKaeWyUq17rNzWvVYe6z4rr3W/lc/KbxWwClqFrMJW2j+0ti/8Y3sbSYoYEfNPWd2Vf7S7kWwROxL9g/V939xnfgAbvP8fWuEvyQ4fNo+ax82Td+xxJDmSHTb5u//QKt/8o12OpERyRHL+W9bZZ5utm/8d1tne/U/s8yNc8Bg5szl5IebxJrwFux+77oV4e96NFeFP8CdYGd6D92Bl+ZO8N3uA9+FDWHn+HJ/GavEMPpu15+v5x6yz6C8GsGFikBjGRooRYhQbJ54XL7JXxEtiApskXhWT2TTsn78upgvS9/Dy52iW5rC5mqd5bLGWrKWxJVpRrQTbopXSarEdsPmfw+Z/Af/toL5A/5hdDEQDUZ4SuBq4ynMErgeu85yBG4EbPFeQKoynBl8KTuD3BF8NTuF5g9OCM3jBYEZwNi8SnBtczksEVwbX8UrBDcG9vFZwX/AT3jJ4MHiQtw8eDh7lHYLHgyd5Z5od3OTdgrdpdjBalpOV+Cb5kKzKt4UKh9L4zlDRUAm+O1QqVIq/HyoXKsf3hSqEKvAP1A4a/zBULVSNfxSqEarB94fqhOrwv4bqh+rzA6FGoUb841CLUAv+SahVqBX/Wyg9lM4/DXUIdeGfhXqEevBDSeT488NGZ6MLP2J0M7rzY0ZPYwA/ZQwyBvFvydLO5JfI0m7nv5Clvc5vmcJsI6TZzhwiOllzra/FiHDDcEOxOzwhnCH2ZD7nQl7pauy8tOOPxyUbEiScVcRzySl46lM9iyrI6r6BcDXNDt5ArP7aGv9rK/11nA71tE0RXoT6TnFenMxeeV6e0qzL65KRacgbMp3P4DPwtM0+1imQM5ArkBq4J5A7cG8gT+C+QN7A/YF8gfyBAoGCgUKBwoG0QJFA0UCxQPFAiUDJQKlA6UAZ/hn/nH/BD/Iv+SF+mB/hR/kxfpyf4Cf5Kf4V/5qf5mf4WX6On+cX+Df8Iv+WX9I1Xdeuate069qv2g3tN+137aZ2S7v9X5HpVBRdYMVBx1ulolgDSqFDY6nqbV5UcwWppEWZehJK/WcGIarVijRfrEyHwarQYeL9FhZrSEeEtaIjG34fbrP2dDj4jyxc1p0OD+8diOGNA9nZCDpy0BgVLCfPxm2Wi0ZqTnYPz81zs9x4SuZeGrVNWB4atensPuzu5sV4vZ/34r1YPjw3k58P5INYAT6MD6OR/RJ/iRXmr/DxLI1P4pNYURrHGawYjeP1rDjfwXeyEnwvf5+V4vv5flYG605lMf7KYW7dAKtP7bH61DFrTWxPfE3sFaqpe0QpUYpmjuVEOZo51hK1aObYQDSgmWMz0Yxmjq1EKxag+U83FqSZz5M0cxxnvMxCxnhjEjONxcYSZhvLjJXMMQ4aX7Jk47BxjKUYJ43TNKd+zhzO7iMrMoblUxaCFSYLMZ8VUfqclSB9fpCVIi1+nD1AmvwkK0e6/DR7kPT5WVaefKzzrALp9G9YRdLr37JKpNu/ozZSz4FVEm2zyvJhvCzjqSy5fWWpICrQd1WJNNGEfBodJQqgREGa56UziXKFaBbXjyWhXAbKFUa5HJTLM1Yba6hEa40NLBfKmAdlzGucN75hBYxvje+pXKqkxVHSUihpOZS0PNnBN8hPWELeRlWUujZKXZfs01XWkKzTTfxeQdAsvWd8F7YRjc+uKNEEVUbeDOOeZUkY1jQF786rZckEb8GLMo53yGTKaAT8g7qoLCpTXaga0dHGAdRLEPUiUS8h1EsSzX/bMQO1Y6LVLdRR2HjMeIxFyEMfzrKRFzaZ2n6qMZOlki+2geUzNhnbWTnyyL5nVYwfjOusG80lXmS9adYwiQ2hWcJKNprmAOvZNLL5h9lstP0mtP07ZMm/YpvRA95FD9iCHrAVPWAbesB29IAdZOG/ZzvJyv/AdpGlv8l2k10PsgM010lhB2l+cx87QXOaNHaOZicmu0yzjCj7gWx9TvIESBOSp9SPMeVJshpqtYE1Vc9vsebmUKs2O0DX3MNfxzOO2t0WwRPwjDwi1euaJLTIxLstwlqwKlkywaqxtIQWmahWn41ZxiLKeYexj3rbr6bqvySFv515P/fhTkrGcxeUS85/R7PSlTHoIQY9xKGHNOghHXooAD0UhB6S0EMh6KEk6CEDesiEHrKghyLQQ9mgh2zoIQd6yIUe8qCHYtBD2aGHcjCu7VK/WxH1tM1UE/9sP0Zwgzt0l3l5Gi/NK/IavAFvRnfXmffkffkgmsGM5uP4RD6Vcp3HF/OVfC3fxLfxPfxD/gnVzTGqhwv8Mv+Z3yDlHxSWcESKyC3yiTSq3XI8jUpfiOqiGOJ0sn4qbscrIG7PKyLuwCsh7sgrI+7EH0LcmVdB3IVXRdyVRp6Ku/HqiB/ntRD34HUQ9yKLquI+/BHEGYHsKtY3BFIQbwzkUHHkt5Cp4oAbslQcXBQKI94aiiDeFsqG+GbIRnwrFEV8O+SomOYwLuKq2Tjy6ckLkybIRnZe0F9FKUwna6/mDiUobM9LUtiBl6KwIy9NYSdehsLOnOYRVLYHKOzKy1HYjT9I4eO8hnoGhNek8Elem8JeNF8QVKp6FPbl9SnsxxtQ2J83ojCDP0zhLN6YwpkBjwkqb4zCjQG1AvJbiBqGSkq9msqpU7g1RPMNKmNQPdUUkhTeCoUovB1KYoLKRrOfUFVWOOv3mwPYc2wMafmpbBZbxFaydWwL2bH97HN2jJ0hn//nO/t61JNSqK/no75Ukpfjlak31eONSUOmU7kfp1Isp9rKoBpagbgdX4m4PV+FuANfjbgjfxNxZ74GcRf+FuJOfC3irvxtxN34OsSPh+5RMZUxt4qplPci3hrKg3hb6D7EN0N5Ed8K3Y/4diifiqnE+RFX5XPQfnPRcvPQcvPRcgvQcgvRZovQZm+gFRej5Zag5Zai5Zap9gh5qPEYajwZNZ4dNZ6CGs+BGs+JGs+FGk9FjXOmZ2N4uluDrmAY6Tybep2I+vVrY/zyqBArTbY4viLFk9HXsqOPpKi8VSo8R9ZZd9WTlO4lfTIdfQWh2injNmkoxmPk2XBoIgH9omxaCnuJt+St+GO8NX+Udzdak/VJz1wfFgPFcDFOTNMytGXa2sjvkZuRW5HbpF9nG3OMucY8Y76xwFhoLCJdu9PYZew29hjvGXuN9419kWsREdEieiQQCUZkJGT8atwwfjN+N24at4zbJqk98zVzsjnFnGpOM6ebfzFnmK+bG8yN5ibzHXOz+a65xdxqbjOPmMfME+Yp82vzjHnOvGBeNC+Zl80r5o+WtEJWkmVYpmVZYStiZbOKWEWtYlZxq4RV0ipllbbKWGWtB6xy1oNWeauCVdGqZFW2HrKqWFWtalZ1q4ZV06pl1Y5YkXAkEnEibsSLXI/8GrkRyRVJjai9yALw/Rj8vQDNHBqSTespepHVHkB+nSWGkV8XxlPQEXhx2eCb2ViDjWpvaW8xJ/hmcA1zgxuDG1kseC14jeZt5LGw7MpjofnNCeMsK6z8FprNjCPbXZF89/WsJnndh1kj8ryPsodhuxvDdj8C290EtrspbHcz2O7msN0tYLtbwnY/CtvdCra7tXmLrPZjlk2WujMs9TBY6pGRGFnq56mcm1n6n2nRf68F/0fa6U4LGahNhtpMQj06qMdcqMd8KHkxlLwcSt4UJW+BOUqrTM8vYATCGIUNmFrfrcFyJ/b/v+/F/3F/zOw7lEIUPYWhp2ho4SDaM4L2zIb2tNGeUbSng/Z00Z4e2jOG9kxGe2ZHe6agPXOgPXNSu2VnueJ3bwYiCXcfoflmfMSqMY9+ytBPOfqpQD/V4tdagWwJ16bQrCRLC9wZ6dAcGAXoyQH0ZImeTDaEZlCxP7tOau9Wv0/J3HFWHjnz4n4FfvFi72TCVr+n5XZHzObuyrVw2SySOQdUM/kWmO29GpdUxi8mxvlkaqb4FM2EEmWkqcm/nBqXqTQHq7qw89n5GLML24VJUtwmW24/YNNcxX7Ifogl2TXthvSdxnZj5trN7ebMs9vYbVjM7mB3YMlIpZH6xcc/SUVdaeBKE9dUQ1hMtYbYIi5SC12hz1Xcm9LLmlhMx+ckO0KfUwnyiVpRsYVku+izL0uui0FikOaJRSRdTp81WYRrZE/EJIpDWTIh6onLJH2OPj/f/aY4RJ/HqZ3qidIJ301FXk1IXlqkJnxb5UNzPC2nlkcrcPf7/JKYTITssSa0EH5DdOeKwfQJUhkuiMvqPOuKzYLanV8m8ok4qM6zrqASclULjRJk60i2g+5rAc2T70rnkJTmHGK8mOy7y7Ekn0zyAWKIGJmQZx3xFJEh6ldRCdKSojU8QyHq8JIJ8hRBLUYzME0UF2X5truE3RJUdprpacITOUWehHqj2TER9cl9t/347/yKEGpThD6hBPkh8jCoHzD1uXJXzubQXP9T+lt9Dt1tbzaWjeXruHqfh/rsSCC9yPJP5OoX9+qzOIsE1H90xUfyAVy9E0N9xidcVY5GflfekyTq0zfhqlSWyquQr9Ak7pU9GmeZvb4R9Xo1OgrbzaiPp9kt7ZasqJ1ut2PFMEZK2ePt8aw0+nvmSKY5M7MDSYEkurKjGvF2Z7sbjZcn7J4saPeye9NI6WP3Y5b9tP00y2YPtJ9ltj3UHkqjbpg9giXbo+zRLIc9xh7Dctlj7XEs1Z5gT2f32hn2IrqPxaQ31PP9gu6oZdYIjcZzVHlx5BVAXknIy0ReEeSVDXl5yCuGvFKQV07klct+xX6F5c7KcSFyXMHK2Kso3wpZWozyQNgM4cMIWyMcnfnrOtIL6q8HKEzO0ngTmE4ar5fdAEy9TyUNbyZIZnnAH6FSNcdZk6yzpjij/mTXsutA05XENSksX/wapUXvXHX3vGn8POFKvgB3Ugb/meYANoSNpH4ynrzKGWwO+QPL2Rq2gTyCXWwfO0A+wRF2ip0jr+BHdp3d4jr5lzZP5qnkYRbixXlZ8jGr8Tq8EXmZrWl+3fXv/UzSmIJ6UH4K89sFKCxgF6SwoE3a2y5EmlSQPk2jMM0mb8suonqOXZS0prCLQcMWt8nnskvY5HPZJW3yuexSNvlcdmmbfC67jE0+l12WaljpYvK57HI2+Vz2g3Z5CsvbFSisQDpa2BXtShRWssmS2JWpXQRp7SoUVrGrUliVtLWwq9nVKaxuk79m17DJXyPLUIvCWjZ5bXZtqj9h17HJd7Pr2uS72fVs8t3s+tSSwm5ANkTYDVU/tBvRWBE0YpqhfzZXbUe9VNC4SacwnSyEIDvRlsK2NIaE3Y7GkKCRNJ5CNV55ICnhlwQpGIuvZa1l/GsjMidaGx6D3Z7mBC+oMFwWfW8Q45F09jx5egWoFdNJa0zkS/kufoxfFTZ5/LVEezGYdO1KsVecEjc0Tyuu1dM6a89p07U12ofaGe2WnqKX1hvpj+sj9Qx9nX5AvxAQgdRAuUCTQM/AmMCcwKbAp4FLwWAwT7BisEXwqeC44ILgluDB4BVpyHyyimwt+8vxcrHcIY/In0ORUKFQjVDb0KDQpNDy0J7QidD1JCepaFKdpI5JQ5KmJq1O2pf0ddLvRrJR0mhgdKUZ3AxjrbHfOEez1ZxmWbOx2d0cbc6iWeon5kVLt3LTjLOZ1csaa82zNlufW5fDoXDecOXwo+G+4ZfDi8LbwofCP9LMs0Ck2h0fjOqeakmF4bIIy9whqi9T/eVTBOFdkh8kP0h+HykAUgCkgI8UBCkIUtBHCoEUAinkI4VBCoMU9pE0kDSQNB8pAlIEpIiPFAUpClLUR4qBFAMp5iPFQYqDFPeREiAlQEr4SEmQkiAlfaQUSCmQUj5SGqQ0SGkfKQNSBqSMj5QFKQtS1kceAHkA5AEfKQdSDqScjzwI8iDIgz5SHqQ8SHkfqQBSAaSCj1QEqQhS0UcqgVQCqeQjlUEqg1T2kYdAHgJ5yEeqgFQBqeIjVUGqglT1kWog1UCq+Uh1kOog1X2kBkgNkBo+UhOkJkhNH6kFUguklo/UBqkNUttH6oDUAanjI3VB6oLU9ZF6IPVA6vlIfZD6IPV9pAFIA5AGPtIQpCFIQx9pBNIIpJGPNAZpDNLYR5qBNANp5iPNQZqDNPeRliAtQVr6SDpIOki6j7QBaQPSxkfagrQFaesj7UDagbTzkQ4gHUA6+EhHkI4gHX2kM0hnkM4+0gWkC0gXH+kK0hWkq490A+kG0s1HngB5AuQJH+kO0h2ku4/0AOkB0sNHeoL0BOnpI71AeoH08pHeIL1BevtIH5A+IH18pC9IX5C+PtIPpB9IPx95GuRpkKd9ZCDIQJCBPjIIZBDIIB95BuQZkGd8ZDDIYJDBPvIsyLMgz/rIUJChIEN9ZBjIMJBhPjIcZDjIcB8ZATICZISPjAIZBTLKR0aDjAYZ7SNjQMaAjPGRsSBjQcb6yIsgL4K86CPjQMaBjPOR8SDjQcb7yASQCSATfGQiyESQiT7yKsirIK/6yCSQSSCTfOQ1kNdAXvORySCTQSb7yBSQKSBTfGQqyFSQqT4yDWQayDQfmQ4yHWS6j2SAZIBk+MhMkJkgM31kFsgskFk+MhtkNshsH5kDMgdkjo/MBZkLMtdH5oHMA5nnI/NB5oPM95EFIAtAFvjIQpCFIAt9ZBHIIpBFPrIYZDHIYh9ZArIEZImPLAVZCrLUR5aBLANZ5iPLQZaDLPeRFSArQFb4yEqQlSArfWQVyCqQVT6yGmQ1yGofeRPkTZA3fWQNyBqQNT7yFshbIG/5yFqQtSBrfeRtkLdB3vaRdSDrQNb5yHqQ9SDrfWQDyAaQDT6yEWQjyEYf2QSyCWSTj7wD8g7IOz6yGWQzyGYfeRfkXZB3fWQLyBaQLT6yFWQryFYf2QayDWSbj2wH2Q6y3Ud2gOwA2eEjO0F2guwEESwWX41R3iqHt5oGb7UIvNVi8FaLk7fakZXGik1ZrNiUx4pNZazYVMGKTXWs2NTAik1drNjUw4pNQ6zYPIwVm8bk705nTbE61BarQ2plZgELszwsjZVlVVg91oy1ZY+zvmwIG8MmshlYH4GPjzP4+TiDr48z+Ps4g8+PM/j9OIPvjzP4/zjDGgDOsA6As4fp7GGcYVUAZ/D31Xq5XZMkDD67xThPZ8nYD2zMOrL+8ftcwFayDWwf+5QdY+fYFXaD/PVknoen8cz7yFCrDHEPfyZWHGaptYa4ZDYkcxIkcyGZlyCZD8kCSFSKC5GiOlucdbYk62xp1tmyhJxXIo1VWWmszvrWW1lna7PO3s46W5eQxnqksSErjY1Z39qUdfYOzjL7XbIaIXTFVqbZrSjeRnHrrNS2g+2IlzOMdci7a4PdWcDuSf1Nor+FqL/1ZQb6m2UPovlQ2H42a53QtodTr4ui17nodTG6l+LYZUmN50Yjku6BRp/dOi7ZCsk2SNRK5Wh7s29HZFG8h6hVxMzVwkbxdUS19iNEebUeLepg9WdyXJZPkJ8uZsXX7u9IIyKZaWIsHamJcn6V32K6eAqH7iPH+Bm6rq8Y5JPu5QconSoiPb4+f0e+mm+gdArQUUPU85GpfBYLqPdN0VFIFPexwXwk3X8hn6wr76VyF55P2pg/yjTKfS+/5ZOX41WYTrmr45yPpPJ8FK7BqvldaZBHsCe+K1Gq3k9PqXfnY/hin1y9vV7jTXgvPtUnV++219WTnbwF99UP3vStq6d/eEXe2UfU0xQBruPIw2v4mHp/foBdUAfRoj6mnsngPNknU++BFTykdg8SpOo9opzn8cnUW0sFO8GtuFT1sr726v/19XBBvTmfXYNyUntg99ptSLPnwQrk/fG1ckEjs2bWqqUBfZe5S5aBcBHChVl7B//qrkN1pqE+1GjMm/VL5SlgNREOj6+rqvO6f7cuuhx6eEVcd3OqIbUftJ9fwI6V2h3rjvSws8rX8U9IfhD7aHelc0T/zD0rfllUTJCPFekkX4p9tLvSvqIB9qwE3yGsBHlrNbLVjpUwEqQ1RN7MHSs+mZ9IkKepb3H1nOOxBKnHb5CkHEbbmrty9jv/OnOfiq9OkJ5TY4iHMNpGJ8gPYN9JvVFwZIJ0E1dvdz6C/tkiQT6Pq963K/6U5R3py0iRLAM7wgskyPtjD4pGHc+XIG1L1o8z8gPpiusJ8loYT6quryZIi3PV8k3obDj7MEGezFXLqrreF5eq3om9D7seta+GPiXRg/BuR7UC8S/t7QrqMV3srvRtZUUEjahelMMw8m0D9ggaP0EaP6Moxdlke0P2XLK3SfZC6tsGjZnFNOqWkgW17E1kycLxcdEw3tOTcFfqafWA3Zt6IaOxOZDuR1kiYS+jHqrZ68hiBnHfs9ndHajMkdML4dI7a/sUrkXYHeFiqh+NFaBD1eUgpv6pGvOwG981Pmam/Zf3ywVs3Wi6frOtdlEFXfHP0qtJ6TWgOZSJ9Cykp57aSGV33m2s222xA6Jjx6QtdF263ZZl7pNcJb08mK+lI3Ond3pcfoLkHdVzV/yUT76XNH89fiBuKe5I1fNppfkmvtYnzSBpKl/Kp/ukY0gapPE41id9iuIrfDT6911pa4qPkJ1J90lrULyHt41bkjvSohSv5nXi4+iOlOw7m8FLxi3L9P8Ds2vVql1o7GSOAo5RoFFag6iFZtN8M4g+H0KfT0KfN+y11B/N/5bnMe48W6HCpggfQdgEYXOEtRHWQkizKO7gf7QoTva1GfX2QWwc6av97CqPWwGH+pWT3aFZuZMzLmkFSacESWtISBM7ueKSxyBpn/CddEg6JkjaQNIFV8nMX8nCShVnZZGHg3RdpOXh+hiuSXbaUlgAdxZVfd/pjFQD5CvEf0GLnD3cdRR5xnC/Dr6ZEs+/C9JSd+0iFZVqdqV76JoUxpycdF8hyqcAdI/FNK2peueA+obWQGtAakL9Ppnj98nqvbQcvx6oEdcYf4EWaYSntEsmyDTSwuXRXqlZUmqL6CilkTPfAhLtHx3KjOiY6ATmRTdEN2I+w6Pno7dZ5ptJWiRophnI5ymmxkCzBJnG0ulQc88qCVKd1cKhdk8LZclJN0XbRdtRzh2jnaCb/vM7ORA9F78TZb+Kx9N5HXdSHneSmiWj1KLtox3+ZJr0bYc7Iq6BS8JmZaaU8YcUxkVfjqeQHbl0dgL/aS6ZOqM4xVVwqFRnxqUpVDOF4kem/I91cuceBc2ukqObou9EN0ffjW6Jbo1ui26P7ojujO6K7o7uib4X3Rt9P7ov+kH0w+hH0f1R9a4SDffDcD8G7seLp9M/+nR0QHRgdFD0mejg6LPRIdGh9K0XomOjL1IJX4q+HH0lOj46Adeoe9gUxbtLVH/0tntbvW3qTr1V3irGvF3ebnWnfB370unj9HX6Of2dp50BzkBnkPOMM9jZ5LzjbHbedbY4W51tznZnh7PT2eXsdvY47zl7nfedfc4HzofOR85+V3N1N+AGXemG3CTXcE3XcsNuxM3m2m7UdVzX9dx8bn63gFvQLeQWdtPcIm5Rt5hb3C3hlnRLuaXd2m4dt65bz63vNnAbuo3ch93G7iNuE7ep28xt7rZwW7qPuoPdZ90h7lD3OXeYO9wd4Y50R7mj3WnudPcv7gz3dTfDXeIudZe5y93d7h73PXev+767z/3A/dD9xr3ofutecr9zL7vfu1fcH9wfPeFpnu4FvKBX06vl1fbqeHW9el59r4HX0GvkPew19h7xmnhNvWZec6+F19J71Ev3+nr9vP7e094Ab6A3yHveG+O94I31FngLvUXeG95ib4m31FvmLfc2epu8d7zN3g5vp7eHPju8g96X3iHvsHfEO+od8457J7yT3invK+9r77R3xjvrnYvljOWKpcbuieWO3RvLE7svljd2fyxfLH+sQKxgrFCscCwtVjRWIlYy9mCsPLVhDqeb8xRpnWcd6iHOX50T7F435t7PSrll3FqsmtvK7cSauc+741g7d6Y7h3VxV7hr2RPuR+7nrI/7k3uNPetJLycb7rXyWrHJXhuvE5viPeMNYRnei96rbI63wlvNlnjvelvYCuo529kq9JfV3nveF2yNd967xnbGisSKsE9jxWLF2WexUrHS7AvqTUXZFGehs8h5w1nsLHGWOsuc5c4KZ6WzylntvOmscd5y1jpvO+uc9c4GZ6Pzg/Oj85Pzs/OLc9W55lx3fnVuOL85vzs3nVvObZe53BVub/cpt4/b1+3n9nefdge4A91B7jPuq+4k9zV3sjvFneoudBe5b7iL3XfdLe5Wd5u73d3h7nR3uSfdU+5X7tfuafeMe9Y95553L7g33VvubZquca+EV9Ir5ZX2ynhlvQe8ct6DXnmvglfRq+RV9h7yqnhVvWpeda+G95jXw+vpPen18np7T3l9vBHeSG+UN9p73cvwZnqzvNneHG+uN8+b773trfPWextiSTEjZsasWDgWiWWL2bFozIm5MS8WiyXHssdSYjliD8TUe6tstB9D+8XQZgXRZqXRZuXRZpXRZrXQZo3RZs3RZk+gzbqjzfqgzZ5Gmz2HthmJ9ngtc00kpYOyGd7b8daZ6LzqTHJecyY7U5ypzjRnuvMXZ4bzupPhzHRmObOdOc5cZ54z31ngnHROOV85XzunnTPOWeecc9654HzjXHS+dS453zmXne+dK25nt4vb1e3mPu4+4XZ3e7g93SfdXu5L7svuK+54d4I70Z3rznPnuwvc/8fed8BZUWTrn+47d/IUc7u7qmtmYJgZchpyzkFARXIWEMkgkgRkFRDDM/B2zYsKKAoCSlCSgCCKYX2uATGRRBQDJiSDgIR36rs9wyWuuvv87f/9H/3jdN+a6gqnzjn1ndPV1cvdFe4L7kp3lbvafdFd437ibnI3u1vcre4291N3u/uZu8M96h5zj7u/uCe8LK+oV8zL9op7OV6ul+eV8Ep6pbzSXhmvrFfOK+9V8Cp6lbx8r7vXz+vvDfAGeoO8wd4Q72ZvojfJm+zd7z3gPeg95D3s/dWb5j3iPeo97y2RE71l3lHvmHfc+8U74Z30TnmnJUlL2jIk42RYxssEmSiryxp/0OiwXdZ99bW6H2aQYZFhbPUnRSZT9Hsktu6vB2C2Ghq5nrAjmEmJrGL7PkGOluPYyqySfzJ5OcdQvvd6zmfxvMBpPB/czTPJVJ734rgdN1KYLdbtFM/WaRUl8J0vUqKsL+vj2zrcjmipmH3M/YT7Ldxvoih90KIasbhJduT5d6TsxHSU7Mx0tH+CbP9x2YWvx5yVsytydkPO7sh5Ejl7ICf3kEdxKJ1Zr5WHeXUmZqv+3hCerYZ5IxmHcUt4rppAZ/ZcK8Alj5uWcyn9OO9QLsuSI+RIc7+p2RnN43gD32fu6op3RnJ4Pm0RxXZ6jWmFXku2HB6kvIyUV2JSXkLKupiU9Uh5NUi5UN0FbRwVtPEJTivClpvbz9a6K3kYi64Yi25sa1+l7jxf7KJr2LJWo9vY1telqbKBbEV/kW2ZV4/JwVzXXDlHLqSF/kP+dFqh1+h36CW9N6MUbYCWLwziWh6iM9FY1yz85XkgR4NIi6BtxAi1A9mhbiH2rRirXk/h0GhGrPGhm0I3UQLe3k2M9Ir0gnQNoxRIV1pkZGQUCUhpemRKZAo5kbmReeTqXro3yZgxjK65e7Kw1jgn3knmcUhljBx2KjlNKMdpxYi6RjAq0biF+RZm1KfehW8bDQ987Ohe1MZn3RD8Nl86bBNw9qmg3nrso4wKUniUjO1hXvP8wHKU5WWxJlT2KrMmmLGKx1glmBhfYcuKcMsijkNJ7A9ISmGPI5PSnGJOLucp4ZQkBYSvufVVeQ6u7tSkbKe2U4dynfpOAyrhNHIaUynuVWsq41zptKFyTlunHVVwOrIvUQl41XOAP7mc2uDJ1eylkE7X6Wyn2+v2rPMddUf0PzOQlJlsbTy2obPJ53luHmUyyllAxbw0rxnlMGLpyRLUj7VjiDrtP0jjta3jrWSdqFOsIjpNC8vl0iOW1K5Wlq8zdDErSxfXOVaOztN5Vp4upytZJXRlXdUqq6vrGlYFXVvXsSrperq+VVk30o2tqrqZbm5V15fpllZNfbnuYd7Jo4ipidvONVHY1ERJpiZKMTVRmqmJ83BNpExNpE1NlGFqomxTE+WamqiEqYlKmZqojKmJypmaqIKpiSphrGthrG1agBE3KSvozHuvs6ngbQYriKjNNhLOWKgra+TfWKNK6tdYT1pC/9KddB5r1/hx7NEp41E6RdmPy3PyePRLOaUo3qnmVKMEp5ZTi326uk49loeGTkOWhyYstanO5c4VLBVXOVdxae2dDjxT9Gc5djCeQxy24c5wRmfGIgxkKeNZCT5hMcwkxGjZ4+qr83xSkjHt3dSJMex0GoD5ZBhj17dpDGPKBXQTt/xnup2RYTVaCdz3vrxJ3kwfyFvlbPrIf8Q/Tod1qk61eugiuojVUzvasa7WvtZWL52ts60+OlfnWtfofJ1v9dXVdDXrWl1T17L66bq6rjVAN9ANrIG6iW5qDdItdAtriG6lW1tDdU99tXWd4ZUpnUeYS2fp5NJZOrl0nrO4dB5zLp3iTemUYEqnRFM6SwGXzlLApbOV5NJZFrh0Lo1Lp3RTOvMqOmKlEa0xIzaHzrx9MjOIRiIiJyeaSI3xUJivY3i2sNlHGcujW9ItHehzAmO32pTIqK0hJTGeb07JjOKvpBTG7x0o1eA3SmPsNoKKGAxP6Yzfx5HDiDuLDTHjbfIYb+eRYoxdkXyDs0mD45myK9tdE0FLYFQ7n1uwyFnE9uMx7zEe2RneDEpgrJfMMykjPUpipBdBdCbOeDQ81m3dtmx5ZnssoewjPM0zTygqp+xR2ng2GZVmBT6YZyAT0fOnz5Lfj6kkexDfYI+NFMZvfJdBbiy/jziPcMkPew8zJ6Z507hlS72l3LKj3lHmyinvFLeMjTK3zJbxlAxkY6y/xbhtOOYJG72lwK+wqTT3cxGX/4LzAnsW+51DXOMR5zhL+imXR4dt6VzSBmlTFuPrnVSM0fVXlMO4+jTlYjRKMp6uQaV4TOpRaYxJecbQPagCxqEixiGfUfQtVBl8rAI+VmUc/ThVYyT9FFU3SJpqGRxNdcDZeuBsA0bRPjUEem6mrlNjqYWapCZRWzVFTaF26jZ1G7VXd6g7qIO6U02ljupedR91Uw+oB6iHekg9Qj3VdDWDrgHPPcRfDLIxHDc7lyQwx5vxqLVwO1M6e5xduUeG+3ngfjXoXTO2JG/SAIxxppvJuXPdXOZnObcc2ezNVoHttuEVEXBeND5RHrH6PYHFisaRFR9TOHVbYeofNxfZVNf4AVwT+wGsU+wHsPV61HmUrd8Mh+XaeAJs/Z50nmQ5mO3M5hawV8fWj706EsarY7u32FlMDnt1S8g1fh15kBvFnt0q8hmDP0ya5fJxnq3MuJZi5H2CynqnvdNUkVG3RZUM6qZ8g7qpCmtSGnM5Xabz2DvSodrGY2IJYI+JJaA6j3oDuUVuoSZyu9xOTeUO+Tk1k1/Kr6mF3CV3USv5nfyBWsuf5E90pdwn91MbeVAeobbymDxGHeVJeZI6ydOKqLMKqTB1VQkqgSUjSaWwZAglqLeKKIf6KE/51FdlqkwaoLJVNg1UOSqXBqmSqjTPs2VVWbpOlVcVabiqrCrTSFVNVadRqqaqQwbNMkY9M+Z0Khjd+bFjTj8Upv6RYx5xleuzzGa6WSytxVhy49waLttst77biFLdJiz/6Sz/Lch1W7qtWd+vctsz7ujIGpEFjchmjfgbFff+y3uL0cc73kfQjk2s3Vu8razd272vEUe0nIHobz5bLfPO2dGgv88grmi8gmzzLqL1ZWF6AU78Pw3436IBUT9gUTDCzyJudd7sZSIPzPeZzizm+1POHOb1s84CHmcz0xZxnnNWMJdXGm5iPsxgv/4Bashz3jRq5E33plNTnjlmUTPgvMsw8w1m//4Ee99m/ruO578kGi5TmLPjZRGeS/7Ec0kG3QRu3i5/5hbfBeQ22BnMLbvOuY5bNpo9RtsZ54yDDEffFTOfxkvHfE1Rzyr4FX1v0Ql6uYDLyrtgL2dxHU8ZKXI1zxtpblG3KOtarluCtbKOW4d1rZ5bj6T7nruBlLvR3cjz7Ifux5RhoiRU1N3mbqNsd7trYn0n3BOsd9leNpXwcrwcnnPzvDyWrjJeGZ5zK3qVqIw3yBtE5bxJ3iSefw3PKoBnFYEQKoNPVcCnquBTDeZTItUEQmgkb5A3sIxNZOzVFD64mbkJM7d9AcwQxxi1PP826CmCvzn4m3cRFHPGR4zGzxeafHKT3MRlGLm2WKK/itYEtExAxU7MfdFVMotQ92a5me/bKj/l+z6TOznlG5b4pEvcHV3hs9jgIK71CHBQHDAHeSu9ldzf1d5qxlVrvDVAbISIhE0jLFE4/k4hcjC7nKVeesTB/zTwX4DzEXDeAeclOK/A+eLG74uMjph4hUG8FiNexrrOePYE453VzrtsC/e7NstBSbcaVXGvd2+jxu597D90YWS2gK5lZPYaDWVk9hWNdr9xv6Hx7rfuT3Sju9fdS5NN5JtucU96Ft3KWK0r3ckjO5ye45EdT8sYk91JaxGTeN1b771BbwD9/l2OkxPoPf2yfpU+OG/0/xF3ngd35rBeE/Tagl6HoNdx0OsUaHEatFgw5ktiGTLa6kBbJbRVAfP9v8idaAymdRDFCGIUiGwQLTExCubNKpbRfu6NrPv3uA+znj7GM0Vt5kQG66Dpdwcg9suMHsFSRf1I4y86cg7Lb6Y/w38Fz83PlvCl5j7o3K+5Lwd+duwIRlu5DNGtLI+RsXxRvkxl5dvyfazcu5TeJ0TjdOBjMvNxPGN7w8Em4Fpr3/VLUxtwrWDHArP6syCyZ1YENAgs6nJgqS14bl8+Ji1EPAZWPrynglSu10vz8oOW5sk35N+prDrtO5Svt+vtjN5P6pPUPMPP8BH9u1QP0oP4CzeVbbPB+pIRU3G2zQbxZ7g1GTdlug3chmybDW7KBm7KdTszVsoDViohO3JfS8q5ci7P9vPlfKrkH/APclvWcL+r/KFYJ7Ew7liCe2NscgnMmK3QxqGIKY7293PrbkJMcVLMqIwJRmVKzKisCNZDDYoZlRUYFbNGr2PMqKwwUs5ywPLjXc7S4GHs8/QOvYNq6dP6NNXO4H9U5x+Mh48oF8m3eEyF/Fh+Quk++SypfsgPcalhP0zST/KTSflpPOLa93xJ2T7/oxwe8AzK9Yv52ZTn53L9Jf32fgcq73fyO1FFv4vfhcemh9+T8v3efj+q4g/wB1Itf7A/mOr4Q/2hVNe/3h9B9fzR/njspPHHjVwpnluMhVjOtqu8+4n7HdVzj7KNagt+dPdu9m6jQYw0n6IR3vPeMpriHWXLcQfwzTw5SU6mBXKZXE2L5Hr5Ki0H/16QH6tTtMrwz/rS8M/62vDP+sbwz9pl+Gd9Z/hn7TH8s/YZ/ln7Df+sA4Z/1iHDP+u44Z91wvDPOmn4Z50y/OPBYv7Z8YZ/dqLhn51k+GcnG/7Zqf4s/wvb8Y/5x+3OkKMJkK2pgcS8UGgDxsek2HQEe00MiE2zrrAM3mwfkxayatl52DOiQWxO+3goDhGngjSLbP2sNnjNgj7SeX67iTtdBBUyhtNBBCAMexDvlnHLUALiAImIAyQhmpCMaEIm7EEFoKCKsMgNZGfZmdF5d9mdrpK3yjmM0Y2dGA07MQbxyhu4BUnRJ72stz6XlcV+WxpboRzWgI6yE2tHF9mFZX+GP5Nl32ivz31ZR5m/IZrxDqIZ8YURtrHcRzOjhuUQOZQS5XA5nJL9x/0nENnKYcS0lTn0NfsccexzfMv5fpS7KUHukQcoSR6Wx0moMPsWHvsWiSRVqkojXxVRLmUopbIoW5VmH6Ik+xDlqJSqpPKpjKqialA5VZuxeL6aqWZRFbVALaAaapFaTDXVUrWMaqsVajXVVWvVemqk3lHvUAv1ntpAl6kP1UfUSn2ittLlarvaSW3VbrWb/Zs9ai91UQfVIeqmjqjj7OWcZJk3z7HKsN/3EPd1Gnt8Yfh38aw/9/Pc8aD3ICWap4WUxJ7aMcYmJ72TlMrW8VlKkz9z3zz0TaNvGehbFvpWDH3LQ9/Kom/l0LcK6Fsl9K2aqq8ac6+aqWbckzaqDdVT7VQ7qq86qA7UQHVV3aih6qF6UGPVW/WmJmod97YpensZetsSvW2N3l6B3rZDb7ugt13R2+7obU/09ho8MRtoYtJGliC1BKm1ILU2pDYEqY2D1Ia5r3MoHrKYAFlMLPTkCr69vBI+wXJGyqSv0dfg658XQoVOgHaIVkHCYMdgqcrDRjWAjeojNzFv+rFNeIX+BtRucBv5R/2jWLNnSirJ6S0ZqZyZh0z0LrqacDX/LRxFUUBOEsgpG8ipstJcdtUYnHW9wVnIl4N85ZCvHmozdj0cxVmIwDuYjbLQs4roWT48GoPVCFhN4b68oAXvBi0oj5Kro+QWaEHLwohjg0Jk/GLAk9ngyaPcqqPsB2TDD6jMPPGpKnhyw6/qnwX8W4DezLrezoW/DPduotkxT0684D/Rml9VemIUzQFXJwPTZQDTNWUpWEPtgIe7qevUDOqldrDc/eVfyvFfJznRVWBmBV3LQE7XmtHiWZl9QKeH04N5ZJ62wWM16xbQNvZozWoFTrnPvR+rgqPP5gpLs+4PSnvpoqXV5/Y9wKlznHmMsj93djK/9jsH2dM3zx8Fnj+mm/UP5CBy7vEsvplxpImfZ7hH3eOMIE38vDieUeYhil4CzyhL4hllKZ7jb2a/3sTMy8BSlUXkvBzP988zR5Z7y3luecF7gecWY7UqmZUNlI8nE1UQP68K77o6W+of2dP/Wf7MVjVVpVItHmHNtrWSqkR1VD3VkO2SsUhRK9SIrVAftkXXqRFshUyM/TI1VU1lK2Ti6q3YUs9km7tULWVbtEPtoCvZ/hykNuq0Ok1XMcpzqa1fxi9D7fz6fn1q77fz21EHv7/fnzrymM2iTv58fz519pf4S6iLv8pfRV39nf5O6uZ/739P3Q0+oB6wMFeD9wZHEWOn2jxjV9fm/bjo6vVk7ORjvohSVPZkT74fc21V4dUbhVcvIlc6aXk1ezQmT/T8RnB+EaM/xOsXRCYSC/P3DvL3DvL3Lsxvce5zv1i7DuUs8B6/JKI99yvLLweaOJf7OJ/lPQSd8aAzxaAz0IULaIspG6vDqBLKrnzeSopXYFf7m2c+7gjWx+QzeocyHJRRAmWURBmlzytjPcqY6t7LZdzPti/8O8p4lc5f0fHrOfQaOHRvELM1z9SM3fRgN4vBbl7aKz037vQ6pOpz53Mub6eznzX6oGtHn+P+ijKiPXoDXDFP5wlP50O/6e7ofLfCXcN3v8T4PuFX3h2Nf70JS2Y8AmIrcpTtynH3JHupp9k7yPhN7fgvjEtR4zl7VdhTc3/T3W/h7oneZL57Cnsjv5YH0RUif4cWLfuV90Q1zDwftr2VcjIih7F33SxvPivWF63jHdSx9ILxmah8RW38u5CweWzHTUSG7QDPENdjhriH5/373PuiWMdtyZiagKmLFJahgzLeM3U588CT2d4c5slcb0FMXcuCfBtMNMt5ADOHqdFyvnC+YLtxwDkAjNGPx9bUHkbt8ag9gWeUWexfzHHnMJpb7i5nn2Ctu5ZnmmPuMUp1T7mnKA2ziMAsUsTr7vWgdMwlDuYSF3OJh7lE8vyxlBTPHy9QBtYsFZUT5STKhs3NCXibzdzKYQ6HweH0wn7MC/rxPufT/yb9WB70IxMjXaVwpC3sBJlLrakn3cG48RmWoN2WMG+DWJ2tQdYEa6o103rOWm99aH1tHbET7Uy7ot3Ibm/3s4fb4+0p9oP20/ZztsGaZu3Xe1x6cb3XSFPsOjfNFsq9TLM2uV00y5L3tN6AnPuQM3rvRqTsj0n5ACkHkFL4DTD9Osp6C2V9iBwHz8nxBnL8HTk+Qo5D5+T4G3K8jRwfI8fhc3K8iRzvIMcnyHEkpmWbkPJzTMpmpByNSdmClGMxKVuRcjwmZRtSfolJ+RQpJ2JStiPlZEzKDqScjkn5yaRkpMSk7EFKakzKF0ixYlK+REooJuVrpIRjUr5BSnxMyi6kJMSkfI+UxDMpGcnmOqO0SWcZi9PfFl79UHi1G1fREnaiBDumzK+QEocUzh1T1meFV98FJWT9m2hZrLWYSNnAeMUDm3Hut3A3Ir5i1icaDzRZT9OPstc4XU+nkH5CP8m9m61nU4JeqBdSol6sF1OSfl4/zzmX6qWUolfoFcylVXo1pZ1n1T8wes1aaCI5KzLKFr5V82RQ94eYiaZZ5te9MWkhuo2P3fz7psLUPyLea9q53Uj4Hxg9TEDElxDxLYKIb3W0sgsivr0RMxqEiG/B+lsT8e0b+IojYqJoH4GbP2CFXfmYtBBtok34/ocqTOWZA/FdQnzXQnz3Hz0p/P81vlvkovFdE9ntDq+3LyK7Y+D7jofv+ygiuzMR2X0Ckd257A2fovkmtmptRGzVKdTGzGBkPoYMfqZP4XyXvgdjar5ocCbW+gnuMu8394tJsS1t9aEzkdZo2gTsn9sgJi1kDbA3WLXozMrsT+hCkdZUvZc1l/R+ngktfdDMbfowz04h/TPPN3H6GM8oYf0Lzxnx+iS3NyHDYruZlBFmq52SkcBWmK0vzwTmS9DeHxalnc0e7X7/CI1C3NR83TzlovFZE0dzYAtc2IKzorT+Cf8EZfqn/FPYpfx/JlZb859fKwgLH0HM10HMVyHm6yPmm4GYbxZivjmIi5ZGXLQM4qLlEBetgLhoFcRFayEuWhtx0bqIi9ZXtVU9aqKaqKbUQjVXzaml6qQ6USvVRXWh1qq76k6Xqz6qD12h+qq+dKXqpwZRGzVUDaMOiBR3QqS4GyLF3REp7olIcS9Eiq9F7HQwYqdDEDsdhtjpcMRORyN2eiNipxMQO70JsdOJiJ2adyxL/+ZIsYkRp4EXEfDCAS888EKBF1ngRS54kQdelAQvSiNGXAEx4kqIEVdDjLg6IjI1ECOuiRhxLURn6iBGXBcx4nroZyP0szH62RT9bI5+tkY/26Kf7dDPDuhnJ/SzO/S9LSPkIYHGbsLzkjvM+6p219i0cHz4YU5rdlbac/HlOS2/MM2mHhdYDWFWAMRhBUAYKwAS4HcnmjeL2LJ+63zHmrTb+Ykt615nL9vE/eyPp5u3wtjKHnOOk2veCOMZ2XIt8t0B7gDS7kh3JFbHbGbN3enupCxId1FIdzGsJ832ZnmzqDgkPQcR61zIeynIe2nIexnIe1msPKiENQf5WG1aGatNq8Da1oQe1JWvsp2tJ1+Xr1N96EQD6EQT6ERT6ERz6MRl0IkrIAftIQcdIAedIAddIAc9IQd9IQfXQg76Qw4GQieGQSdGQCdGQSdGQyfGQCdugE6MhU6Mg06MZ524jm5Wo9UYmqzGqrE0BSthb1V3qjvpNnWPuoduV/ep++gOrIf9D6yHvVNNZx36T+jQA9ChB6FDD0OHpkGHZkC2noJszYZsPQ3ZmgfZWgjZWgrZWgbZWgHZWgnZWovY7Dpgwx3Gzul97AuRPs7egaVPGPyvT2cw1sgIMQYOZ8QzAk/ISMpIwr4iZ61FxqriFKxESsVKJIEYaBGsHk7HaEewxs7BumGJuKePkczASGZG15AozbzPBe9Lgfelwfuy4H156GBlrC2uirXF9RH3bIC1xQ3B0UZYW9wYMdAW4GVL8LIV1ha3UTsKn0F1BFc6gStdwJVu4EovX/ua+vhLmDfmCU2rX6MvkO1EyHYSepsM2U6BbKdCqtMg1QJSXQRSnQ6plpBqBV744IWGVBeDVOdCkvMgyaUhyWUgyeUgyRUgyVUgybUgybUhyXUhyfUhyU3AzZbgZitw83Jw80pIcntIcmdIcldIcjdIcndIcg9Ick9I8tWQ5F6Q5GshyQMgyYPA98GQ5CGQ5KGQ5GHg/nXg/nBI8mhI8o2Q5AmQ5JsgyRMhybdCku+CJN8NSZ4KSf4zJPkBjNkjGLNHMWbTMWYzMWZPYbTmGJx6/pzAqG0Hz+FH3RMsg1lePntJ/bwhVJ4R3GSqihmjJmaMWpgxamPGqIsZox7sfX3Y+yaw901h75vB3jeHvW8Be98S9r4VVrO0Znx3jHr9ZuTgXWA+6+f1Z+ka7A1muTLalQztSkWr09BqgVYXQasjaLWDVrtotUarM9DqTLQ6C60uilZno9XGe024GEoDxooDxgoDI8XDE4kr+LI5RfdJiKYV7PsQnW02Gw/QrW6o/BFxN6w+9a7GM6uLvG+G95Y66kSdR910Od2AxuhG+mq6sxAtF7xXtMVgLTxnJ9nVvL2o1+q1jE3X6XWMTV/RrzA2fZXxbAIVrHf+da3eijbejLsO4PoW9MM8p7vUW3LENZmSmzFtzTO28cR6BnUkBDUUxYrrgh5sQx2fow7zXpyFPlrs/0WfXBi66nfyioWOBrHnMIYm0GT+fwdNpftpGs2k2TG/nsF64CVBK120rQm1pDb8vyNjjz4sl8NoVMyv8fz3aOvNN+ottQ68uR5tvT2mDz3RtyFneuJitxLnizMc9cx3GmxYpN/bR1HYrj5o53juax/0bhT3zzyDpiBfwbjX4vExo9OVr3qxD9WaCnDVdrTyHkQtvjy3J+5ytHhoYYujY2Pom/h7v4AD//xoMUJADx7kq+gXK6JXCzh1Cdey8rzRasLjZfjQl6+ipUSvJnDq5KB3n/0zvWPtOTOO/2xPLTIrsktSwfPv9KCFO9AelC7NjlWafZ3Rcoy8QY6V4+R4eaOcgLepQ3hvm7zbvTvZLpl3pBMp+j62ecfVvI9t3njF94mt/dYR65fgO48RW9lZdgm7XOjycP/wwPDg8NDwDeFx4RtFrighSokyopyoICqJyqKqqCFqiTqinmggGokmoploIVqLPmKAGCSGiOvFSDFajBM3ij+JW8St4j/E3WKq+Iu4TzwoHhbTxKNiupgpnhBPitniaTFPPCMWiEXiObFULBcviFXiRbFWvCxeFa+Lv4n/En8X74j3xPviA/GR+ERsFlvFp+Jz8ZPYJw6IQ+II9+Naa5/FqMw6bB0myzpuHWfP/rR1mkJ22A5TnJ1ip1DYTrfTKd5mWEEJdqadSYl2np1HSXZZuywlh1qHWlNKuF+4H6WGB4QHUFp4UHgQifCQ8BAqEh4THkPp4bHhsRQJjw+PJ0fkiBxyRZ7II0+UFCVJitKiNClRVpQlX5QX5UmLiqIiZYh8kU+ZooqoQlmiuqhORUVNUZOKidqiNmWLuqIuFRf1RX3KEQ1FQ8oVjUVjyhNNRVMqIZqL5lRStBKtqJToLXpTadFf9KcyYqAYSGXFYDGYyonhYjiVFyPECKogRolRVFGMFWOpkhgvxlO+mCAmUGUxWUymKmKKmEJVxR3iDqom7hJ3UXVxj7iHaog/iz9TTXGvuJdqiQfEA1RbPCQeojrir+KvVFc8Ih6heuIx8RjVFzPEDGogHhePU0MxS8yiRuIp8RQ1FnPEHGoi5oq51FTMF/OpmXhWPEvNxUKxkFqIxWIxXSaWiCXUUiwTy6iVWCFWUGuxUqyky8VqsZquEGvEGrpSrBPrqI1YL9bTVeI18Rq1FW+IN6ideFO8Se3FW+It6iDeFm9TR/GueJc6iQ1iA3UWG8VG6iI+FB9SV/Gx+Ji6iU1iE3UXW8QW6iG2iW3UU+wQO+hqsVvspl5ir9hLvcV+sZ/6iIPiIF0jDovDZHYoTKewNSjsil/iTyU2Ns/S8BVFsgZarN9xq+JWma89xp+kkPnmOZ6lsVZZw+KNZbStofGfEnasiDPPZ62Qea8+k5LjvDgZp+L8OB2XEZcZlxVXNM58186Ky44rE40qs7fa0DbRqejXmKMpV9rDqeBrxrZ1iH62q9g17TqcozmntbM72F3tHnYve4A9zB6V3D15Ev/9gkfyQ2cfXMrZR53zj+RVZx9c64WP5uccLbltZx/tzj+S9519cF8ucqTcffbBfT776HGhI2Xx2Qdz6eyjD44zvweccwzmY9hFjlEXOlJOnX2kpp9zZJxz5J19BP2Lthcl0P99dfrCX502O/plAUVGMWRP1twzOC4WxT1Dz9EKWkPr6U16lz40eJj1of7voHV+F233e+hFvmxt9ga+11gVfM3Q/KpPBTulJhbsagrEkg37YVbHxZm91YMdqJcEVwW7w57Zg7hgX+toGYMo1TwJLkSDsVy200umma9vlQPNB60JWgu0Nmgd0Lqg9UAbgnYCvdrQ3/gdxfGMToO98grRdyz2/ufa1Rz0ivPa+Lt3rIzLxve0/tGXk8dYE6zJ1h3WVOt+a5o105ptPWM9Z771Z6233jRfA7S2WDvM1wIZ3RyxTti2nWiL6NcH7dJ2RbsaS1kjtgRXsAXoyjasnz3EHhH9/qF9J76P+Kj9hP20vcBeYq+0X7Jfs9+yN9gf29vsL+xd9m77gH3UPhWKCyWH0kMqVDSUFyobyg/VCNULNQm1DLUJdQx1D/UJDQgNC40KjQ9NDN0Wujt0b+jh0PTQk6F5oUWhZaHVoZdDb4TeDm0MbQptD30Z+i60J3QodDyO4uLjUuOcOE12OCmtCsbH0FKgpUHLgJYFLQdaHrQCaEXQSqD5oJVBq4BWBa0GWh20BmhN0FqgtUHrgNYFrQdaH7QBaEPQRqCNQZuANgVtBtoctAXoZaAtQVuBtga9HPQK0CtB24C2Be0I2gm0C2hP0KtBe4H2Br0GtC9oP9D+oANAB4IOBh0COhR0GOhw0OtBR4KOAh0NegPoONDxoDeCTgD9E+jNoJNAJ4PeAnor6G2gd4DeCXoX6N2gfwb9C+i9oPeB3g/6AOiDoA+BPgz6V9BpoNNBZ4DOBH0c9AnQWaBPgj4FOht0DujToPNA54M+A/os6ALQhaCLQBeDPgf6POgS0KWgy0CXg64AfQF0Jegq0NWgL4KuAV0L+hLoOtCXQV8BXQ/6qqH/Bru2tqScyJHIz5GjkWOR45FfIiciJyOnIqcj30a+i3wf+SHyY2R35KfInsjeyL7CtP2RA5GDQdqhyGG69A6XpobPIjsin0e+iOyMfBn5KvJ15JvIrsiGyPuRjZEPIh9GPop8HPkksimyuTBtS2RrZFuQ9mlk+yVrsKx4yjlvHhhPE/GF4HvpYZpOT9I8WkTLaDW9TG/Q27SRNtF2+pK+oz3R79uT7diRz0B3gH4O+gXoTtAvQb8C/Rr0G9BdoBtA3wfdCPoB6IegH4F+DPoJ6CbQzZe8dwvoVtBtF7n3U9A/hkPh0G7Qn0D3gO4F3Qe6H/QA6EHQQ6CHDY2MAb0BdCzoONDxoDeCTgD9E+hNoDdf8t67Qe8BnXqRe1eCrro0h7BLanTtm+1QxOywG4r0ZRoXuZbO3RH1HyAjOULfCjoadJzZEU4/CfqfoH/m9JHIMxJ5RiLPUOQZijxDTZ5zVheb55pJ0bV5Z9Vry+HaAp2EXdyexfVE0FuQsgB0MlLuBzX79Z29lxyQo/cKRfddi8GE/MuOjKbormvIFTEraaL7W9xGjbStQzpOh3W8TtRJOlmnmP2zzO5Z2tWellrpDJ2ps3RRXczsoKXNLl3ldQVdUVfSlXUVXdXsn2V2zzJ7Z5mds8y+WWbXLH25vkJfqdvoq3Rb3U631x10R91Jd9ZddFfdTXfXPf7QtS355OlUXUQ7Zt8ona1zdb6uZnaJ0nV1A7M3lG5hdoXCnlD/03tzJWIFcMGOUmUp4s/yn/Sf8mf7c/yn/bn+PH++/4z/rL/AX+gv8hf7z/nP079qvyVBcWYlGP838baL7xxkkYAMsfQ4Iym6jwZaLgcHUdLoryGFfzMlz/BnYs3HpXaxsNmvayY3yc1yi9wqt8lP5Xb5mdk/RH4hd8ov5Rz5tJwr58n58hn5rFwgF8pFcrF8Tj4vl8ilcplcLlfIF+RKuUquli/KNXKtfEmuky/LV+R6+ZX8Wn4jd8lX5bfyO/m9/ME8P5Q/yT1yr9mDRB6QB+UheVgeka9Js+b+f9f+GGY1vtlR0nxJpLTZxwI7FITk9uD8ZXD+CucL73RhvhBhfPLWbA/7si9unp/czz74M+x/r2ffewt9TfvohJVoeVaOVdGqY7Ww2lu9rCHWWArLzaZklB6WW2Out8Vcfxpz/VnM9Y6Y689jrr+Iud4Zc/1NzPWumOtvY66/i7n+Pub6h5jrH2Oud8dc/xRzvSfmem/M9b6Y6/0x1wdirg/GXB+KuT4cc32k8PpS+4hYVnusHG+P5x9D8C2aKYwB7qdHGQE8Q0t4/jffu9mIr+GY/SuPsnImWunsv+ZYZdl7rWM1sVrHSMbm4LwlOG8NztuC86fnSNBnwXlHcP48OH8RnHdeUNJC8uvg/E1w3hWcvw3O3wXn74PzD8H5x+C8Ozj/FJz3BOe9wXlfcN4fnA8E54PB+VBwPhycjwS8PrPrSmvKlT/Lo/KYPC5/kSfkSXnK7E6kLGWrkIpTYRVv1hyoJJWsUsy6AyVUEZVu9ihSrvKUVEqZXfj/lfuvcJuUVhkqU2WpoqqYylbFzd5HKk+VUP/N3reHR1FkfVf1TC4zJCGZTFfPJAFyA7nEgBiB5SZiQAgRYrjITYRwlZshXAz3CIiILLcFZBUBkY2IrPqCogLrIiIishgxKJIsxgiomFXMCwHZvMz7q9OVMNOJn/ruPt/3/fE+9fzOqdNdVV1ddapO9Uyd7mTRVDQTt8idDqKlaCVS5H9ZorVoI26Tb0ASaeIO0Y72kPx733oivase1Rfpi/Ul+mP6Uv1xfZn+hL5cf1Jfof9eX6mv0lfra/S1zP89Ic1YpP4HfZ2+Xt+gP6Vv1P+oP60/o2/Sn9U361v0rfpzunxL5s33g0xlacInd9wammEz7EaQEWyEGKFyx63RwAgzwo0Io6ERaUQZLiNa7r01hGEYHsNrxBixRpzce2s0MeKNBCPRSDKSjaZGM/2w/p5+RH9f7unVi/SP9ZP6J7Sz9+feKLKa9TAeMfKN2cYcY64xz5hvLDAWGgXGo8YiY7GxxLjFaG60MFoarYwU41Yj1WhttDFuM9oatxtpxh1GO6O90cH4ndER5X2oH9f/pp/QP/K/rtFP7go2so3+xgBjoDHIuN8YLHcFG8OM4cYDxgjjQWOkMcrIkTtkvfLLD7/tbSL57HdGJ6Oz0cXoatxpdDPuMrobdxvpRg+jp3GP0cvobWQYfYxM416jr/GYsdR43FhmPGEsN540Vhi/N1Yaq4zVxhpjrTFa7k42xhnjjQnGQ8ZEY5IxWe5ONh42co1pRp4x3ZhhzDRmeb7wMi99H+NXvl1DrhX+YKwz1hvy6yfWdx3Is08ZG40/Gk+zOu944ifZBSH3qnQWXURXcafc0yO6i7tFuugheop7RC/RW2SIPiJT3Cv6iklispgipoqHRa7cxyOmixlippglHhH5YraYI+aKeWK+WCAWin4iS9wnskV/MUAMlPtGRIF4VCwSi8US8ZhYKh4Xy8RgMUQMFcPEcOmPKh4UI8UokSNGizFirBgnxgu5J2i5eFKsEL+Xu7LEarFGrBV/EOvEerFBPCU2ij/KHaNyf5bYJJ4Vm8UWsVU8J7aJ58V28SdRKF4QO8SLYqd4Se4cEi+LV8SrcveQ2CNeE6+LveIN8aZ4S+wT+8UB8RfxtvirOCjeEYfEu+KweE8cEe+Lo+IDcUx8KI7L3UXiI1EkPpY7jESxOCU+FZ+J0+JzcUaUiFLxd3FWfCHKxJeiXHwlzonz4oL4WnwjvhUXxXeiQvxD7kASl8SPolLuQhJXRJW4Kq6Jn8R18U9RLXcjGQeNd4xDxrvGYeM944jxvnHU+MA4ZnxoHDf+ZpwwPjKKjI+Nk8YnRrFxyvjU+Mw4bXxunDFKjFLj78ZZ4wujjP16f/ydLPs39Gfd3vvlvpH98i+3Cfs1fuz/ey//P94LJ389+Y0qG557msm1Anh7eoI2vfGlx4n8rUGweGaXqwhKZcba18Q8t5vr63r9xGuv4Cr0TPDsJT4evMZTW37RrY3lf7C1anfMTlrjvc2OsBOsmJ2hVd73rArrcY07a9d5qTyNd8a6PBMr80Hym1R8Is/ls/gCvpSv5Bv4Zl6IaxV61hGdQHQm0SVEpxPdrGr4OkmziG4lmk90G9HnKNVMVdYWlWeLuqv1dPTPRAuIvkRn5qv041W6Gsmsg3nsdXXFmpIkn+Z5TPFH6ewbROfTsUUqzQTFZ3rWm96viJv1WKDi8myBOrbZ7yqr1bk1iq/3vKVquz6gFv7pftlTXvrZuukfL/mLT4blVzzZvyv8fsPTonM8k6Qfndkq0fK3JylNquXm0alEHyK6lOhaoovkW0uohCmqhCmUc4oqYYoqYQqVMIVKmEIlTKESpsgSLB76cm+fE3obj5Vcit8/dwOkP7LsNdD1ROV1n1DXfcKzEXQVnV9F51fR+VXq/CoPfcEpwI///9Fvc/+XRtwa0vM1NOLW0IhbQyNuDY24NTTi1tCcIKVZRLcSzSe6jehzlGqmKmuLylPDn6WjfyZaQPQlOjNfpR+v0tVIZh3ksfHqultrS5LcHHFr1IhbQyNuDY24NRhxzwaknQnOXWsohVmPBSouzxaoY5v9rrJanatJ8yyNOFnbwJL90/3ymxfke1ATMdKy2CDa9zgBTxQz2Bx6Vvb/vTxwR8FZdo5dZJXsGrvB7dS38le/MmqpMmqpMvqNtox6q4zmjzK6mzLqyzLqqzL0kk2mV9IEoluIvkJ0N9ElRN+itGZvVCo6nuh8otOJrie6mehMoluJyitVqitV0pUq6UqVdKVKulIlXamSrlRpXqneN03INy4G13iP0+jTorfQ2N0irwmK8qOfpyPP05Hn5RHLGyekH2vNP/yBo7emF7ToPVTGHo/0ituj5oI9VPoeqfOg04nirqL3U9r9lHa/Sruf0u6ntPsp7X6Z1vL2Co5RGse64mnI3AF7Uw/k/yZLA+bc3bV6YI7wCyjrJ1yZR/9EsWdwdcjgUppJdCvRfKLPEt1CqWZSqhuU+wbFZO4bKvcNyn2Dct+g3Dco9w3KfUPl/onu8Ce695/o3nFE5Z+gSjfLknnozP/h7Ruc98S8bf3vqIDaoGaWk2PhADscMBIuYZa7zhkPrt0B0QzznPyKs+aOlbMr6CNEtxKdQfQZv/hWPNPHUmxVnTxbiD5B9HH5DO55HKlMPkPxZxXfrLjM2ZpKaa3iW4nOIPqMX1xeuTXFVtXJs4XoE0TllVurK7dWV26trtxaXbm1eWXLW0nqGS/uubJfQNcRlZZnIR1ZSEcWyiOWt5PU/sruftWziJlvH+H01VX5VgTN/Zq0xvp8Ome+ZaQ2B2bD1xhX/yQsR2ppm9vi6VrqvHWVIXVevl1hPNElRAuIvk70GaK7oE89PA8raQLRSUSnEjXL2EP0IaLziS6lfOM9i5n1jSTSSzeUfA6S6ZvXHczvYbu3SzskKbXMdmmBSHqdpElKWk/8YWmBiD/KrG8y4Ww1i6qznyhw1l+E1pFvb3iD6Hyii4hOIDqJ6LNE0b7y/QaIFRDdTHQr0dVE1xDFbCrLknoCPl7l/gOr/z0lAf9P6q2pDq2pvNbmf3kB7wfR0FYNPX/yFHpe8Oyo5bs8L3te9ez2Nve28Mj3tf1r7y+g/268Tma+tcDcUV7ji22+F0B+D6zmV536PehlnmWe5azGf5t+5/OGext6I71RXpc32qt7Da/HG+uN8zbxJngTvcnepuzf62/twfEIr9srUKkYbyNvY2+8N4n9Nu8+85sn9G+pPgr4zpXnHsZMb57Af7z8U45gdlele2F0MqvxoImrPTeShbhzpZXVh7hzTN8C8nwZwWq+Up6q57Do6CnuxdCXoUg5wZ0T3cNV5l4ov89SI4lb3Yt/VbpU0xuF/FMyaq+RrD/IIjzlZs7oPe6HUJ58QjkSLd9AtrjO2VT/s7UeFH519oxg0fWV5xpLd1mbt0661PrT1V7DbNVgPUcfrY/Rx+rjvLco/wjTWyKMMa2rJr+ZJHdw67BogkMHeQyX31lqwfshnsXxtIeV9lOIb+TyKXozfw3x1/kPiF/iPzIbr+SXEb/CqxC/yn8iD4N/Il7Nofncp3Fm0zTNzrgWpAUjHiK/yK410DAWtHANs5kWqUUh7tLciOuagbhHg4XVYrRYxOO0BMQTtSTEkzXcg9Zca4F4S036JbfSWiGeoqUgfqt2K+Kp2tOIP6NhhaBt0jYh/qyGGUXbbLuHcVsvW2/5xd4g2JogdxDuNygmqAfiPYPuYbagXkGjEM8JegjxiUHTEM8LegTx/KAliD8WhDkzaGnQQcTfCXoH8UOh8q8gLRQjMLSZYxLjjsmOyczmmBL+IuPhO8N3Mlv4S+HvIH4o/D3Ej0Q0YjyicQTaKuJqBMZ9Q9YQI72hFpnEeGRyZH9mixwQOQBxudfJFjkochDi90cORnxI5BDE5e4nW+SISGgQfevZFjky8knEV0SuQPz3LjztuYJdY6DHY/X70K3ZGFOa/iBGD9dHoe81fbTxT8aNasOH0StfaoVFiKcz5okuni6ISy8bm2e4Zxzi4+WM7Nkn31njvUVqj5wnmfy+h6lBGnuOPEu4n2cJJ88STp4lnDxLOHmWcPIs4eRZwsmzhJNnCbf1Ro9w8izh5FnCybOEk2cJJ88STp4lnDxLzJYMJv8STv4lnPxLOPmXcPIv4eRfwsm/hJN/CSf/Ek7+JZz8Szj5l3DyL+HkX8LJv4STfwkn/xJO/iWc/Es4+Zdw8i/h5F/Cyb+Ek38JJ/8STv4lnPxLOPmXcPIv4eRfwsm/hJN/CSf/Ek7+JZz8Szj5l3DyL+HkX8LJv4STfwkn/xJO/iWc/Es4+Zdw8i/h5F/Cyb+Ek38JJ/8STv4lnPxLOPmXcPIv4eRfwsm/hJN/CSf/Ek7+JZz8Szj5l3DyL+HkX8LJv4STfwkn/xJO/iWc/Es4+Zdw8i/h5F/Cyb+Ek38JJ/8STv4lnPxLOPmXcPIv4eRfwmnXika7VjTaKeKgvSsa7Rcxd7BotGvEQftYzL0jDtrNotEOEgftadFoH4mDfiXUaGeLRntKHLS/RaOdJQ7a5aKp/SVyr4tGu0wctONFo70mDtr3otGOEwftftFo34mD9sBotPvEQTthNNqD4sA44rCxIZ4QrBTkl9Wc9GU1J31ZzUlfVnPSl9Wc9GU1pyfJ0xwp5ffVnPR9NSd9X81J31dz0vfVnPR9NSd9X81J31dz0l4aJ8bmfFxrAdZWIZ6FWCMF0crFTisXu9/KxY61zg5Q+X4WG1YxuxGXaxY71ixvMTuNaDuNZifvEHSEBY3KG5XD4kfPzpvM8sfnjZ3Edk8Ym5PHDk8eNWMqK4c9tve8KzueNb83c0g8S+vfNz2edRuYDZrJmM+H2SEElqepiocyQ76Rm+Jyn9YtKu7EE1RzFW/AYlgLuSuye7/+8Syyf3b3eKy55Tk7WalY+TYikjjWWHGslZLkP1qNkFKmMo/YsDZuzG6Vv631vh91dNNx6bXURMWiWLx853DvrKxeLDm7373xrM2A7D7x8qvoVIIdq8kE+Q1zqlk0nrlbqzNBKC1JfrudpGCmYz15G2s7Ond6Lk8lmka0I9FuRHsSzSSaPWls3lQ+mOgmovuIniZaJamWRrQj0W5EexLNJEolaFSCNoLoGKITp4zKm6TlEl1HdBfRw0RLiVZJanMSbUy0LdGeRJcRPUb0LNFKSe3BUyZNmWSPIdqMaBuiHYmmE+1LdBDREUTHEZ1KdBbRBUSXKqvx62g8eqE12httzG7Hc8gdeDJsjyed3+GJpBPrzLrgiaQ/G8AG4rnkfjyVDWFD2TA8oTyAtdWDbCQbhTLCA8oIzPGvnW0UcPa31ovTPdZHI/xo/Wkioat34pnsLtad3Y1n0h54OuvFemOF2gcj8F7WT45klSbw3G8/3qDe4/fijFy72mgcYK7DyG7wLx5rgpEbidHpwphzY2wJzBsezBExGP1xaO3GSBGPkZmIMZiM2aUZZpLmmDVaYjZIwYj/d5Tw774nO7uH9cWT+n3kp2zGfykmnxDD/8f8Pb6Cb+IHeREv45fwMBmpxWtttG5aljZSy9UKtKe1ndo+7Zj2vXbDlmJPDJoXtCJoU3BMcNfg3cFljjRHumOAY4xjhmOJY51ju+Oo47Sj2pnmnOyc51zh3Oc85jzjvOi83sDZIKZBywYdG4xokN9gWYNtDXY3ONTgZJgzLCasZVjfsBFhU8MWhK0M2xFWFm4PbxyeGr4r/ED48YiIiJ4RI7F2OBdxuaG9obthcsO0hukNBzTMb7ip4cGG5yJDI1MisyJnRG6MPBB5PLI0siKyOiosKi4qJapzVGbU8KjJUfOiVkRtitoVdSDqeFRpVEVUNVYKca4UV2dXpmu4a7JrnmuFa5Nrl+uA67ir1FXhqo4Oi46LTonuHJ0ZPTx6cvS86BXRm6J3RR+IPh5dGl0RXe0Oc8e5U9yd3Znu4e7J7nnuFe5N7l3uA+7j7lJ3hbtaD9Pj9BS9s56pD9cn6/P0FfomfZd+QD+ul+oVerUIE3EiRXQWmWK4mCzmiRVik9glDojjohQ6wNSTK0atPpg56G3TYdDNOPo1gumFJt9UafLdY/zywNZt2Bkov24PlPdmBspvdQiU95cFyJqICJQ9hwLlmO6BcjLqHOwnN43zOx/MtPZjAuXOuyE71L+w8o64lmny0L3M9L5TJXUdZJF3+cmAK5Tkm60lj2UoPkjxnMAy7tpJ8s19mmaqtYpvUnyH4maNPLApXTG3yV+yR7BxbCr9c7iUrWQb2GZWyF5me9V/VJ+ys+wC+17lflPxw4oXKX5W8YuKXzN5tKZ4pOLxirdVvJviWYqPVDxP8SWKb1S8UPG9ih9R/LTi6vrRN0zudiruobtOpN8x5X8HE1me+iVvLXuabWM76Tf7Q+wYO8nOYK0n/7e5Tv/IuXgMT+QteVvekXfnGfT9H1liquIdFe+l+GDFxyk+S/Fliq9TfJviuxU/qLhqUXe54pdMrit909VOfF21pN5G8e6Kq/rpYxTPV3yp4hsUV/qg71P8hOLnFL9schGseIziLRXvrHhWoDZ26xio0UZfksNIM1Pr0Toz1QHFVX8aJxUvU1z1q1Flco9d8QjFVe3wVGFypV+ernXHk+eM4hcUv0xpGtBvyin0r3o6/Rc9XL09Uv6yOUdx1Ype1Yve7Yq/qvjbiqvW9Kpreb9RXI2LGHt9YzZml+KqT2KOKV5KqTuxeeq//U0B/7AUs1J2jlWwy6ya23kYd/M4nsxTav9BHsCH8zF8Mp/B5/ElsJPrYCm38138NX6AH+bHeTEv5ed4Bb/MqzW7Fqa5tTgtWUvR0rTOWjrNZKhDrNK7WKV3sUrvYtUIjlUjODZH8RmKK72PfVpxdY+xSt9jixVXPRx73eRxYYo3VlxdLy5dcTXO4qYqvkhxpd9x6jpxhxRXPRGnrhOnrtNIXaeRuk4jdZ1Gajw1UrNuo4mKFyiu5tdGSgMavan4ccXV+G2kNLaxmokaq+s0TlO8p+JDFVf301jNfI1VuzVW47Wxuk7jo4qfVlzdV+NqkzdRM26TRMXV9Zr0Unx44LjtzgLHbfxBi3zSIlcE2sC7y/zOQ05PDZR7xNUdifFqlMcr6xF/0ZLn1bp5ElT9EwYoblrDIPktC6xymzPVf4lKTxNTFO+guNKfxKyfybdVcaU/iaq9E5XFSywKbIekrvXW2TKykzYrvlNxVWrS0cBe6JlDKwlTRkiq9pOBZOEnw7Ymz7LI+wLlVhmB8q0LmCPEr/ZpE5hDs7RwmloxpCmNS9sbsLrBkXZKx9sVB5be/og1ZUc1Sjt+H3gfnXIt8puB9ep0nTmC6umdzqo3O6tZpnOu4qpGnc8wR00ZskZdUgPbt0dLi0bhWC9h8kEjTL6xu1+eIMjLmSPUr4znCvxknN9eHKgRd20n2a8VuqvVTPcF9egcSiisNPmLySZ/qcjkf84w+R5P3XFwt7JMd+crvjTgqtDEfeMUr2QOh1/97i4k+RcscrrS3HRlSdPVuqTncMXV/HbPApP3Uul7qfS9lO3KUHYhQ+XvM5Q5nH616XM5UM6cR7WT/4THYL0m/+NVK6xMNWPfq1YkfdWM2lf9h9ZPrQGy4qiEOrqTpVZc96kZ9j7Vcvepmfa+1dYWfOt7k/8lkUaJ069G3WtXkpR3gLJmA1UdBiYrrlaBA5WeDlStMFCtPQaq2XqQsrL3X7DW4e2pJn83kupQ206DY/zmXykXWOS1FrnQIu+zyEUW+QLJATo3+JrJhyi9HpJSN80Q1VtDlN0ckldPGmWrh6hZcci+etIo/RnyjcmHBtdNM9SjeDvFB9STRvXAUNXLQ7fVk+Y1xdVaZOjlummGqXYZ1lzxXvWkUWNj2DzFN9WTRq0UhylNGHYpYIbiea8FyjM7Bsqz+gbKjwTacZ4/0SIfCZTnrAiU524NlOdpgfL8SIs8OVBeYKnfQkv9CgKfVvmjswLsJV90OlBenGqRlwTmX3wmUH5sZKDFHHrUz5LAAowI8xs3UrZYzJHfBMo55YHyaIs8xiKP9fhdD2FsL7JcPy+PsMgz/O5Hysst8lqL/LTfbC7lbRb5eqA8LssiF1rk6kB5fLZF3mGRbwTKEwZY5J2B8kPMb36X8mCL/Gpg+omhFnmERd4bKE8Ks8g5FvlNv/5HmBxhkSN/4fxvla3luerKfr+P1ZWFRfZY5DiL3Ngix1vkZIvc3CKnWOQ2FrmtRU6zyO0sckeL3NUid7fIPS1yhkXua5GzLfIgizzUIo+wyDkWeZxFnmCRJ1rkyRZ5qkXOtch5FnmGRZ5lkfMt8jyLLJ8/nVjdNKfvA0ZgDlzEmNZGy2ILte3aZ2yr7Vnbs6zYPsP+HDsV9EnwMm5z9neO4m85H2/A+dGwyLAe2t1hw8I2a7PDx4RP1P4SvjB8hXY4QosI1U5GXI24qn2OWbtK/rcY/Gn43npDEcKZ8HN+4aIKRfWEy3KvggrNEToipCNMpLDRGsKLIrZFvBa5QYWtfmGnDFGs3uCMyqoNy6PW1YYqM7ji6gmpCGnSW7U2bDcDnbEE92730dpwQi9DuCCDsNcXXKnCJZoby/3COgqH6g1FxvWa4HF7YmpDugoZ9YYsCoMUDwwFisp0RygU1wYz91nPJW9L7xjvZu8OGayle1+uL5ile9/0lqtw+WaQV/Fep2sVSDTKTOpYGzKTsmvDGBUmIhQkTUxui9CtaWrT9KSJoKlNDzU7esunFC43H4qQ26IZQkqL8hbXgPIWN1oebbVZhhblrQ60utjqYoo9JSLFnbIPoTi1K0JW6tDWm1R4+7aC25vd/k3a2nZpCF3be9oPbZ/fYbcKBzoc6VDcsSVCh45LO5V2CaawusshCtVd23XdpcLeLtWQd3W9RNKlO7U7ta677kzptrLbgbtSewxGOHvPhC6rzdTgl8xUvbvKdL0zMxIz2mR0zdjRpxmFrD4TKeT3WdpnE2h+n2MIZZlzMgsyz96bi7Ch70ikyup7ou+JPsdAS2UMobxvRd/r/QooFPY7TuFsvwrgbL+qLHu/KpyvyBqaVZpVft8MhLXZ8UhX2K/KPJM9p19V9rns7wdmDToyePADrgfiHmg23j5+6PjT46/X8AkpCLunRk5NzM3PXZR7MLc8tyK3app9Wttp6dPGTcudNmfasmkbpu2atnfa4Wkn83Lz1ubtyKuczqa7pveanjP9wPRPZ6TNyJmxaeagmctmvj3z8qzgWSmzes7aNevCI+mPXM+Py++ZPzI/L39T/sv5p2cnzh4+e+/s07OvzwmbI+Z0mNN9zpg5hXNOz205N33uiLkb5+6cWzq3al63eXPmHZgfPL/b/Lz5r84/Mr96QcyCCQsKF1Qs7Lgwf+HLBVk/M1fttc5HgbNNwaybQc4jBVtvBnMG+Zmxl2EdcYHjxNT0emedmpnHLwTOHQVHbgY5OxQU3wzmvCDn0MidniPGOszDZ7pewqxJczBxzLdRWZhfN0Zsi9wQXlQ7ZyJtVFXSGJk3fG/Exptzp9lKmJ3Taf41UyVGbKtpPXlUzsWU9ow8T+lVC6LcveHnMJNvQ44zVFoRarcB/AyFm9bhosUqpPvZgZuWYJusd53Zf2ed2d+p5vzlNN/TLE/lIHdEOuIba2ZC9McO1V+Ym8z5x5zfVD9iTsQMKHttTO3sWNOjmOM8GQXlMsfNPk7KLigvKEdpMtVlnMvylidl19UJzIPFfjNqPfOs/7xad05VM/cR0iZzFs2smT/lvI4juGpBhXcHjmR7stql9T0h7KYdIw6bZVzXy6BVrhrrU2NVXHHCftMCmVopbRultssUyHtIuOQZeUSmksddceFFNZrqiXHFwQK6ZH4ZN4/etKP+llTWhaymspt+ltOFEqx2cl2AdSxSltFdU3ucv25eXV6/T5Ze5klHfQJaX7aabGP0lN+IrWljcyTK1jQ1JWkM2jtD9qZsCU+W+2nq7x2yb/xGdUfvy7jXGgtbbJZaUOEpKKgwg7yC5EnZsldkzNQ0yQsqmqYmtzVhWrjktmSV/IK0cKZ1I/v4PwxkU/1C3RRkaf2Csri1oW4OaWl/WyBb/KtDrcX+mWBtKRlq7fjPBLLsvzrQauNXBmvr0BrFL9RtP1q7+AWp92ZP/7ZQt+Rfrt2vC2Y7y7VLxLYuwRmJXarDz8hVD4XVdCRYrnRIWp2RKNdA6hwCVlAd5KrJPCrnfhmTgVZHg2llJddQl7peovURVkeIHeqymlYnBbWrGBkK+xX0Le1XIFcwJBWqdY4ZL8QqqFwekSsama+vCrTimUFrI6Sls4WSel9G6kK5msJs0axvKa278lXIoiPN5KqLpKy+pXJeUucQsHJrg7WaXKHJfEsphkDrtFxazyEtrdRq12t9su7UqEWqZVvcN8NsiS7BdD+osVnTPseobHmlpVQWlRs4Euv2qL8e3PKpKbFgftB3xnav74BtIGtoG8zCbHm+H21vs/ZMw5kiSOcpVmEb6DvHOOhVpoF+YBvsK2IN2Eu+anbYV81Hsmg+imXzHOblo1kCH8Oi+CQWhZRpSHmnbbLvr4yjnK+YHWnDkDYKacOQ1knlnUeq75mDj2BxOJ+E8wNxvhHOJ6GspigrAbmfQX3OsgaI7UZ9o2zzUI/5vjdQ3462r3xP2c6xNrbzrK3ta9bK9q3vY9tF6SOE0otQejmzI6bZBt/4J2qzDiW9y/JZQ5bBIoGOrAXrBIzxfczGAuOA6b6v2QzfZTYTmAU8AuQDs1kYm+M7yeYC84D5wAJgMfIvAR4DlgKPA8uAJ4DlwJPACuAt1p3tA64hfgPwsRacARzIYp34fUA20B8YADzE+vEjrAnu+CHbINbZNoyF2h4EJrNltoWsse1RFm9bzBrbt/hO2rcCzwEnWQv7J0AxcAr4FPgMOA18DpwBSoBS4O+sRVCk7+OgMt/JoO9YWFAF4v8ALvlOBgexjOAW4LezFsHtwCf7Pg6eAkwFHgZm+r4OngWgbYLRNsFom+A5ANom+BXWKfhV4A3gKusU0pI1CWkFPMhahIwEcoBpQB4wGygAHgXQRiGrgTXAFuA51j3kJfB/AN8Dl4AfgUrgKoA2DB0NjAHGAjNZEwdjnRxu+a4o6MoF6LWTYt+i168yHVq7B1q7B9rWDNp2F7RtEbStP7QtB9rWG9rWDam3Q19SbYN8K233++ZAg+6A3qxHCSNtb/sKbV9Bz84zm+0CdPBbNoz07BxSlWKZWTMqRrDWfuX3QvmzUH4PlN8eqYei7HUo+w3kuh1lb0DZz6C8AyhvEItAKT+glB9QSiRKuQWlTEUprVFKa5TSCqXcglqeRUnNUdIYlNIWJeygO/0AsVeYB2X8FWX8FWU05w/69qGc1ijnQZSThnL6o5w7+UO+j1BWa77R9yZy7kd5dpQ3CzUbhzKjUbPFKO1JW7nvMmp3zPYNRuu37FbbRTVio1BqS5T6EEptj1J7oNRklNgcpX2CnJ9g5N2LuxzIGqgZ5r8wk8iZ5Y9ssa+CLQEeA5YCjwPLgCeA5cCTwArgmO8a+xA4DvwNOAF8BBQBHwMngU+AYuAUcBr4u8/HzgJfAGXAl0A58JXvQ3YOOA9U+krYf2KcXwauAFXAVeAaZrefcP468E+gGvgv4Abq4vNVcAZwmhW/sg2Fhg33/WAbAT7S94P9pK/C/glQDJwCPgU+A04DnwNngBKgFPg78I3vmv1b4CLwHVAB/AP4HvgBuAT8CFQC/wlcBlAX+w3A5/swyOX7MKSb71pIDyAD6AP09X0dMgB8IDAU54cBI4AHfRUhI4EcYBLOTQPPA2Yg/giQD8yGPA+8APxRYCnijwPoh5BV4KvB1wB/QHwdsB7YADyF8rfg+DbEtyP+EuKvIL4fQB+FoI9C0Ech6KOQEp8vpBRAH4Wgj0LQRyFlyPMlUA6gj0K+9ZWEXAS+w71UAP/wFYV8D/yAc5dQ9o9AJXAZMvoupAr8KmT0UehoYAwwFv2lsZXMTZbLxlZCdwdCh6X1CoL0Z0gZkHpDyw/bPmKtGMfRKpYOzSyBZpZAM0ugmSXQzBJoZgk0swSaWQLNLIFmliD119C0a9C0a9C0a9C0a9C0a9C0a9CiCmhMFTSmChpTBY2pwvUO4noltgdYkG0UkAMNGu37ClpTAq0pgdaUQGtKoDUl0JoSaE0JtKYEWlMCrSmB1pRAa0rQk1XoySr0ZBV6sQS9WIKeq0KvlaDXStBbVeipKvRUCXqlBL1Rgla/hla/hla/hla/hla/hlatQKtWoEWr0KJVaNEqtGIJWrEKrViCVixBK5bQiD3DQtCWd2Ekh8L2/gW293VbEWztx7BCsDbUvhdxhx/jDr+k9p0HyQMpDu27CCV8xgbDTibATibATibATibATibATibATibATibATibATibgSu1gK5NhK5MxZosxZosxZosxZr/EmL2CMXsFY/YKxuwVjNkrsKcujNnzGLPnMWbPY8yex5hFf7M+sJtpGKdfYpx+gXH6JcbpF7Yc1sw2GpjMlsCONoEdbQI7GgvbmQDbmQDbmQDbmQDbmQDbmQDbmQDbmQDbmQDbmQDbmQDbmYCxeB5j8TzG4nmMxWKMvSsYc8UYc8UYc+dh4xJg4xJg3xJg3xJg1xIwVs7DtiXAtiVjrJyHfUuA/hdD/4uh/8XQ/2Lo/5fQ/y+h/1eg/1dg/1ywfy7o/3nofDF0/gp0/jxsYALsXwLsXwLsX4LUd18l2roS67OVvsfQA70wn3+J+XwmeqIXeuJPOLsC2t7DdhIrqWLfDdsplkO9V4LUZ5DqNCzmSt8CSDnIexJ5P8HRbsi7EnnfR94M5C1GviEsWI2j+5HyFFIWI2UGra+kzrxAJY3F+Ttx/gTOf4rznVDSEzj7KkrqjpKOoaQ2lP5zWieeJVrFnLwha8KHApOBKcDDQC4wDcgDZgDLYemj+EEWjqssQun5KOcDWhttZYZtP7vD9g76v5wlwWr3xyrRBcsdg1Viku0bzAzfogYXcew7dgfseZ7vHeQQWFMmSpuO/JNZb1iwodD5Yay3bQStvnqzCNQsFjWLRc1iUbNY1CwWNYtFzWJRs1jULBY1i0VON3JORU43ck6lnOHIGY6c4cgZjpzhyBmOnOHIGY6c4cgZjpzNkPM25GyGnLdRzjDkDEPOMOQMQ84w5AxDzjDkDEPOMOQMUznTVM403Mkw1hKxltTGe2iNcBWtVYIWzgLuA7KB/sAA5sTazYm1mxNrNyfWbk6H9Hqxo4WjkSdLrTQOUx99yYp5c185bwG0BFoBKcCtQCrQGmgD3Aa0BW4H0oA7gHZAe6AD8DugI9AJ6Ax0AboCdwLdgLuA7sDdQDrQA+gJ3AP0AnoDGUAfIBO4F+gL9AOeBp4BNgGbgS3AVuA5YBvwPLAd+BNQCLwA7ABeBHYCLwG7gD8DLwOvAK8C/wHsBvYArwGvY7V2EPwd3xl+CHgXOAy8BxzB8fd9p/hR4APgGPAhcNx3gf8NOAF8hBXEUDytjPAV2d/DSuII8D5wFPgAOAZ8CBwH/uY7ZT8BfOQ7FRTlKw9yAzogAAPwAF5fefAq4I8A2iB4s+9CcKHvh+AXgB3Ai8BO4DUcfxccq83g9xAv8p0K/gTpTyNe5SsPaQQ0BpoA8UCC74eQRCAJSAaaAs18p0JuAZr7zoS0AKALIdCFEPR7SFvIt+NcJ9+FkM7g2b4fQjVfeagNsANBQDAQAoQCDsAJNADCgHAgAmgIRAK431AXEA3gvkNx36G471DcdyjuOxT3HRoDxAJxAOofivqHov6hqH9oApAIJAHJQFOgGerU1nch9Hbgd75ToR2BTjjWDegJ3AM8iHQ54ONwbjzSTQAeAiYCM3FuPrAAWAgUAKtw/HmkfwHpd/jOhL4IeSdQiWNXfOUODuBeHdG+Uw7ch0P3XXDEQ4fmcrQOR+twtA5H63C0DkfrcLQORw6O1uFoHY6W4ZG+r3kU4AKiATegAwIwAA/gBWL+m5d7j4+zrvY9/nQmTdJkQrmW+6XcBBSQuwJe0G1FkSruDRtxq9lHQFOoIlAKrenFIIiA5U4RKiBVA9hWGwsCNhQotk1JSdrm0rQ0adMhyXSSJmlmMm3B33lPduWg55zXOf+c88fHZy7PzLPW97vW+v2eIdWe9SgcjWMwHsfiOByPE3AiPoKT3GWfjFPwUXwMp+I0nI6P4wycibNwNs7BuTgPn8AncT4uwIX4FD6Nz+CzuAifw+fxL/gCJuCLuBhfwpdxCb6CSzERX8XXwrZRl+Hr+Ff8Gy4X9xX4d1yJb6Ay9I6agZmYhdn4CapwO36KO3Anfgb3G6PuC8Oj7scDeBAP4WE8gkfxSzPycTyBX+FJPIWn8Ws8g/n4DX4LK+CoajyL5/A8fo8FWAizdpRZO+qPWIwa/AnLzPLX8DrewHK8iRVYiVWow2r88xS5PPynKX2ldWCsyX+hdWCs6X+hqd1YYOIVmHgFJl6BiVdg4hWYeAUmXoGJV2DiFZh4BSZegYlXsNA9yiL8AX/EYtTgT1iCP4fegpfwMl7BX7AUtXgVy/AaXscbWI76KFGwBm9HidH7RSWjD4xKRx+EcTgYh+DQqLTwntBbeG9IF87x+BGP54auwsesSTwYmWZPeU8uhb/xnpgLxVwo5kJTunBR2Fb4Byz2Xg3yU+4F57/otZe8/zJe8fwvEGehOEem3wrP67y32vEtr9VjDd5GQ5QoXOfa7u0K3dsVNnutJQyPTMo2sbmfK+zyWfcshWmP7a4L7a4Ld8A9S6F7lkL3LIU7MYQMsnIbDtuK9gm9RWOxL/bDIWG46FAchsNxBI6MSoqOwtE4BidGiaKP4CScjDO8dqbjWbDKFlld/2vqRoniWFRaHEcBRqMQRSjGGJSgFAmUYR+Mxb7YD/vjABwYlRQfhHE4GIfgUByGw3EExFkszmJxFouzeDyOxXE4HifgI6G3+KPu0T6GU3Ga53YKxWd4/PdJfLbH5+I8fAKflMf5+IrHl8J9bvFXfe5rYXnxZfg6vhGGi78jzmud989T2v1usfvd4qmoFMMMzMQs59/l2vp/ZGo/4jjX9z6GX+Jx/M73VePvU/x5r/GwOOOze8LwmChsGzPKXqk4pMfQc0yJ435ePyBKjEx2K9SYg712CA6FeTzmiPzvkvlO37uvqtShTSN7tNc/eP0HXr9t5HeU/H6rLxoduzj8R/zS8IbdaUn+ty3v9UYfi308pGJn4zx8BheHxtiXwurYJbjUrvzysNnuYpPdxaaSK8PqkqtwZ0iV/Ax34ee4G/fgXriXK5mD+3A/HsCDeAgP4xE8irl4DL/E43gC8/ArPImn8DR+jWcwP6QSHw2pKC7SbOxK98Q3uoe+QPwZ8Wdi54ek+DOxzzveFbbEfu7e5ZvRqebXqc5cXfKvIVnyb7gC/4Hvhi0lk3A9foAbcDPuDBm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZeSWkVtGbhm5ZUq/HLaUXoKv4FJMxFfxNVwWtsg9w8PzQguH3oqN+BhWjvxyeLTcq+VdHftmWBi7GpNxV1hGg2X5+2+5V8u9Wu7Vcq+W+zK5L5P7Mrkvk/syuS8ruTUsLLkN0zEbPw0LxbVMXMvEtUxcy8S1TFzLxLVMXMuiizhQwYEKsXVyoEJ8wypoSAUNibNdJK0iaY1f/reh+JV/y1hdyjhzutWljDun773HX666hlTXkOhaRdcqulbRtYquVXStnKngTAVnKjhTwZkKzlRwpoIzFZyp4EwFZyo4U8GZCs5UcKaCMxWcqeBMBWcqOFPBmQrOVHCmgjMVnKngTAVnKjhTwZkKzlRQoJUCrRRopUArBVop0EqBVgq0cqYi+jwVyqlQzotVVCjnx6rYxdGRsp8o+4l7f2+9e+/99ClUGEeFs6gwjgpn7f2V+Bu8WsWrVbxaxatV1JhIjYnUmEiNidSYSI2J1CinRjk1yqlRTo1yapRTo5wa5dQop0Y5NcqpUU6NcmqUU6OcGuXUKKdGOTXKqVFOjXJqlFOjnBrl1CinRjk1yqlRTo1yapRTYyI1JlJjIjUmUmMiNSZSYyI1JlKjPCpSC0MyTsj4fhnfIuP9ZThDhlOjQ2m0nD7LadNMm2Y67E+D/b37oPyXy3+5/JfLf7n8m+XfLP9m+TfLv1n+zeJoFkezOJrF0SyOZnE0i6NZHM16pSL87p/m3VB0auwyM+5KVJhzk8y463A9fLeIOz6YdZVmxsywunR6SJX+GJWYgZmYhdn4CapwO36KO2A2lpqNpWZjqdlYajaWmo2lZmOp2VhqNpaajaXmYqm5WGoulpqLpeZiqblYai6Wmov7jEEJSs28/GRPjcSe0eNJPZ7U40m65e/TT/TuWr2b1LtJvZvUu0m9mxR7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7RuwZsWfEnhF7fmZdGTZQ+y0Kv/bBzMpn1B6dKaMa72/1/jA33uPGe9x4z7ntzi12bqlOKZHpaTqlRLan7f0N6K8ceo9D78myRpY1sqyRZY0sa2RZI8saWdbIskaWNbKskWWNLGtkWSPLGlnWyLJGljWyrJFljSxrZFkjyxpZ1siyRpY1sqyRZY0sa2RZI8saWdbIsiY6RyZVvFnJm5WxiugI/qyUwXd1wC4dkJXJ7TI5eO8vMwfnf5mRyaP5X7N4t5J3K3m3kncrebdSVlWyqpJVlayqZFUlqypZVcmqSlZVsqqSVZWsqmRVJasqWVXJqkpWVbKqklWVrKpkVSWrKllVyapKVlWyqpJVlayqZFUlqypZVcmqSlZV+vjKkT7+hCze3vvfnCaI+kFRL45K5Vsv33q51svrIDkd5J2H5VMvn3r51MunXj71UWFsCl9vCbtiU8O7sdvVxb2hL/Zw/pd2r+6O3R6y0Sj/uys62RnZ2K0q4jbcHppid0TFsTt9+p7QHXskKovNDXtij4U9pfa3pfa3pUfiKByNYzAex+Jq51yDa/E9fB8VmITrcD0m4wf4IW7Aj3AjbsLNmIJbMBW34jZMC3tG8tkt0s5YZeiSy7bYQ2FHzJ1edFXsRtV+E6Z49VZZ3oaZoSE2C7PxE9weHRS7IyyKzXHefaEjdj8ewIOYG16S30ulsfBWaRwFGI1CFKEYY1CCUiRQhn0wFvtiP+yPA3AgDsI4HIxDcCgOw+Ghj4Z9NOyjYR8N+2jYR8M+GvaVnh8aSi/AhfgUPo3P4LO4CJ/D5/Ev+AIm4Iu4GF/C1fK4Btfie/g+KjAJ1+F6TMYP8EPcgB/hRtyEmzEFt2AqbsVtmBZeigpUzmYqrqPiltgjYUAt3R4G1clw9DUu5LiQ48BuDuQrbIsVJ2vFyTojS+UclXNWmKwVJmuFyVphslaYrBUmS/0c9XPUz1E/R/0c9XPUz1E/R/0c9XPUz1E/R/0c9XPUz1E/R/0c9XPUz1E/R/0c9XPUz1E/R/0c9XdTfzf1d1N/N/V3U3839XdTf7dVLmuVy1rlsla5rFUua5XLWuWyVrksdXPUzVE3R90cdXPUzVE3R90cdXPUzVE3R90cdXPUzVE3R90cdXPUzVE3R90cdXPUzVE3p+duUd35Xqyk6QzVfXu0D7U7qb2V2juiG2hcS+Nald7tzJW07qR1Z2ya55Whx6cGVX5a5adVflrlp/nwPh9q+VDLh4HYL8IKHdCiA1p0QIsOaNFLb5kNf+VRE4+aeFTLo1oe1fKolke1PKrlUS2PanlUy6NaHtXyqJZHtTyq5VEtj2p5VMujWh7V8qiWR7U8quVRLY9qeVTLo1oe1fKolke1PKrlUS2POnnUyaNOHnXyqJNHnTzq5FGnDknrkLQOSeuQtA5J65C0DknrkLQOSeuQtA5J65C0DknrkLQOSeuQNI9reVzL41oe1/K4lse1PK7lcS2Pm3jcxOMmHjfxuInHTTxu4nETj5t43MTjJh438biJx008buJxE4+beNzE4yYeN/G4icdNPG6KKjiY5GCSgzv5/ToXd3CujXPbOdfHuT7O9XGuj/8J/i/mXpp76djdXruX03PCAg52c7Cbg90c7OZgLwcH1MlSLrZzsZ2LaS6muZjmYpqLaS6muZjkYpKLSS4muZjkYpKLSS4muZjkYpKLSS4muZjkYpKLSS4muZjkYpKLSS4muZjkYpKLSS4muZjkUh+X+rjUx6U+LvVxqY9LfVzq41Ifl/q41MelPi71camPS31c6uNSmktpLqW5lOZSmktpLqW5lOZSO5faudTOpXYutXOpnUvtXGrnUjuX2rnUzqV2LrVzqZ1L7Vxq51I7l9q51M6ldi61c6mdS+3Rx7mU5VJ2pBv/y4UhLgxwYYADWQ7k75sGqDtA3QHqDlB3gLoD1M1SN0vdLHWz1M1SN0vdLHWz1M1SN0vdLHWz1M1SN0vdLHWz1M1SN0vdLHWz1M1SN0vdLHWz1M1SZ4A6A9QZoM4AdQaoM0CdAeoMRKeYDO+ZDO/p/rT1vCR2tyzukcVI9B4/grnW+8es24fb1R2BI3EUjsYxGI9jcbVzrsG1+B6+DztIWg/TepjWw7QepvUwrYdpPUzrYVoP03qY1sO0Hqb1MK2HaT1M62FaD0ffp3U3rbtFnBZxWhekdEFKF6R0QWpE/793AN3/p8q3g4/lf9n431d7Nz+6+dHNj25+dPOjmx/d/OjmRzc/uvnRzY9ufnTzo5sf3fzo5kc3P7r50c2Pbn5086ObH9386OZHNwXTFExTME3BNAXTFExTME3BtG5I6YaUbkjphpRuSOmGlG5I6YaUbkjphpRuSOmGlG5I6YaUbkjphtT/RTekOJTiUIpDKQ6lOJTiUIpDKQ6lOJTiUIpDKQ6lOJTiUIpDKQ6lOJTiUIpDKQ6lOJTiUGpkje8f+a+Q5/Iqzau0aZM2bZK0T9M+r3Gaxmkap2mcpnGaxmkap2mcpnGaxmkap2mcpnGaxmkap2mcpnGaxmkap2mcpnGaxmkap2mcpnE+x7Qc03JMyzEtx7Qc03JMyzEtx7Qc03JMyzEtx7Qc03JMyzFdmq+FKbgFU6He5JiWYzra1yzO/GPPqLS7Rzo9a6Zm/089Yu9+iz2qO1PdltBthbpti047SKeVRBM/mChTrMaVmOG+/HbXuiv0q+x+Z+f0Zr/VecinTqNwlsJDH9o19avuftXdr7r7VXe/6u7//zRt+lVfv+rrV339qq9f9fWrvn7V1///dFeUv1vJUWrFB/ctQ1F872s5Lu2JLqdtHW3r+NfLv17a5u9s2jgxmr5d9O0amX9zPH/IPcLDdkpzvfZY6KJrF1276NpF1y66dtG1i651dK2jax1d6+haR9c6utbRtY6udXSto2sdXevoWkfXOrrW0bWOrnV0raNrHV3r6FpH1zq61tG1jq51aqpXTfWqqV411aumetVUr5rqVVO9dO+iexfdu+jeRfcuunfRvYvuXXTvonsX3bvo3kX3Lrp30b2L7l1076J7F9276N5F9y66d9G9i+5dpfk8p+AWTMWtuA3TQteIxrv2dkIuOiC2JBoXe82O83V1+UaYFVsRqmM77TMyYU5sV2iIm5zxU929nh4Wxc8OyQ/+WvmKaN/4v0eJvX9T2J3YGNZwbL7vXYjXdcAbYX1suUp/Eytcc6Xj6rAxtsad7npXa3JsRnc0JtajUzP2uFk7oWHsDgPxKHTEi1CMQ939nx4642eEnfEzcRbOCdn4BWFrojykE9eE+sR1MCMSP3S8IWxM/AhmQmK6Y6XjDNhDJ6pgxUzcC12ZmOP9B71m9iUe9XwunvAd88OuxLO+fxH+EHYm/ojFXqvx/CVHOSUavNaItWjxvBUbPd6EDuf1ho7ETgyHjrIDQ1/ZQRgHd4dl7g7Ljvf6pFBfZk9fJq6yO8NQ2b1hZ9nDeAzPhL7oy3tVbeNTjqotVO2lai9V36PqNqq2UrWFqjup2kLVFmpmqTlIzUFKDlJykJKDVNxFxQwVM1TMULCXgm0UbKFgCwXbKNhCwVYKtlKwjYKt/6RgGwV7KdhLwV4KtlKwjYJtFOylYC8FW6jXS71e6mWol6FcL8UyFMtQLEOpDKUylOql1CClBik1SKlBSg1SapBSg5QapNQgpVr2KtVGqV5KZSiVoVSGUoPRsbHnwvTYkvAHStWqwT0U+i1Vtsc2h++psymxnvCk6r4iNmSnvSt8Wp39NR4Py+OF4RfxRPiBam+KHxjGx4+Oro2fEG5W+cfGTwufo9ozqn+Cmns8/ukwI35R+Obev85qj/97eCp+ZZgUrwhL83+/JKuXzaTXrBJvYEV4xxXf5cdmV0y6Qo9v7feNW33jDr10gV76lDvC5zj2Wmj0qXy/vDXSI93RUT691idX+eQ2sSXFVuob1o/0w9lhvU++Flb51Ls+9YJPHOATW1yvfaR/3VWP9PDR+vRUz08Pm32qQ5TLoyNV1s6RTy5XWW9ipYpZ7dNrVNV6u8gmx+awTXVsUx3bVMY2lbFFZWxRFVtUxU5VsVNV7FQRORWRUxE5FbFFJeRUQk4lbOPcNs7t5Fp+8ndH+4inUOTzXe851/2zXF/CyrCbrpvomUzcGrK+f9D3D/r+wcRjnv8qZH3PYFTgU0Miv9Entubr3k74ObNkiVzeCA1e3RhrNEfyGm4OKbo1+t4W39sSXemqc5w9S091jlTLn0Olq1f65AAldlNit2/opESgxNDevhqixFCsNSz0jTUqqSGWVj0lODBcEx/HjYNxCI4LN8WPxwlhe/wkPp+MU7lH9/hnvH/RyN8unyGaM/ReJ3WHqDuk9zopPEThQOGg9zqpUEnpQIk5lJhDiTn6r5Pau6m9m9q7qR30X6f+66T6bqrvplYl5YcoVplYYBItxCvhpsRyx7dQjzXYgDa84712xy2+Y2u4qSwKfy0bHRaWFaII4z0/EZNMqNlhjh7s5ObuskfC1rJHMRe/xLywMCpVkYOqcSunzzJ93jd93jd93uf6eTr9fZ3+vk5/X1e/Hx3Bj7yXWdr3077fpwrNqAEzasCMGpD7kNyH5D4k735598u7X679cu03XwbMlwGzZcBsGTBbBtT3gNkyINYhcfabFQNmxYBZMTCqxBVnq4BHuL+M+w9w/4HYUo7W4rWwIrbcqvgmVoRnVMGe2Fqvr1dbrWFKbEP4S6wNG7EJ72BzuDPW7rgVnb5zm2MSXeiOZquWmljK4+1Iq7xexz7sCDfF+jHg8SB2hgqzqcHkbjW5W3XwFWbUmtge772H98PS2N8cg1V4FGLIz68C1Tba40JzqiTMipd6nAiTR+bZWMd9sR/2x4HhAtV6sWq9WLVebG29I35YmBo/3HtH4OjoG/HxjsfiODPveJwQ/iN+oucfwUmen4xTPP4YTg2fNyP/02RZwLXZXJvNtdmq/VLz8t74uc45D58IP4l/0vF8XBBmxi90/BQ+Hb6lKy6Of9bji8KNOuOKvX8xu0CHTI1fFR0S/zYqwtvm6+8TFaEhMQk3hD26ZI8OeUCH7FEls1XJbFUyOzHb+z/Bz3AXfo57onGJe/ELzHH+w157BI96PheP+Z7HPf+V45NhcuJpPIP54Y7Eb8JUq9nMxHOeP4/fY0GYoKsmWOFmqsDZKnC2/cEdVrmZiT+FnySW4AXnveS1V5z3F4+Xotbryz1f4fWVvrfOa6vxltfqsQYNvqsRa7HO+S3ObcUG77XB9Fbds3XthMTm8BedO8EqOlP3Xqx7JyQ6vaYGE2ow8S7UYaIbPWFZQh0m1GEiDTWY2IF+DJgAg8h6nAtLE7uw2+P3oeYSas5UmFWm7srUXVk8LC0rcBwdppgSU0yJKWXFno8xPUqgBssSYVlZGfbxeCz29fp+2B8HeP3A0Gqlb7XSt5Yd7PsOcc6hOAyH4wgc6dyjvX8Mxrv+sV4zYU2jWWUzQ4MOn112ZzSujNdlvC7jddnduAf3eu/BMFXnzzapJphUE0yqCabAbNNqQtnjvmeeuJ/0nc/4/vme/wa/xe/CTdF4U+JGU+KPIyvz6yPr+ZsmQZeOn6Ozv6Wzl+jaRbp2lTU3o2Nf1bGdurJRN9bpwqW6cJ2u+4LO+rZOWqRj7tUxb+qYLl3ysC5ZpwtqVf9vVP9XVf8y1Z//lwrnqvi3o/9mXj0rkt9bsdbGFlmllpgJf/baS3jdOveG95aHZtOz2cq1zMzqtXItsQb2irbH6rXE6rXE/Jov8jfNqR6RrzGLlou61bzZat5sFXmXeb1e5DvM7PVm9nrzZLnoF5gFC8yCBaLcI8qv5/c8Vq+1if80aa8JS6xgS6xga61gS/Rmr97stYKt1Z/P6s9e/fms/nxWfz5rBVubuN3nfoq7cU9oNtWbTfVmvdlrNVtrNVtrwjeb8M1681mr2RK9+axeWqDuF6jzBWq6x3qy3nqyXt32WFPWq9UedbpcXc5Xl/PV5Xy12KPWtqq1rWptq9rqUVs96mqrutqqrpZbi9arqeVWuCVq6lkr3ForR7P6mK8+etTHVjvIpeqgFq/Zoa0If6b0NqtDo1r4nGm+yTTfpB5WU7WDqg1UbVATL5rcmym70qTeRNmVlF2pNrarjXdN43Wm8TrTeJ0a+ZgaGTZl20zZNrWyQZ0kTdZ6k7XeZK1XM02m6QZTtNXkXGciNpqIjVTfRvVt1N5mAjaagI0mYKMJ2GgCNlJ2m6nXaOo1mnSNJlqrKdZmirWZYq2mWL0pVm+CtZpgG0ywDabVBtOqzXRqM53aTKc206nedKo3nepNpw2mUpup1LZ3KtWbRm2mUatptI47K02WTSbLJi6t5NBK02Wz6bLZBNlsWmwyLTaZDJtMhk0mwyZONXCqgVMNpsJmE2ATpxo41aDzN3Fqpc5v1PGNOr5Rxzfq+EYd36jj63V7vW5v0+1tur1Nt9fr9jbdvomLDbp8ky7fpMs36fJN7om77Y7z++qzw3vRObosf591nY6aq6Pm6qjX+TxL1+zi62/5WsPXGt2S4msnXxfydCFPF+qInC7I8WIWL2bpgBw/Zqn4nCqfq8rnqvK5vJilynOqPKfK56ryuap5F70W0mmhat5Fq4W06qRVp6reRa9OlbyLPjX0qaFPDX06VfMu1byLRjU0qqHPQtWbU71zVe4uOdfI8Y1wr4odlsFSz3aKPROeU5ubo8NkttOzpMx6ZNYjs35Z1ZsDKZnVy6xedDtFVy+6etHtFF29qHaKaKeIekTUI6Ie0ewUzU7R9IimRzT1osjfy/ZER7tSxpU2uFLSlZKu1E3D/D1qg6sNuVqDqzW4WsbVGlytwdUyrtZAi0FaDLpqhhaDrpxx5aQrJ105SYtBV8+4esbVk66edPUGV8/fHybdI2w2L3eGt2X9tisPueIms+wlE7fFxM3fH7w4MnELnTW09x4qtfffMJ0evzI6c0S5Du9s8k7HyLP8vd2eER1H7/3UoGdp39/s+wfshlvtadMU3i3PEkpEGG1PWogijPf8RMwL/b5j84gzjc7eaBXJxzgUneg73vTOn+k36Ltedsa7f7+/H1lvIvOlCMUoCS/L6jLZfJeOg3TcTMfNdMzfX2+m36AYXhbDm2J4Uwxv0vIf77sPxxEfuv8e7/zj9eKJjvOc/6TX8vfco+TcFx0svgExDYhpu5i27/0FZ4foe8S1Q1w7xLFDHDvEsMO1B1x7wLUHXHe762533e2ut931trvWDtcZcI3t0fG+/RXZ/1XmKz80ZdfTeYErZUemasnIX4r8dK+XG2Rfkf+Lnr9PHxmvdNVXXPUVV33lfzl58pNmvPPyU+ZEx/zEmOfcf54YY0ZW0Z32AbvcWxfy9fJww96/7njblb8x8hejZ4p7szNf5Fq9+4Jm8b9KpUUfmiD5laGVUvN4nV9336XWPGrNk8+rvvVu37aQi/X2bs0UnEfBeZysp+I8HdGqI1o5Wi+/V3VFqxw3y3GzHDdztd4erNkerNl+q/mfJkcrl+u5XP/B5BjvO44P8+T+qrw3c7l+ZHocTvWNVN848mtExhTZFd4QdS/lN4q4V8T533B6qb2R2htF2SvCXipvpPJGKm+k8kYqb6TyRgpvdKVeCm+k7kbqbqTuRupu1FUZU3e31U/1qLBMeDWKWQV32yntiuJ2Iys8G/CsKxrvWZ97mJz9SZ/9SZ+VcthKOWylHN77G2HKnqXfPj5nxUtZ6VJWumEr3bD9es5ql7JHz9lX9NmT56xuw1a3YavbsH13zr47Z2UbtrIN23f0WdlS9h59VpphK82w1WU4GmMt3yWSJ6zdfdbs/L7uXVft4+AzHHxmZKqMsdoPxQ80SU4NaRn0OCsdPycaa8K454nOcJ3WqMD3bPM9+d9cc/kMZJwY+QUhlT+fEgfqp3NCzuv5X2Wd4XNbo4M8y2c/JPsh2Q+NZH6VvcK3Q9OHMh+S+dBI1g2OjViLjdgE2clsSGZDMhuKjnG1NfTN0LeFvi0fvjN37bSrJGmbcYWkKyQ/uBtfPPKLX5K2Gdq20DbzD3foLZ63jvwKOHKnTtsWV0/StuXDd+vRKJlnouPjZR4dGJ60W+qzW+qzW+oT0wtieoFaGTumHjum/K9rvXTabmfUx4H3OPA8B553H7m/+8j8X0fmdz09dj094nrB7qbH7qbH7qbH7qbHbqbHbqZHPC/YyfTYxfSJ6QU7ih47ih47ih67iZ6oSDR/dOWdrphzxZ2utsvVVrva6ug4726hW5cYN4hxgzOze3/D/h8OnWNnd4G6vogO80MXDXfTcPcHLi32Wo3nLzm+Yqe1wvHDrrV43oq/u/eOczqcvzVs+AcXx1Gtg2odVOugVAelOsTdvvc3qQ6KdFCkgxod1OigRgc1OqjRQY0OSnRQooMKHVTooEIHFTqiw+T5jhzfkeM7ctwhx/VyXCfHdXJcZ6ear7p18llnV5myq0zJ5R07y3wFrpPLOrmss5NMyWOdPNbJ4x05vCOHdXJYJ4d1I/+K8rj4d6LjornR1eGx6Bpci5vCU9G0cH80HT9GJWagM8yNtiGJQefsCvdFu7EH7+H9cN+ok0LDqJNxCj6Kj+FUnIbT8XGcgTNxFs7GOTgX5+ET+CTOxwW4EJ/Cp/EZfBYX4XP4PP4FX8AEfBEX40v4Mi7BV3ApJuKrqIgOHrUsvDrqtfDiqNfxBpbjTawIS0etxCrUYXVYWvBkuL/gKTyNes/X4G3IteBvCOG+0fuGx0bvH+aOtssebZc92i579ME4BIeiI9w/Ou2cXvSH+wtPxrm4PjxWOBk/wA8xJTxVeAvoXjgnNBQ2hKWF7niKTgxLiz6Ck8KLRSfjTJzl+YW4Kswt+ia+He4rehTz0eH5FmwFz4p6wlNFKezw3pDn2XBfcSw0FMdRgNEohJ1isZ1i8RiUoBQJlGEfjMW+2A/74wB8MiwtPh/f8fhax1mOv3OsDi8WZ0LDGN815gD7429F+4c10QEw/aKDMA4H4yM4CSfjFHwUl+AruBQT8VV8DZfh6/hXXIFv4OrwhMp9QuU+oXJnRDeHedEU3IKpuBXTQrVqrlbN1aq5WjVXF/w8rCm4G/fgXvwCc3Af7scDeBAP4WE8gid97ik8Haq5/sTolrBm9Ca8g3Z0eP1dxy6kvd+Lfq+9H9YUFqIIY1CCQ3AoTsCJoEMhHVRHdeHZjuc6XuD4RXwL38Z3UI7rwxMq5wmV84TKeULlzFA5MwrlWyhfFVRd/MO8NtH9oSF6AA/iITyMR/Bb/A7VeBbPoQ6r8RbqsQZvowGNWIt1WI8mtKIzLDYTFpsJi82EVdFODCGDLIaxKywyJxaZE4vMiUXmxKKC7tBQ0IMUtiMNdycFfdiBfgxgEO5YCoaQ/9zfEMIi/ba4yCwo0vtFer1Irxfp86KJYVXRvzlejquc8018Oywqus7zmzEFU3Erfow7cCf0WxGNimhURKMiGumnRUW/dpzvuMjxFdChiA5FdCiig15brNcW67XFem2xXlul11YVbUcaO3x2yOv00HeLRp0WFUT7RaNRiCIUYwxKUIpE/v9iEvvg/GhcdAGuDtPV+HQ1Pl2NT1Hjk9T4JDU+SY1PUuOTott8w7QwWZ1PVueT1flkdT45qorGRrfjp7gDd+JnuAs/x924By9FR0UvozNM4+g0jk7j6EMcreZoNUerOVrN0eooJ+JdoZKrlVyt5GolVytH/TI0jXocT+BXeBJP4Wn8Gs9gPn6D3+J3qMazeA7P4/dYgIVYhD/gj1iMGvwpNMU+Ho2NnRGNi53t+BlcHKbHvhRuil2CyzyvCLNjk8L1setwfbjenu2S+DfDzfZtl8S/43hzqItPCY3xhmh0vDE6ML7OrrfJXXlzVBLvDNXxbfYiyeik+LuOXfn/byDH7dH+BTdH+xVMwS2YiltxG6ZhOn6MSszATDwZJpsXk82LyQVro7EF67AeTWhGC1qxAW3YiE14B/RU7ZWqvdKsmT56v9Ck6qeZMZNHb49KzJfp5st082Xy6D3RfoVxqK3C/XEAjsPJYXLhKY5n4KxonJkyufA8j68P082P6ebHdPNjuvkxxfyYYn5MMj8mFaqlwmlQS4WPhabCX478C/qmoiNxFI7GMTgDE0O1Tpum06bptMqiH0Vji27ELMzG/XjU6086Ph0dpZsqi573uMP5W7AVak7nPKRzHtI51Tqnuqg3GlPUhx3OH/K++tNBlUXD0djiA0NT8UEYh4NxCA7FYTgcR0CsxWItFmuxWIvH41gch+NxAr7ru67GNaj0fAZmhqYxo0JTyZXhppKrUBmuL5kJfVOib0r0TYm++e/EnQmYFMXZx6u7erp6enqWa1nu+/KI8YjRSNQ1ZtWoHBJFERBQMIgCciu3NwjKqYCieHB4YBDFi0M8CB6JgsAAw8AisMAuw9ILCMuxy9T362b104jR5MvzfDvPv6e7uo63qt963/9/xBmXfeOyb9zHwQQwEUwCzNedAqaCJ8CTYBqYDmaAp8DTYCZ4BjwLZgHWx30evABeBLPBHFEpNhyMACPBKDAasLYx1jb2AGB/x9jfMfZ3jP0dw84YdsawM4adMeyMYWcMO2PYGcPOGHbGsDGGjTFsjGFjDBtj2BjDxhg2emeKSllR4IIY8cGUq9kpBUSj4Cz47pEa5j1EM49o5hHNPKKZRzTziA0escgjmnnhKw6yQFWdggGkYAApGEAKBpCCAaRgACkYQAoGkIIBpGAAKSJfNSJfNZhAGiaQhgmkYQJpmEAaJpCGCaRhAmmYQBomkIYJpImSPYmSPYmSPcUd2he9wJ3gLtAb9AF9wd2gH+gPBoCBuhcRtR8RtR8RtR8RtR8RtR/RNI9omkc0zSOa5hFN84imLtHUJZq6RFOXaOoSTV2iqUs0dYmmLtHUJe9uIe9uIe9uIe9uIe9uIe9uIe9uEcHnHS+DV8CrYLGoReStRf71yb8++dcn//rkX5/865N/ffKvT/71yb8++dcn//rkX59o3Z9o3Z9o3V8UomWLwB6QBntBMdgHfFAC9oMD4KCeTmSfR2SfR2SfR2SfR2SfR1QfSlQfSlQfSlQfSlQfCqdPwumTcPoknD4Jp0/C6ZNw+iScPgmnT8Lpk3D6JJw+CadPwumTcPoknD4Jp0/C6ZNw+iScPgmnT8Lpk3D6JJw+CadPwumTcPoknD4Jp0/C6ZNw+iScPgmnT8Lpk3D6JJw+CadPwumTcPoknD5pXCdyjHbgz+B6cAN4WifIRAkyUYJMlCATJchECTJRgkyUIBMlyEQJMlGCTJQgEyXIRAkyUYJMlCATJchECTJRgkyUIBMlyEQJMlGCTJQgEyXIRAm0xCK0xDK0xDK0xDK0xDK0xDK0xCK0xCK0xCK0xCK0xCLjC+EaX4JVYLVwyWIeWcwji3lmy+D/UeX9j7z/SY8mm7Uhm7UJs1knXWz2AL3Ibt/LamYfXUxmu4TMdieZ7RIy251o8YlyoP6rXKo/lstFlvyI7LcaPb8Gnb5O1CDLpclyUm5E35/MdBEyXdPwOybTlO8l8wwSHlnOI8t5ZDmPLOeR5TyynEeW88hyHlnOI8t5ZDkPJp2GSadh0mmYdBomnYZJp2HSaZh0GiadhkmnYdJpmHQaJp22pmvfmgGeAk+DmeAZ8CyYBZ7TeWTOPDJnHrprEbprEbprEVnUJYu6ZFGXLOqSRV2yqEsWdcmiLlnUJYu6ZFGXLOrCM314pg/P9OGZPjzTh2f68EwfnunDM314pg/P9OGZPjzTtw7rYqsUHAFHwTFwHJSBcsCeIDMPJTMPJTP3JDMnyMz90X9J9F8S/ZdE/yXRf0n0XxKVkEIlpFAJaVRCigyeF9mpfZRCCqWQIpP3JJP3jGBTBJvI6HlkdA/VkIpkuNbatwUwgAmk8Mj0HooihaJIoShSKIoUmd8j83soixTKImXXpW490ISyZlw3B8RaVEYKZpAHM/Dsc7iPD8IOqqE6UjCEPBiCh/JIoTxSKI8UyiOF8kihPFIwh54wh54wh54wh542cdQmjtrEUXsgGAQG616wiV6wiX6wiX6wiDz0bBImkYBJJOxZ4Tcy5dgLwVvhtzLl2Ct5/0ovgmUkbJ4lujdpHxE5MI4EjCMB40jAOBJo4UVo4UVo4WVo4WUwkAR6eBl6eJH6vXDRxIvQBT66wEcX+OgCH12wBZYyD13gowt82Ep/2Ep/1VkXq1tAFz0UfeCr3pyzp1RfcDfoB/rT5wDAvNAOW9AOPtrBRzv4MBwXhuOiIXw0hK/GUX98+K2CPqzHRU/46AkfPeGjJ3xY0FBYkAsLqoWu8GFCQ2FCLtrCR1v4aAsfbeGjLXy0hQ9D6g9D6g9D6g9D6q920vcusBsQ6xWxHtY0HdY0HdY0D9Y0D7Y0FLbUH7Y0D7Y0FLbkovWTaP0kWj+J1k+i9ZNo/SRaP4nWT6L1k2j9JFo/idZPovWTaP0kWj+J1k+i9ZNo/SSsKwHrSsC6ErCuBKwrAetKwLoSsK4ErCsB60rAuhKwrgSsKwHrSsC6ErCuBKwrAetKOOdh02/ARXqR0xJ0pe/uXPcAt4O/UNaT9ztAL3AnuFunYWgJGFoChpZw7qPNRMpfou7LepnzCuevgsM6GRUiBwaXiDK3aDW9KFpduO71usC9AdwIOug2MLs2bmfO79XF7lAwHHzL9O7n/GEwRngwPg/G58H4PBifB+PzYHwejM+D8XkwPg/G58H4PBifB+PzYHwejM+D8XkwPg/G58H4PBifB+PzYHwejM+D8XkwPg/G58H4PBifB+Pz/h8Zn/cDxlddTNAXG11Ea6ObuN64Vdxr3CauMLqLi40e4ibzT6KD2UvcKNvry2UH/Qe5RM+Ty3VruUN/DjfMlkQ4uVtPlkX6U7lH1JFp9NZeXSoaiAmZFWK+Xiv+ptfS+6UV3wZ7Ab2fSe9n0vtlRi9dSm7dxSioOVRZe92SUS5hlMFymV4q3wfLM8XyQ/02OW6j/FivlCv0BEZ/iJGPyl26kNFbMvpERpeMPovRVwhHrtJz5FfYhJKXa3V3uU4vlglabdCbyYr58NT5+hNs+4SaN5M7V1F7OrWHy7WZDLVfoPbV5NG3aXEPLZ4Ov9vxbKwdSTavR/a+2mxNJu+le5l9hTRfhSev0LeZn+oZ5lbxW/MwGTlbVJJn67lymfDI0mczgzcY6VP0qJRr0Zrr9Vtk6Qi9Z5hRgkw9vCJTywpNKplZodzDrNKU79X7jJuEpReLCLCBAg6IAhfEgAfiIAtU0ktFZdBSbxa/Bw/qheIh8DB4BIwBY8GjYBwYDx4DE1jDxXqNWKLXGKbebEhggQiwgQIOiAIXxEAcVAZVQFVQDWSD6iAH1AA1QS1QHzQADUEj0Bg0AU1BM9ActADX6XyjHfgzuB7cAEaCUWA0uA/cDx4AD4KHwMPgETAGjAWT9CZjMpgCpoInwJNgGpiuN5nn6IXm+SAXtNPvmY/qlDlOp/Dy9jyVYvysHB9byJMoxsfa4mPlsjRTJI+wI45qJY9ljsjjmc2yTNuyPFMoT+hcmaFc61pWJFNk2fpyS2llOZkjVjSz2XK1bcUyhZanc6045VnUG6QXW4PBEHAPuBcMBcPAcDACjASjwGjwot5szQZzwFwwD7wEXgavgFfBfPAa+CtYAF4HC8Eb4E2wCLwF3gbv6XxrMVgCloJl4H2wHHwAPgQfgY/BCvA3sFYvtNaBBFgPNoCNIAk2gRTYDLaAfL0wUqYX2xLgv3ZEL7Wr8l4NNAFngHPBb/Rm+0LeH9P59jQwg2vmac/lnPnYzMdmPjbzsV+nbCF4EywC74LFlC8BS8EygO02ttt/5/wf4AvOvwSrwGqwAWzUm+wU9wrBXnAAHATfgEPgMDii81UWqAQqgyqgpt6kaoHaoA6oC87Xm9WFoL9eqAaA+8D9YDJ4Dryg16j5vB/RC50WOt85U292fs37Oby3AW05v1lvcrpzvwe4HTxK+QzKnwJPg5lgPijTm6JC50er8M7+irKvorVBXb3Z7a5T7p2gN+gL+oFBgP3ust9d9rvLfnfZ7y773X0cTAATwSSAve4UMBU8AZ4E08B0MAM8BZ4GM8Ez4FkwCzBH93nwAngRzAZz9MLYNToVuxa0Aq1BG9AWXAfageH6vdgIMBKMAqPBfeB+8AB4EDwEHgaPgDFgLHgUjAPjwWPgcTABTASTwBQwFTwBngTTwHQwAzyl3/PO1Auzovq9LBfE9HvCIlcsJPKn5Xrxa+JyuXhSDNMzxXAwAowEo8AxnUI/p9DPKfRzCv2cQj/76Gcf/eyjn330s49+9tHPPvrZRz/76Gcf/eyjn330s49+9tHPPvrZRz/76Gcf/eyjn330s49+9tHPPvrZRz/76Gcf/eyjn330s49+9tHPPvrZRz/76Gcf/eyjn330s49+9tHPPvrZD76Fy/gEOz/VxWjWYjRrMZq1GM1ajA6dgQ6dge5ch+5ch+5cZ87RReG/jzz5r462m0f0drJZkiw2U64WDciX28hgj6HhZqLhZqLhZqLhitFwxWi4QD+l0E8p9FMKzeSjmXw0k49m8tFMPprJRyPNRAfNRKfMRJPMREPMREP4aIRitIGPDihGBxSrM3RKnRl+H2cx3D/g8il4dgpunYILp+DAKfivD//14b8+/NeH//rwXx/+68N/ffivD//14b8+/NeH//rwXx/+68N/ffivD//14avF8NVi+KoPRy12BtP3fZy/FHxrmvbhmz58sziazX7qoGfAMWfAKdfBKdd5I3WRNwqM1kXxbL09Xh3kgAagIbif8tl6uzDJKq+R1+Fxcom4SC4Vt8gPxPnyQ1GT9X1XfgyTWiFayFWiDWvdBl0fgTFciravKhPiPNb9a5hDfXjODkoLxBnwhTbwheaySFxJvx9XfJZ9JiN9pOdTf2o45kLu3QmrWCqyKPucq9XB91L++Lt0jV4i99Tfp4s957I7LmbUVuTDq7HhZMm5ZMsjlF5OtlxKtkyH31G8VxiMXCDqcnVp+JliDeo2w4bgtwh2i7Oo8WuuVotcZpjNvfrMNfjWtw76SzlItMT+j61L4GsmJZ9x9Q9qk5vghCVc5XPVW8S5Os7VZ6KFsESuiAAbKOCAKHBBDHggDrIYsb2oLjvC8bqA3sxpKTzwQ3jmR3qNNUjkWoPBEHAPuBcMBcPAcDACjASjwGiRi5bPRbPnotlz0ei5aPRcNHku+jsX7Z2L3s4Nf/8iDrs9xEj5zGK3/IAnGfyayUf6HdjtXuY+iDVZgl3vU4vZMve4qGp8JZoYa8Q5rEwX1uGPsiO1OolOskv4HXOdZG/9UfCtRHKI3iGniQvkdHEh4/g86WYwmQXWReI8q6U4h9XqJOrToj7jnM/THCQaMtK+YPxwpHjF75p8KjvT+hbqd+P9Vt4H4WFf6U1w5GL48bHQfzYIh1ZS2MEvoVA7h5o51IxS06dGicgRBURROJTYBW8awEjBMx2i18G7i3nqlYi4a8L+EjzB9bSiz4ARR6rqcjR8ORq+HI1cjkYuRyOXo5HL0b7ljNleFwX/xxM9nsFOUWFv6/UhUeMHY3YmZnUDfZjbIJj4an0A60qYh4/HVWfsw7Raybgxxj36s+PGGHdH8Nss9FaVcSP0eJgei+nxED1G6e1AxSzK2WftKQ2+L7AzTL4bGMCdQaIWLaNYbNOylJbltIxjSyZYNVqWsSsKxFViJ9gFjuHZx0EZKAcniA7tUS4d9DmyM9HiFtFVduP9Vt77oH0GYM8QPVuOwC+mid/hDxez4l8xYsvw2azVz4ajJfQG9lw2Kud4hY+cZ9G3lQFatIhUFVepjqAT6CJaqOlgDtjG9XawA2CnKqHsEO+l2BZ8/2MJlh1jzsew7AzmfQzLzmDetZl3EDEc5usy10K5UVQOvW4ZLT6mxU5a1KbFTlrUpsXvqF0Zm3eHnrdWl2H3UVruDFslwt8l6Mh4nfDkLrx35X0wUXGHaEzEKyHGuETGWkTGKsS7ZeEv6gTPL0UtSUkJz6E9Zx3CvRF8G16OHIhX3UO+243dRYy4R/uhv22j3U7aufTu0LPJnZSoJXroA+J28BcwkKffnufZEbu6gMF4ZlC7AC/ZzUoXYtMe9GWaXvaSJy8RNSKV9YFIMdinD9i9QR/QF9wNBoMh9JtV8ZtASXpO0XNKDmRWg4n5O3iOBXjRTnZQOFvicBFrtEd/EWrxGthXhn1l2FdWMfvgM+Wt9LKVXkx6OQMbK9PLEXrJ0EvwTfMOPWwPfo8I+8qwrwz7yrCvDPvKsK8M+8rEWaKHaCVuB38Bw0SeGA5GgJFglMhjxEqM+CtiVoQVbkfMirDK7YhZL7HSb7LS7+Onn+KnV+OnreSrejJz+gcZovlJa8hbgTVFsImLREt8tKV1iU5az4k863nwgsiLVBatItt4L+Z9H9gv8uzTwQWgt2hl9wF9wd0gsM/BqtIKvzEr/MYMn1Wwgnt0YfhpxALsnldRK6eiVg52+9Q8L/wEYo9eh2f0zqxAC+5D+21D6+1D222zTsvswtd6Z3xKSygpsU7Tl9Jr78xWWco6l9G6nNhwQq+yIvoIuvCoFdOHqLmKmleGbT/i7hpK1lDihm19eZzxyliVE3o9GjNjRYVN2wy11qMlM9TMJS71zuxmlAwq9RCWFctjvJcxajmeebJlOaNmUKeHsLjYcnh3sSJG+cmeypnBYbyuN7r2iDDopYReMvSi6aEoHNsWBq1LaJ2htaZlUYUNpwfrlJmEDTto3YTWm2ldKo+zYwPry/HjE3hcBp6g9Qls2UFvTehtM72VWlGdCGcV4zl7ojJKOU3PJ7Dpr0EW1SY9HsWOfJkRJq2OMna+Fef8NN0oqJFZTY1CxgtWKkWNQvoMVilFH/tZ3X96Xjz9iudE6595PmHd8LlQ92eeB3P8Pz4H4um/uf5Emf/yujPHn1jv8M4p11lkWdkialXHvprCtWrTWx3a1IUz1OO8PvcacK8x95py3Yx7zbnXgnxgWTmMUIe7DXlvxjPxrGyu0BBWDcavzQh1GCnoqz7lDShvRHlTyptRTj88haB2MHKdihrBSEFfVbHL5O4uK4eSGqCmqI99Vam5iz7rY5+JfSatdlkNud8INKa8KXWaUdac8xbBr5LTSz62BjM0rVrYWltEKnoJWudjfzBD02rCvabcO9naZL7ZoDq+l4PNNem3NnOpw9Ovy1j1gnlxvwH3G3K/MfebUtaM+82534L5MQueTXX6zaG0BqipN2BDhtXZYdXlWdZjzvWp04A6DbnfCDSmThPqNKVOc+q0ILMFz8kL17WmyMaOYMWOYkc2dsSwwwvXtjHXTcMVPIoN2dgQC56KkOHca1es80nrg9WT4bxPtiipsNoUlf5Tn2DX+qzfP/kFu/1sEf93fYNW5wj1U/7B3Wai2n/LR+jtV8z6P/QTWp8mqvxffYVeLgpm9N/xF57E38Pn+B/5TJgb4v+u34RR/TRZmtlDJO1GxKlLVGstj2dKiGpXyPJMmujTg6jWkKjW0opk9hBRuxGN6hLVWlvRTAlR7QorlkkTmXoQ1RoS1Vpa2ZlSVuQsVuR0VuR0qybXtfSvWJEsrDqXVWnOqjSz6lPegHoNqdMINOa6CfWaUq8Z9ZpTrwVeE0W5eWiuXBn8rs8KUQ22mw3TbQqr+B1cYSVsr1L420JLjC7i90Y3caVxqxhv3MZ7d5R7e/2MvBEtcpNeAvN4JvylutP/Ra2VYa3gN5A2hqXfXi387spEyS83PtQLw7Pg1+12cFYJlXyWEKIlmvQM8Qde54hrxfXiXHGjuInSm+FyF4s7xGPiGjFBvCruFkvEcq4+5DVZ/F1sEFNEktdzIh918rwopMdXjDpGHbHWqG+cJdYZrYzWosBoa9wgdhkdjc5ir9HV6Cp841ajhygxeht9xTfGYGOGKDWe5lXbeIZXHWMWr7rGK8arRj3jQ2O10cA8xzzPONs837zQOM9sabY0LjAvNXONC80/mnnGReaV5pXG780/mdcaF5utzdbGZWY783rjD+aNZgcjz+xkdjKuMruaXY0/mT3M242rzZ5mT+Nas5fZ12hlDjCHGH827zXHGDeZj5qPGz3NieY0o7c5w3zKGGTOMd8whpiLzJXGQ+an5gZjupk0C4yXzD3mXmORWWLuN94xD5pHjPfMY2aZsdzUUhgfSVNKY4VUMm6slJVkVeMLmS2zja9kjqxtrJGNZGNjg2wqmxlJ2UKebqTkr+RZRr48W55tfC3PlecZ2+T58gJjh2wpf2/skpfIS41CeZm8zNgjL5eXG2mZJ/OMvbK1bGsUyxtkB6NEdpTdjUOyt+xjZOQAeY8p5Ag5wrTlKDnKVHKanG46coFcYLryLfmWGZPvyndNTy6WK8y4XCU3mjXlDrnXbCxLpTZ/ZUWsLPMCK9s6zbzMusS6xGxvDbLGmDda46y3zTut96zl5jTrS2u1+ay11tplPm8VWdp8K+JGXPOLiBfxzC8jlSNVzVWRdZFN5prIlsg2MxkpiBSY+ZHdkd3m1khRZI/5dWRvZL+5PXIwctAsjByOHDGLIscix8y9kbJImVkcOWFHzH22srPMUruyXdnM2FXt6qa2a9r1pbQb2b+Rrv1b+7eynn2hfZWsb7e128uz7VvsB+QF9kP2I7Kz/ag9Xna1J9oT5W32ZHuK7G4/aT8pb7en28/Iv9jP28/L3vZse7bsY8+158q+9nx7kbzbfsdeJu+1P7A/lqPtT+xP5YP25/Z6+bC90U7KKXbKTskn7K321/JJu9BOy+n2AbtczlRCmfIlpVRD+apqrs6Xf1MXqUvkOnWZukwm1R/VVXKTuka1kVtVO9VOFqgb1A1yp7pR3Sh3qY6qq9ytuqseslj1Ur2kr+5S98oSNUyNkifUfep+y1SPqDGWpcap8ZatJqoZlqOeVk9bVdUz6hmrmpqlnrOy1Rw1x8pR89VSq4ZaoT63TlNr1AbrbLVZHbR+qw6p41ZrVa60dYPT3GludXBOc86wbnZ+7ZxtdXbOd863ujgXOS2trs7FziXWrc5lzmVWd+dPzjVWD6eV08rq6bRx2lp3ONc77a07nZudm60+Tnenp9XXudvpbw10hjnDrCHOSGekdY9zn/OAda8zxnnUGu6Mdx6zRjkTnYnWfc4UZ4p1vzPNmWk94LzkvGyNdeY7861xzgJngTXeOeh8Yz3mHHYOWxOco85Ra2KUwGdNilpRy5oSVVHXmhr1ojWs6dFa0VrW7GidaH1rTrRhtKH1snu929F6xe3mdrPecHu4Paw33TvcXtYi9y73Luttt4/b13rH7ef2s95zh7hDrMXuMHeYtcQd4Y62lrpj3NesD9wP3c+sXe56d4vlu1vdXVapeyxW28rEmsQmRRrGpsReiEyIvRNbHpkVWx07GHnJU17NyD+8M70rIvleB++OyFHvLq+fHfUGeIPsSt4Q7167qjfMG2ZX90Z4D9s53lhvgt3Qm+RNslt4U7wn7NO8ad7z9pnei96L9gXeHO81+0Lvde8t+zLvXW+pfaX3vve+fa33gfeB3cr7yPvMbu194a2123sJL2F39jZ4SfsWL+V9bXfztnv77b9433hH7SHeca/cHuFl4sIeHTfjpv1A3Irb9oNxJx63H4lXjufYj8VrxmvaU+O143XtJ+L1403t6fHm8eb2rPjo+Gj7ufj98Yft5+Nj44/bc+OT41Pt+fEn49PsBfGn4k/ZC+Mz4zPtN+LPxl+w34zPjr9kv5tlZmXZy7KqZtWwP8+qk1XPXp11JOu4vVaYLvxdCO/yKteJ00RD8V/600t0gd4tztFFnG8+ZY2Mnqlf51Wix3F1ne5Em5WcFVXcL9Jpjtsrrkp/1D64m9aHeP3vPXWKcb4BT/ysvcPB+z8o2coIOcEoP/mH8qLeJl3GuUcm7yziXBf80MZvZ3OKMb/Q27Svv6SHHcy28Ods/AV/Dr1Oq+h9py7WK/WuiquDPxp9L8jXX+t1+qi+RkRZuzNEo+/dz/zcYPowz+4QPfyv5aw/jOXk3bl6rvDAd8/wn1rvA7t0ij62chmBZzUXl3LWILz7N71Kb8B/8B10+6nHf1W/qGfxPhbk6l/rwXoQZ99bx29nz1nxj1pn9Ce6EA/6RP8DO3gOwer9sNV3db/4maUQ6FQhssKzCRUlPn1/+a1vft8rKkoOMfODrP1m/Q18vxJF5/MUvhtd7w2f0N5va/+ofbHewx7zv13x4JPR8H3L9+v8nN0V9VI/uOr/g6vPflkf/J0b1q/wNL2R5+fojT8z8pHv7e1zxe9+pvZr+uVgR+tPfrFNP2y/O/COwGd/dGf9L2jNzPQj4dk7/7yf9W2/oD0+ot8K49bW4Ln9u3/6lTCavsK6/vjP+UU9lOglYdT8hX5xih4O/nKvOkXrigir1/5HrReGx41B5Piv//3mF4y/+2Qu02X40Tf/9gjev7zbAvw5HOXbjLf95KvifoNTtDmdVwNep//AynkV76tPvv5F+3NP2b5idfGSw0Snwz9lMPFznz5ABNsW7qnAq4+G5VPD2/X1h3q5TgQZ/Sfal3/vfLyoRfy/SbQNdkhFWT65YemPY/F3bcq+dz6JzFNJXC26cb6goqyA1Vvz01n12/FDj36K9lGiz4CKSB6Uv6lfF1K/+5Pt/9kLI7CnnpQ/XnH/M/0p6//3iqsfx+/j3zsfR+taorUImFBuRdn7ejE9/PUnx9956vIMTyyIj7qdbqN76LYVtZ/7UfsHiGJz9V/1VzrxvWJT3CIeFI9xNkFMDP6fGfEanrtAvAs7XCqWi/PCTxUuECvEBnGh2CR2iWtFoWGIDkY3o5sYiKL/sxgUaHkxJFDx4h7zTrOPGIoeT4qR5mazQIwyi8wiMcZMm3vF2ECbi3FmqXlEPGaWmWViQqDNxcRAm4vJaPOYmCobyAZihuwsbxFPyW7yVjHTesd6RwSqVotZkaqRquIL+237bfGl/b69XKyyN9tbxFe2trVYG2g6sS7QdCKprlPtRH6g6cTXaLqbxLZA04kdgaYTRYGmE+lA04m9gaYTxwJNJzJouvGGQM1NNmw1Vc0wooGmMyoFms6oHGg6o4qareYY1QJNZ1QPNJ3RHE130DgLNaeNto50IkYnx3Fco4vjOVnGrU4Vp5rRw6nu1DB6OrWdusadTn2nodHHaeI0M/o5lzq5xkBU2+3GYNTZWONe1Nl4Y1igv4zhgSYyRgSayBgZGx6bZNwfKB1julfZq2ks9V7zXjP+5hV4+42VgdYw1gVaw9gUaA1jS6A1jK8DrWFsC7SGURBoDWNPoDWM/YHWMA4EWsM4FGgNoyzQEUZ5oCOME4GOMM2saFbMVFnVs2qYbtbRrONm8N8UNoYeY4QeY+Ix01AU08XT+PRMMYeSubyUmCdeJUvNx5/s0J9s/GkZu+59vMoNvcrFqz6n/O8iIWJiPS8TL9sAq94ktsCu8sUO9lgBPtdIFIoD7PiDvBqLb8QR0UQc5dVUHBMnRDORwSOrhB5ZL/RIGXqkF3qkh0f2FpXNPvilF/plVfwyX+SYW82topr5tbld1DB3mDtETbMAf60b+mud0F9rhv5aPfTX2qG/VjO1qUU1Cf0X2XityZE/UR3fVZzz8EUtGcWPs0M/roMfdxbN5S14cwu8uRvnt+LTLUKfrodP5wvD2mrtEqa12yoUtlVk+SJmlViHRH3rsFUqKllHrHLRwDqB9zcLvb9R6P31Qu+vF3p/vdD76+H9fxTZKk/liZi6Ql0hLHUl+yHCfriGkmvVtZS0Uq2EUq1Va+GoNuyTJuyT62jbjt0SDXdLLPgERMTVTeyZLPZMJ9FIdVa3iEqqi+oimqmu7KIq4S6qEu4ig110F616q37U6a8GUDJQDRSmGqQGM8oQNYSe72Gnxdhpw2k1Qo2gfKQaSf1R7L14uPeM4PMU6oxVjzLuODWeuxPVREomqUm0mqwmU2eqmkbJdDUdS2aoGZSwP4Ub7E/6maVm0eo59Rzls9Vs+pmj5lBzvppPyWtqAW1fV6+zDgvVW6zM22oxdi5RS1iTpWopVq1QK7H2E/U5fa5ReKZar/BJtVGl6G2z+lo0VNtUAWuyUxUx1h6VFo3VXlXMSu5TvmiqSlQJI+5XB7H5kDpEzcPqMHdLVSnlR9QRLDmqjtH/cXWcnstUGT2Xq3JRTZ1QJxg9ozK01UoHv6/qRES9IJpwJJpwJJpwJJpwJJpwJJpwJJpwJJpwJJoIg2gyhuNYZ6wwg5girCCmCCOIKcIjpozgONIdLSoHkUVIIssG4cU2xpIiHtsUOygqB1FGyCDKiFpEmQJRzdvp7RTZ3i5vl4h7u73dIscr9Aq5W+QViZreHm+PqOulvX2c+55P/RKvhDr7vf3U+cb7hvND3mFR2yv1SqlzxDtKnePece6WeeUi5mU8LWrGA2ldLYhfHK24xTESt0VVopgjasSjcVdUj8fiMWp68bioS1yrRkl2PEfUDqKbyCG61eZYJ16XOvXjDUR2vGG8If00ijfmvEm8CfWbxptyTuyjnNhHybPxWYzyXPx5Wr0Qf4GeZ8fn0Ofc+EuiehANhQyioagcRENRmYj1RkU0nMRLhtEwQjScwflM4qAM46BNFHyN8wXiPY6LBd5GNPyQ84+JgVKsJA5K4uB6IuYG4qsMP793wjgowzhYPYyDOWEcdMM4WCOMgzXDOFgrjIO1wzjoGZWMSiJudDQ6cuxt9OF4tzGA4yBjEMdxxjgRJ0q2E2YYJaNEyR4cgygZC6NkNIySWWFMzDaLzWJRJYyDVcM4WM08YZ4QlcIIWFla0hJViX0O5650RRXZUXYUdWWn8F+yBbGvXhj7GsgusgvlXcN/3RbEwXphHGwgb5PdRZ3v4mChkETAQ8Ih9pULN4x6tcOolxN8asv+/IP6A7v3cnW5kGGMc9RVxDiLGHct50F0k2F0s8PoVlO1VW0pCaKbVNer6zneoNpTM4hxVhjdcsLo5obRrTbRrZvw1G3qNo7dVXfq365u59hT9eQYRDonjHRuRaQbpAZRMphIZ4cxzvkf6r4DPopq+//MnZ3Z2c1sMilAEnpvMQYIASFBQEQECw/BXnioNKUISBUQBEVFBJSiIl0UUERAEOQHFuw8RHhipVqw8iwI9vv/nrOTsEtC5+n7z3z27J1z+925537PlO8GhwSHIO/Q4FCkL7R0IxGO2rjRwTsQZkvniKUzxdKFg+OD45HrvuAEaNjqOWL1XN/qTQ5Ohp5tnyO2L1OsnilWLxB8FFbP9K3e7OBshOcE58CizQ3ORXq2g6bYwcwYO2iKHXRgB9cgHLV9a4MvIvxycDMk2z4Htu9DhNnqlRKrV1qsXlisXhmxeuli9TLE6mWK1XODPwZ/RC62faXF9qWL7cv0bd/vsHGm2DjXMRyDzKi1Cg8OD6FQeFh4GOTw8HBKCI+EbUoIjwqPgmZseCyFxE6phMkJD5ESi5Pmfgtb47nfuz9QitgXTyxLGizLQYR/dn+hJNiUPzHP2aYkR8yISUmwJkFKFDuSInYkDRYkBWG2IKmRMpEySMO2Iy1SPlIe+oq+7aiMEth2pIjt8MR2JIvtSIHteBRlzorMQq55kXlIPx9WI0WshiJV/zu+8tro83PyqC1dfiSc///Hpr/QX/LHP9pVkt/F13nkWt+Jlv0pX+ESz/sFOf6osE6Rm33v8xv2P8UX/VDv0Xvjr+gcu97CK3S674m38PRuuh08T/4+ou9dLMcX8LRfO/nrMkXlfHP4kf5epK+Hr7gfI7tH78On6MpejCeaFpP7Q6R6n/i6RxmE/CuMhd71X7SFi1oTW69LV4ju65KuLuivil+b0z/o3foDxBS7C3GyW+FV8vgjnj/+WR1zvQBtN4vC3xzpV9Y7i1/VPF1byXdwjplrvp4j37/L1fDX+cPXh/RChN7w0xSeWTyDf9JvF+pPqJ5P5Rzdc+iYr4Lp7TEp7pPrQXytfKeEPkVrYi2UP77H+/vKVes9x0534hvOtJhy9QH9Oz6/8rUu/UdcuqPdl/of2/7iOX8cm55xCpnbl1DeHqqFc7DCKZR69K0WiW1leyo2tcQNtuG47yGe+lpxWHlxrYqde8eZf5lep5f69wfS9Cy9TrSf8Ooeu3qfFH54H7Zxl+CHvYJNxJrxmqR34Xuxn2qf3G97E59XsO+Nv3ItliyDCq/NbsBa8IZ+B58Z0LbVW/Vbov93FEXIHe0rTrylxVr+ZdyRrKH6mRhNTz1P99J381V+3a9I2xS653jeFb/rSHzPtfi90K/0C+jLh6dvphaeD7yOwYIV4sI3yL8/G9sG2OWieyN8j+UYJf/rdLXxZDeMUkS+J/H95mKxA/SGuLTR7+1Y3T7hM+Qk6nuXz3rBWzJOHML6tssfNUjdQ2+S3/sgmSWsYRHKKVbmPsyDb/27SyYsR+Fdp4PR2FNf3w7dh46/X1mIUhh7ybr9KfZ9xbDnTsGeJcx2zObTbLtK2g6zZ1uLxf9+uMbX31Kynk7kPvoJb7rrCWaIPmMxTo+V7/+IBVjOH4Se0CujIYkrxGdyvxO/1OqTaN0y/Rws5rP+0Qa9iPj5oFUcxgeWE1ZsA6xEIQr+D6zvW76diN4/SyxW5mv6Wb3eLzONj3x9nHXQ+sRbK/kwS/UHRUeFvstuDhX6lVEkLhbtDT4/os+I+PPnB7HI1+j2crSe+G5eX3wGITRRT8daN8gvJebZFozA83roSbT2n3q4nqt7IfQSZvVc3U3sw31YjeZinNfrGbo71tb/8D1A6dkavUTPjtbsrxqZ+qXDytyrt8GrjM7chkUhH3fqX6Kf40fMcWXvl/le9FRQ/Col63SR5yvId5c89xD7xEV2/BMrf9UWfxdXnmD69tgtkR4Ve/7qr9jiPVkeVZzDPx7Lfsqvc9o83RPZYvEHZgN7We/h+wh3uotSfnXq7dWP6tv0GD1Nwm/jfJ/DT8r461AUL/6kV+Cz7tTqkZJyok+ynFIZn+jPsRLK+ojf9HOch0WYO/qr6++AOb4rCQGecF0ngbljcr8V/VXRFraD//KPdvrzx2/13zOfS9p0V32jXqtXkpKj4XogrHXnKCLQq/TPOBqvb9Fn6aqwo7l6kO5xCnVF8WOlU2qvb5OiPm3R84Zz4mNP56bnn4Yy+OzdFrXqwLfFfn2J36O3HFqF/94NrfkIc06ueeIcZk+xyFOJIl3EvobPEZ5V/as3tHdC7MwFvlrzd7bnyBtm2wDGTtEnXXV/oKN/Y/ZF49aL/Eiv1lfpuxG6X38c1Z1kXa+dentPsMb9sc95/e9uRRj3h1N/urKkZ91P5xZFh8Dfn2HVOw1XLI71jPJR8x7nGaWflmv7X598TTFbxmkp5bg2YKFTRq560uloyTHq8C0d0O0pX5c/Tb/SsWr5BMj2vzxTTt8G1LP/tI1Myim043TM97/wfsTJnI3APXuiOf03Owqvi2yS+wybjpq5t5926YnX+1dvJ/MORLEyjng35Ch55Go9XymKesLRKzpF94LDR/OP5dpuBvUi+8Trlfwn8ZaX3itrx6F3yQqvyR2vb5dA5514rX/rVvpkM574nSfipxr4vnSRZ6+fF/kt7PMx70b8r23A/T8d+Z2JmHQ///fbcnzb8VnIk13VS3xX6ph1yRMEh94dlDsWRWdWuMRMhWn5WlU5ugpz7m/Y4rF71GrAezqGnZU7MX/D9T79/Wksazf5V5RLfOOotrzlxHfQ3y4h9lhl83tUuwtzFobkCv9uX1NYZ1Op67B2xRzddajMwrbw+1rFWsVvZdXjuzQn47XrGXqBXlP0HpgfYkTgX9N8u6gd9Yq1d8GJ1xeX/ySeFNJb5K7Em0XH8gwQ8KZ93Hf6juPtvSPUXeK7ycfI87lcteKVXGyBHG3A3ItahvDR8KWsKEnU7Pje1ywh/8k8/7CV37eUz4HosUj/qvnRrYPfl3Lxzxvh/PpevyOfGVQGmPRL/27SruiclnOt54m39Bj9iN5hi/HWdWc9SD+uZwpvQNEzPbqdXnaCJW/4axAzt/HI9eg/S7qrHL2jeJju+2PfxTnZTZ6R8S2z/gF44gfgo/f1h4cskf4GOr5n3FhfKsfLcQZs09foV/hYr9cP6lf5irnEPRBX9vZC/Qm16GLdS4/Sbf0jCeEM7CbhBXqe7ofzYAbQ2hqsvJxipX5Wr/BXbb46X5py5J7zYH2z6KLPI84Ern6Ufw9mSSh6CijuWpD+pfBt/hNq70N6IXy1h/2jTVL3DLHzm2QM+O7rUr1fvygJom/t+08Y+GdxwxOv9e/a/itvYxevZXehxYred/67tpO5T4Vf+luKuepQxJBwPGtPKvHzO5dIuBzlwvesJHk/A+r4TFaTstRAv4sZyvt2vUOfhfnSjVwdXdd9PxWzM+pTlfGPl/l3KhQVvTEt+ieP0g95tkIPxTrnX4HULfR1+LTTXSlVR9fgQg6N4ficq5vqTtp/s0G/rj+WpyV4xn6FNWm377/WpVqyctaVVEe/ulFyu+boeZALi47XsC8X92RFRz9wFXWgxlRfeGKqS0xs38N/btEJfx6UlXKtvkkv5zVMj9B3cAil3hNXbfQZsJtOor036z7ofx85cBC6WezmHbJSv4Pfcu+f0TfpVwkrSOEmI6v7+2Uch49XYt1fHjtNsTzfyBMBjBPkbJKzeQOOAxLtHhXvcK4kykfrFW09Bo/dlT6P3Wg631BGKbpB2OkGCzvdOGGnu8e40riGJho9jB70oPDSTTFuNe6h6cZ4YxotYXY6WsPsdPQ8s9PRWmano/8zXjTepvUqR9WjTSpX5dFmZqejrepsdTb9m9np6F11vmpH76l+qj99qAarIfSxmqgeoB1qvppPe9Tjagl9olaqVfS1Wq1W07dqrVpH+9QG9Qp9r95Qb9CP6l9qE+1Xm9U7dEBtVVvpZ7VNbaNfTNeM0K+mZ6bQ78wwR1oY5kgY5iyzmlnNCArDnCOscglmnplnRIRVLlFY5TxhlUsRPrlU80rzKiPNvNa8zijN78oZ6cz6ZmQy65uRHVgVWGdcyaxvRhdmejNuZKY3o6vlWclGNyvNyjB6MN+b0cf62NptDGS+N+M25nszhjPfmzGC+d6M25nvzbjT+sn6zbiLOd6MCczxZkxjjjdjFnO8GbOZ482YzxxvxmLmeDPWMcebsZ453ozN9jX2ncZ7zO6mDGZ3UwFmd1MWs7upILO7Kceebc9TiczrplKY102lMq+bKse8bqoq87qpmvYb9vuqNjO6qbOY0U01sffaX6t8ZnRTLZjRTV3IjG6qPTO6qZ7M6KaG8PtxaoSjHKVGOrYTVLc7CU6CGu0kOZ66w0lz0tRYJ93JUHc65Z3yapxT2ami7mbGNXUvM66p8cy4pu536jn11CTmXVOTmXdNPcC8a2qK09xpoaYx75p6iHnX1AzmXVOPMu+amsW8a2qu09XppuYx75p6zBngDFBPMPuaWsjsa2oRs6+pxc7dzt1qiTPeGa+edu53JqqlzL6mljH7mlrO7GtqNbOvqeed5c46tdZ5wdmqXne2Oe+pj50PnI/UDme7s1ftdr50flTfMCubOsisbOpnR4cM9QuzsqnfmZVN/cGsbKYRyghVMCPMx2amhqqEaplpobqhbLNsqH6ovlkx1DDU0KwUahRqalYOFYRamjVCrUKtzKxQ61Ab84xQ21A7Myd0Yehis37ostDlZsNQ71A/s1G4Uriamc/sbmYLZnczz2e2NrMts7WZfZmtzRzCbG3mKGZrM+9O6JhwvbmY39ozn2e2NvNlN+gmmRuZp818173K7W5+xzxt5p/M0xYIME9bIMg8bYEw87QFEpinLVCKedoC5ZinLVCeedoClZinLVDXne8uDmQxT1sgl3naAk2Ypy1wNvO0BZozT1ugBfO0Bc5nnrZAe+ZpC/yDedoCHd3d7p7AlcyyFriaWdYC1zDLWqALs6wFujPLWuAmZlkL9EpUiU6gd6KbmBi4NTElMS0wmJnVAsMSDyYeDIxIoiQjMJKUsQdWLxEeXxJ5ZFAydpNSsA4HKB1rt4VVvTr0NbAHqSZWQYeyYCVDsIdNyYU95P95aCb/gMEWM1EsZhIs5qXIdRn2ZNjNa1DitXQ9NacbYENbwIb2A3Loj70lDaDBVIqGYC9NQ2kEah4JC5sOC+tShhExEilT3hAua3iwuWfA5taEppZRi3KM2kYd6OsadRHOgi3OEFtcD7b4Ysj2sMjnCl9ohnEN7HJ9scv1xS43gF2+Dfrhxl2Ua4wzxqHMu2Gpy8JS3095xkRjCjUypsJq1xOrXU+sdj2x2jmw2gsRXgTbnQPb/QrWg1eNV6mp8ZrxFuUbG2HNC8SaK1jzXMiGsOm22HRPbLoSm+6JTU8Tm36O2PQzxaY3FpteDjZ9IVVUi9QiKq8Wq6eosloCK19FrHwVsfKVYOXXQv4fbH0FsfXVxNaXh63/F+QmWPxKsPibId+B3a8gdr+C2P2qsPsuVTcjsP41xPrXEutfE9Y/neqYGWYG1TUzzUxqxSsBwlgJqDZWgpqQtczayIX1gLJ4PUCuJmYTyKZmU8QWmAWQzcxmSIO1ARJrAzT8rvV58q51G3m/+jx5v7qNvFPdGuvESGoWuD1wFxlYLSZSUmBSYCqdFZgWmE6pgYcCM6lJYFZgDpUJzA08RRmBJYFnKRMryiqqz2yilMvrCuXzukIuryuQnuVRCyvZSqZ6vLpQfawu/ybTetd6lypZ26xtlGS9Z71HAet96wOysOp8DM12azs0O6wdFLR2WjvJsXZZu6iUtdvaTQm8JlGE1ySk/ML6gpKtL60vKQUr09dkWN9Y36LGfdZ/KNX6zvqOyvBahRp/sn6idOuAdYAKrIPWQbTtZ+tntOcX6xeEf7V+Rfg36zdqZv1h/YGS/7QVpdqmHaBmtmVbZGCFCxIWC9uhiB2yw5RkJ9gJZNqu7VK6HbEjVGAn2olIg1WQ/9XdTkXeNLsU8qbbGUifaZelFLucXR4lV7ArEDOgVoasYldBCVXtqkhfza6G9NXtWkhf265NZew6dh3o69p1KWBn2VmUaJ9hZ6P8M+0zkTfHzkFp9ex6SFPfro+8DewG5PKKi7oa2Y2gb2w3QcqmdlOUkG83J8tuYZ+LlK3t1hS0z7PPQ5svtv+BfnWwO6H8a+zOqP2fdhfUcr3dFeV0s2+i5vbNdh9qYfe1B6DGW+2B1NIeZMN62EPsoVTaHmYPQ2tvs0egLyPt21HOKHsUShhtj0YJd9h3UII9xh6DWsbaY5HmTvtO1AIEQGUZAVAOEMAkyrUn25OpAeMAygAOmIbY6fZ0yrQfsmEH7EfsRyjfnmHPwGjPtmdDzrHnUn3mgEV6YAWUsNheDPmkjbPUXmIvQd6n7aV0rv2M/QxKXmYvR+xKeyXyrrJXQf+cvQYpn7fXIuV6+wXEvmi/RHlAGK9C/5r9GmUDZ7yB9G/ab0Lzlv0WUm6030bKzfZmtOcdewvSbLW3ooX/tt9Fm7fZ2+gM+z37PWpkv2+/j7zAKMi1w96BknfaO5Frr70XpX1hf4X0X9tfI/339k9Ic8A+gNE4aB9E2362f6cMxjHUADgmgnBiMJlygynBVCobTAuWobxgerAcNQqWD1aiekA5NSk/WCtYm84P1gnWpabBrGAWNGcEz6SCYE4wByXUC9ZDyvrB+kjTINgAsblB+I7ARmdRw2CTYBPU1TTYFOnzg/mILQgWoC7mFDAYM1F9xkyQwEyQwEyQwEyQwEyQwEyQwEyQwEyUyZiJyjJmggRmojMYMyEMzET5jJkog7lqKdtp4bRALiAnaICckAbICRLIifIYOVEjICd4Ak43pxsVAD/1oSSnr3ML0gBFIS9QFPRAUUh5u3M7yhnljEJ4tDMaeiAqtAeICunvd+6nXGeiMxG5gKuoAXDVVGimOTjrnOnOIwg/7jyOup5wnqDzGWlBA6RFYUZakEBakEBakEBakF8639PZzg/OD6jlR+dHlAPURTmMuhDWjub/3goRnRsyQgZlMAKjskBgQUgn5FDDEDbKCYVDYYTdUCJkUgjrb8gLeZQXSg6lQJMaSqX8UFoojRqESoVKUUGodKgM9BmhDMoNZYYy6YxQ2VBZhMuFyqGW8qHyiK0QqgANsB3CwHZoCbAdJLAdJLAdJLAdJLAdJLAdJLAdJLAdJLAdJLAdJLAdhRnb0dnAdpeQF+4Y7kh2uFO4E8KXhi9F+LLwZQhfHr6S0hj5QXNXeD6p8GPhJxEG/kMY+A9pgP+Q5pcEg1SCSsikcxgFUuModwOjQFKMAiGBAiGvcq+i8u7V7tVUyb3GvYaS3Wvda6mie517HVV1O7udqYr7T/efZLpd3BsR7up2Rfpubjek6e52R5qb3JsQvtntRdXc3m5vpOnj9kWafm4/xPZ3B1AFIMtB0A92B0MPfAl5m3sb5HB3BJVzR7q3U2V3lDsaKe9w70DKMe5Y1DjOvRea8e4ElAwMilomu5MhH3AfRJqp7jS0ebo7HeU85D6M8CPuI0g/w52B8KPuoyhzpjsTsbPcWVTTne3OptqMXKkWkOt8qus+5j5GrdwF7kKEF7mLkGaxuxixT7tPQy51n6Esd5m7DLHL3RWIXeU+R3Xc1e4aaJ53n4cGeBcSeBfyRfclqu6+7G5AmlfcV6mG+5r7GlK+7r6OWja6b0Oz2d2CMoGGUf42dxvke+77SPOh+xFiP3Y/Rjnb3R0I73R3Ui5Q8m6UtsfdQzUZK1MFYOXRVC5yR2QMVYmMjWCUgJvHUVbk7gjGKjI+Mp4qRu6L3AfNpMhkqht5IPIAtWI8DQ3wNGUxnqY0xtOkGE9DAk9DAk9TGuNpqg9k11zwdGvB00qQdBQ3FyJmxseJgo8T6QrsiYKM2wgybivIOEWQ8QWCjEsLMi4jyDhdkHFGDH+PJfw9jvD3WMLfYwl/T1j4eyzh77GEvyci/D2W8PdYwt9jCX9PkvD3WMLfkyT8PZbw95wv/D3thL8nVfh7LhT+nouEv+di4e9pL/w9mUDqCcDNESMiGD2DGhqZRiYwNCP1xkDqF1MTweKXGJ2MK6BnLN7U6Gp0BcK+1bgVcqAxFLj5NiDyRkDk46gAWPxuhO817kV6RuSNgMinUXNg8RnUAih8BeSzxrPU0lhprEcso/DLBIWfIyi8laDwc4HCc8gUFG7G4G8T+Pscwd/nA3+3ExTODEMBYRhKFoahZGEYKiUMQ8mC0f8hGP0sdbe6h5oxsz919JE64/K66mn1NNVWzwGXVxVEXl0QeU31lnoL+JuxeGW1RW2B/l3g78rCWlRefaC2A5HvVDshmcEoS1jd6qhP1WfQ7FV7IZnbrYIwG1VT36p9CDO/UQ31vfoBYWY5qqV+U78jzFxHFdWfSlMFYTyqYhqmQph5j2qYlmkhzOxHVYT9qJqZYCZAkwT0ny24v77g/lzB/R3MsmY56Bn9Z5tVgf7PNGsA/WcL+s8x65h1EM4ysyDrmQ2oATyBRgg3NhvTGeZZ8AeyxR+oZ+bDH8g2zzbPRvnsD2SLJ9BJPIFLxRPoJJ7ApeIDtAb6n0qJwP0zKUUQf7og/rKC+BsHVgLxNwXi30AFgVcCG6ml4P5WMZxMlnAyJQknU6pwMrUXT6CteAIthJ+pnfgDTeAPbCVbfICg9QF8AFt8gKD4AImC/oOC/tOtT61PgfI/t/ZCw7jfFsRfRhB/W0H8KYL40wXxZ1j7rf2QjOlbC6YPCqZPEUzfWjC9sm1g+qCg+aCg+QxB7a0FrwcFqacIUs8QdN5acHlQcHm64PLWwOLwe+1sIHJbsHiKYPHWPgrPtXORPs/OQ3rG4q0FhUcxd1BwdlCwdRvB1m0FW6cItr5AsHVpwdZlBFunC7bOEPScYY+3xwNT3mffBzTJ6LmJIOZ8e6o9FXpGzA0FMbewZ9ozgSMZK+fZc4GV8wUrlxWsXGAvsBcBxy8GSi4rKPkSwccF9gp7BXIxSs4TlHwJUPJzyLsaWLmsYOXGgpUL7JftDSjhFfsVpGesnCcouayg5MaCkgsEJbeytwAl5wtKbiEoOU9QcoGg5OaCks8VlNzQ3m5vRyzj4ygybmh/Y38HDePjxoKPmwg+vsT+0/4TCJWRcb4g4wIg4zIIMyZuLpi4RbBysDq1FGTcSpDxZYKMzxEc3EJw8GWCg1sJDi4bbBRsBMkI+FxBwK2CZwfPRpnMKJYkXGKWcIklCYtYkrCIWcIiFhYWsYuERcwSFjEr2CHYAbUzl5glXGJJwiLWTljEUoVFrL2wiGUKi1imsIhZwiJmCYuYJSxiScIilhrDIpYkLGJhYRFLEhaxTGERs4RFLElYxKwYFjFLWMSShEXMEhaxVGERyxQWMUtYxJKERSwzhkXMEhaxJGERay8sYpbwh1kx/GGW8IdFhD8sSfjDLOEPax/DH2YJf1iS8IdZwh+WJPxhlvCHWcIfliT8YZbwh50v/GHthD8sVfjDLhT+sIuEP+xi4Q9rL/xhmcIfZgl/WDvhD7tI+MPax/CHWcIflin8YRZ8mFRqAo+lOrUQ/6SlU9OpCd+gllMLWL+uU5caO1nOGfA3sp1s6HOcHN9vyXPqOw3oXPFe8pw8pzEk+zCtnKZOU5TDPkxLp7VzHmQbpx1Ku8C5EGkuci6ihs7F8GQKnPZOB3gIlzmXIZb9mebOdc51aE8XpwtyRZkY2cNpBQ+nJ+piDyfRucXph3L6O/2R61bnVjrHGeQMgma4MxK9YD+nifg2ZYW5MU88nHxngjMBkv2cc8XPyXemOLAS4ufkiYdT4MxyZkEzz5mH2tnbaSXezmXOQmcRcrHPU+A85TyFNE87SyGXw/NJcHY4n0B+Bp8nQXye88Tnaensd/ajZPZ5mji/Ob+hd+zzJIjPc4n4PC3E58kXbydPvJ0m4u3khSLwcPLh4SRTc/FwWomHc454OOfCwykNL6hMKB0pM+DhNBbfpqz4My3hz9RELXXgzyTAn8mFzAs1gSyAD5MgPkwCfJiLIdl7SRDvJUG8l/PgvXT0PRb2VS6HH3KleCxXh6+G5vrw9dQs3DPcE/Lm8M2QvcO9IfuG+0IOCA+AZC66ZOGiSxYuulLCRVdKuOiShYsuWTwfU3ybfySUTahCZyW0TfgHNUu4IWEodRSmuoB4OwF4OHXhRbAPU1d8mNrujfBhKrs93J5A6uy3VBaPpS48lj4I93Vvgecw0B0IDfsqVd1h7jBohrsj4aWwf1Jd/JO64p/Uhn9yDzT3wkupLV5KTfd+936kZ/+krjvFnYrYafBPasI/eQilsX9SXfyTqGdSVTyTbHeOOwdynjsPkj2TXPFMOrgL4ZnUg2fyJPRPuUsoRzyTeuKZNBDPJBeeyXJoVrjP0hnuSnclUq52V0PP/smZ7lr4J9nuOncdYjfAM8kRnyRXfJIO7pvuW4jd6G6Cnj2TBu5WdytSsk+S637gfgj9R/BJGsAn2Y7SdsAzqSCeSY67y92Fetk/qS/+yZnuJy4wnrADZgkfaR33K/cbaJgpsIq7z/0OYeYLrCF8gVWELzBL+AKrCF9gReEjreD+4f4BydyBWa52gQCFQbAagDkQoPAIVhRu0grCJlheuEkrCKdgDeEUzBJu0jqRxEgS9MwvWCOSGkmFhlkGawnLYMVIeiQTscw1mCVcgzWEa7CWcA1Wi1SJVEEsMw7WEMbBKsI4WC3SM9KTKosnVh2e2CjxxHA+RO6K3AUPbRy8r+rifTUQv6sD/K4pCE+NTKcc8b4aRB6OPIwwMxfWEObC8sJcmCXMhbWEubCGMBcGyLB2wIshak73GLnY87G3MjqoRKDO7ubowFrI7oENgY347ArsCxzA/qf1gtnd2oR9m7UtsDawlnPxd2BfNC1itzFq5bzRHVoug/ddgQNF+TcVlbKPynk36E16k9dTb9abvZtE9tXL9DJvkP5If+QN1sv1cm+4flg/7I0U/e0iR+uleql3h8gJkmailPOAxM6S8GyRj0uZS0T/tMilIpdL+c9JeI2U87zItSL/T+Q6kS9x+WREW8HfVAu78rpLCQtYUkWzk+6sO3vX6416o3ej1NxVZA+RvUT2FnmLyH4iB4ocInKoyFEix4gcK3KSyAdFThE5VeSjUtdMkXNEM1fkQpGLRC4WuUzkCpGrRa4X+QJLauR10cP1cLR9hp7h3cC9Qw9e1C+iByy7UyWqhH5wuKfep/fhd2LZSzS9Rfbxe8bhfiL7i2aA30vWDPL7yuGhIoeJ5ja/36wZI3KsyInSkkkSnuyPAYeniJwq8hFp+QyRj0r7Z4qcJXlni5wjKeeKXCB9eVzav1A0i0QuFvmk1PKUyGf8kWP9cn/8OPyshFf6Y8ma9SJfYEnK7EQuueY0fpqHAuaF3AKcG011U7OfXqAXeB0pG3suYirAr+ykX9Ov8f+/Q17BEvE1qAZ+BaTCr3BAH8CvwLK7aHpIuJfI3iL78D8oYeQ53E9kf9EMEDlQNIMpTGGMPIeHihwmsbeJHCWaMSLHipwg6SdKjZNEM1lSPijhKSKnipwlaWaLnCOauSIXiGahhBeJXCzySSnnKZHPiFwm+hUinxXNSpGrRbNe5AsiX+JWkYExw6zEdz+9Sq8iE8c9dU8czdKzMHpNsONX0C/rl3FUDjtyUGXsnPNCfSFVwvea6D8+6hkYdZb9mA0G6dMoDaPO9XcV2UNkL5G9/ZFm2c8fXZZDRA71x5LlGJFjRU7yR47lFJFTRc4ROVfkQpGLRC72R4XlCn8kWK4X+QJL9K+ff65Uw8792qV3wTJF+6so3eyEPpN5uXkFYvkagilXDwJmP7MfWeY0cxrZXkekD3rX41xzvO44v8LezV5fSvAGekPJ84Z7I6iUN8obS2W8u7x7Yanvw3lR2ZuI86KqN9l7gKp5U7ypOFcf5XnmLfSWUpa33FtBud4qbxXleau9F2BbXsLvdjb8+At4xbFnOmEqJc/E/fc28xDbZtFTTL/F/tvIcW4J0XdA9GeaebpLfKNJ4o5nc2P+PcaStZefYN0XywbK64j+xOefe8d/HruEdut79b2F7dFPYYdV0av1au4325miuHf99+JieUVrCRNh8X7swX4g/h0Sfb4+/7j6xhtsmawlfvlxZdXHfljaYm05vF1pUSZasaKxbXoz9i0D/z2DA8wwE+WYib55WfJ2ZOZVfjLyOFnpwsXfHtK8fXvoKVrhQ/vwsH/k+vPQv7Hpgz7H1Fw9lxph57HD783WTK/XYvHYotF12LFa8UyX9Hy+FI5rJvaS+nG0/m+OcjEebROkQ/LMc7HnOBkpxR3z+QpLfLRy9UK9kPsg4cewf1oyF9DhZctWIZ6PU86FTtgP30o6pw/LS62wx5b1o/6RQtEnt4u15dlCLrIjbG78P0FJWW7J/w4ldvl4toD/LCafX2mxLMwlb4fPVdlKyneEdpVYpj8/pOyc4oyDsWlKjHsryqF5zHr8ucFlsf2U78I5sfQ43uJQFMHKdhUM/bW8pnmdvW5YzXp4PSgRK1g/SvJu9W6j0t4IrFoVsGpNxbo03ZuLFWm+9xi1kJXqHKxUL1A7WZ2uQIn5sla6ctU9Iitmolx1j8i6mYg6/on1tYvXhUysmNdj3bwB62bAu9HritWzG1qQKi1IRQtuBobo5fVGbB+vD4W8vlhVw94taFkqWnYr5EBvIPSDvEFo62CgM+UNwZprecPQ7gS0ewSleCO921HyKG8Uyhnt3YEVeQzW4mTvTu9OlHCXNw613O3dg57fi36moZ/3QU7AGq28+7370VpeqQPeJG8SypnsTUaND2DVDnsPeg+ihCneFMROxegkY3TYr3nEm4HePerNRO9mYU0PeHMwao6MWipGbTE0T3pPoZwlGMEwRnA52r8CK77lPeutRMt53U/xnvOeQ67V3mqkX+OtQ8vXY6yTZawV9mYy1mEZ6wQZa1fGOkHG2i021nbMWAcFqaTIWAe9nt5NaAGPeLKMeFBG3JERD8mIB73+3gBoeMSDMuKRmBEPyog7MuKejHhIRjwoI54oIx70xmGsk2WsLRnrZBnr5COMdVDG2pGxDmGsp0Jz+PjaMeMb9BYALad4j3uPoy9PeE+gZB7roIy1I2Md8p7xnkF4mbcMeh73iIx7UMbdkXH3ZNxDMu5BGfdEGfegP+6MiQxKwacWPkRdWOed47Uj8i7yLkLO67zrYH0UclTzqkFb26uNVmd72ehlQ68JUhd4BUh3iXcJfv2rPH5HNlpqPnKxheVyr/d18JBhQ66N06VBV47a+zoD5Z7jnXeCNRpI0VZkG7/UjvhcKWXe4GtaosyLqE2cLhvf7BvkxmnTYXeryV7B13PJF4jsjFICaFlLtIxbUBEtuAbe43hvPFWN5lc5pFSeype8N/o6IHBVRTWL0zlkqkSVo+rEao0fSBk/q7w43Q4yjU+VrarEaV9HGSlxmpVIt8NYa7wUp8VZZbyOfYHxZJx+HFnGUtknGA/GxfRGOVONAcbEOO3lKOd241p8hsbpm0PfHXtro0ucvhbKb489G5+2cTGJiMmTPc3IiY2h/WQb5XinXyFLx8W9j1YR7UBcrPYl/Fpf0ev0lWHH6RdBvwX7UtoXp58MpL0G+3R8tsXFDEbMbNlH0Nq4mGvJpjtlvwGfuXFxfF71lGcLDun4vOJnFQbHafm8ai574TjFn1c88y7wZ15YZl70zJ5/1HOOU8wT+XC0HhMzz2xpjpY6uvq6WvD23jezzd5x2hR4fy9hTzcvj9WrX5GazFfNjXHaT5H6QfWVudRcGaffCO+R//F+izndnBkXswxn/XPmw3G6mSj7IjXfvDNOOw5lNzYbqwlm3zh9X8yRgWa+eW2c9kqkDqvOZg2zTZy+JVnqB+xtzEQzJy4G/VfZar9ZLk6L/quXVLraYdqxeuNXlLMIO6lX1b64mF04Bz9XE1WNOO2bKGeosVkNVV6cfhnK6aK6GM/h83NczHTMmZmqjbpB9YzT344cOcadsAoXqA5xMV3JVqVVaeNmyPqqcVxcW7SqvfGrqh+nzUUdnxpNYDnieo35YxkbsVcxNqpAXIxCjGMsMzYZvysVG0NfYF5Op33GdGOFscf4Ii5uIwXlKZQtkNONV424s4aW4KxfAasx1JgRp5+KulrTDLYaxpi4mNtQV5aRRaMh2xhx40OdUVpXw0NMxzh9G8zdn/k5G1iU/LiYbMzdHdhz8fnVqFIUZxjpsvaRr4nORYWZV8OD7+DV8epiRp7pnYkVvp5XD+tzrpeLVamp1xSrazPvbKxBLTEnE7yrMRtdmY2JyJ9shSz4EMAqmN9AgT2R/2avF1L38W5B6v5ef6zCt3pDsLIP84YBnw33RspVldGUDnQxhjKB58ZRWcEVUaxa0XsYc7w2UMFiauA95b1IZx3TJhzNojzs25VDtqNbjC3qhNFRWJczcTTCH59uRePj+f3rjBoM6aWSXtrSy7D00pVeJkkvPellKellaellhvSyrPSyXFH/5kv/XsTvxO2u7lVHHfkefkuvhdeiCKt8h090JnX3NTuwXralz+N0b2I+YHWB9Y/VrsBvnh+nmYu8iUadON0EfP+KM6V0nBaW3F9fCjVd0aYtWK9idR3wvQ77rjgt17k5TlMHeaciXayuNL5HY1/kaxkJVffy/6IRP/q5xG+lGJEckfV47mANM6g1PhdJa3uILovkWT6a7/chquVx5OuPE+hBX1t4phX276+aMUebFXzG72OkYHTwz/iefO3MaEUfYjeMZjHaABBNNm3A/v/Y+xY4p6qr33XOSTIzmWfOKye8QUSkSBEREWGAYUgyec2AOIKgIiIiIgJStEgRKRctlyIOiBQpIFpLkYtUERFREZFSX6X+kPpRa6nlUupHrVWrSJnk/vc6J5nMTFDQMt773S/7d3Z29mPttddee+219uNE6DgN8TJtFFwjlTWCINMKScjSk9kQ6BjcPDwSHWkEYRLnfTMbAu2EJiFmoe2NIGyAGwSdSKJHG0HoSnvwa1GjOJ22MQ+n41qCpwS1L3L0+DS1zy8bDv7qVnYFZEz3sqvAZRcw/S9kXuuVk9cU6FyTaFIWVW7m9ieg47/Aev62rHg39cF4ewxOjLq1WSkecGEn0EU4MQssyKS1nGT7OjRB/3n6emA5eKB3et5nnCcLung65fXxwG7zQPf0vJ6Jlz1eD7QQzwyS87p4tjTkzytxf+yG7PSMwbMqE+8S57LcB92QWR5Ya575WTW8697pBjd5IK8873omZZXZ5dnlfswNewJ1yfhV01DKvdCz2g3Lwf0pUh7z9M4qtcg91TPfPRNpGFOeVpkUt2e6Z7q71jPJDdzcO5FGWaVq3f08CTckjhuaMH4dzirXz9PP3c7Ty90ZqfcitZ97bwMl3MiA+ElpCqYxdB11n3RhRLmHI6WDp0tDCdebrv2I74tWfODxeIqyWrXPtcW1HWntAPeY++MG/Nxb3VtdK11rkeZC2lvud7JKrXTNcYGirqMijJw7ssrNcc9xjXNB0rteR+ocpK/NwrHSPdIFq8m1CWlj3bPd87JKVrq6uvu7eiC1DjWOdU9ooIi7q7urq8jdwQXL0DUTqZXuSFZJr/KhW1Ywa7lGAq7X3cXdvaGs65jrmLLPdViBXeSCpe065s53lzRQx9b8Xa1Ap6NuV1Y86/0uqMuufa4GyijKXNcyoecrHyBlm6BsJmWCa5YyGSn7kLLatTMLVkyB3ot6FNdE13xXNkUSSi8Feq+yCmUmuRY0tMrV29UbNgysdVg9sqvGNTmrlCWfVCBTlQkijJwNnOpSTion5UMydAcFGrRyUqQ3YALLALykdEfKe8oJV5ss7HfL6+VNbD/JyiGXnAVxg7JBXixjppOPI22PcjSr1GJ5ugw9Qn5XhJHz9axy05Xpcq0M7pd3InU60jc3lJT7KjGxdiCvQ9oIZaqyKKtkX7mN0lOsDMgLUOMIx36y09pgstNljAFYGTLsqxFZaQS74Lj0AdISbO21UfpmtV2cqZb4FPj7clJpGKmKtFHeCbtGkqGvyHvlw0rWSJU3SkvkR6XlbEHJIrWBt2AzLZFmyPeKtQMJOpu8Ud6bVXK6VCtPktB+Ce0HnRbLGxqwkfpi/pUkyD95RRYmneQ+mH8lCdSQ52Xl9mIGliTIP7mLPCmLiiX0sdAdRS2ObcV1S59Jn2GOh/zDbC/J/bJqeBdzL+QfNERZelfukFVml7QLc8xGnu1laZfsaShFC6XVJFZOIP+kxwSFM6UW0VTYOpB/rFPsa6CONF2aTrWwdYAb6hQrOQ2laqmflGCNC/JPqpVWZpXrJ/WjdlIvseNLkH/4PcdJbUl9/f8Vm0nonMMxz34T2ynbanJWXHgF1R4jt3Adl5eNpvRKZtMcUzI5IC/LwrzWKqC7muW8tVHOyrKgg43CerXQbyrw2ON9KsctJGHvSsxF6bjZDrywE5fmizNZXz3z1dgN7D/O2mc5c+N0R9+axvhPAF5izF6TFSv01H2MaTruzOsdwjS7oGzQKVayRZ7LW0zXC3GrxlMdfq1wWjWd42p4xXB+o7j+NIf7MzuuK/fYmEZxOq8fhjNxZ06lcIZK4lcVNayfR9m/Ngfet+XA+7YceN+WA287bhyvh4YzcWeOd2UjvIeyH2Q/8aX93TCyYlw35gbkyCWzeoMDLoNV6mVpVcTSqoSlVSnLB983KKk4I1OM0iWMx/c4TvQGNDV8z86KFdbQWITESYkJWfH2WHbxbn8rx/7+3tews0LsT4Mv3uKzHo9bGaYMI1KuFKvByi3KLdALpinToCvMUmbBsmqgoj2rCpxLfPf5lhCpN6g3k6zeot5BBZqhVZChVWojaIhWq9XSCP0VfT9doR/Q/zfdYNQYw+l7xghjFN1h3GjcSHOMm4yb6S7jbuMXNM/abr1GjwvMHC4Sp2J6UF9n/afRJ9UXblVqVSa35EhGSHe9WIccNC41LiXZTPmBs/Wu9a5IU/jMkTJX+YwK0u/NOnsfcWYj+Y7jyuHGwO2HO+S4L+DEdzpuHRzy1R+sP5haD7cwtZDjt8KJPFOTU1Mz7H+YScNO9Ur1ysAW9ZwCdhonhj0aLpQKZercbztxXrUR/j1SPXLRvWlcGu9kUbLR2QKBN3/vTO7M4L0qy5XBdYZL/37McSLs9G/Kk/IwbLhGeCA+nc584NAktdZxZY5bm+XugxPf98KJ71apVoKmAn/+DXqLb8ZXwBI4ZNP7MzhBc4GTKHcafcl9lqsvBb1zwUadpw0bfk7YR5NHG8HendydohQle8OF4fA7+ajjnocT30vgxHeaB9fXr0/dCjcuNS45G07AXgEn2iP4RKZ87SKMdeKxXsZjvSOP9U481nthTC+hCqPOWEfDrV0Y2dejjIYymB21i7WLyaP10S5DuL82AOFybSDCg7RBCA/WBiNcAeh5gF4JfyjqkLkOmetwcx1urkNBHXXwl6ImN2rahfH+srWH8q1foVZY5TSNZZuUJdsk3xgfpLHvJh+kme8Wn4i51YdZy/cDH+Yz31zfXJIg124gtzpBhf2kTlYnkwsybgrC31d/THnqfepS+MvV5fBXqCvgr1XXwn9DfY+K1T+qH1EhpKEf2LfWWsNvq3WAL2hWpl2pTUb4h9pi+A9p6+A/rj1JJdpT2naEX9PeoyLtE+1zyNPj2kkq0vP0IspjuVaqX6mPRHi0fh0V6OP0iQjfrs+Bf49+H2KW6EsQrtOXwX9QB1b64/pG8uqb9M3wn9SfhP+c/iJ8QUef/hcdtehf6F8gZ71eDz+lpyjP+I7xHSpgGaob/Y3+iCk3yuEPMgbBrzDQN0algb4xgkYQfsSIwI8bcfjDjGEkG8ONKxC+yriGVJb1HuNmyHrZuMWAbm9MMaYgdZoxA/4jkP75xgbjcSozNhrbqMh41niBSo0XjZcRv9v4NcKvGm+TYRwwPqN88zJzIOWZFSZwMCtN4GDGzBj8arMa/jDzcvi15pXwR5mj4F9tXg3/WvNa+KvMHYAgZoVS/3n+fmT4q/3j4N/unw//If8qUvxr/E9Qvv9P/j9Rof8f/k/ASdut50kFV70M/xXrFfh7rb3wX7Vehb/P2keF1lvWWwjvt/bDP2AdgP+O9Q58Mfdo1h+sP5BpHbYOU4F1xDqC+L9af4X/N+tvpAbKAqrQLiRLzE9STNpBnjN/37g4w8zn7yDX+Pdmx4n3SKblgXOeqmleCsJB2+AzdSI8Hk58i7y1cJCZQq5k8op4B2ajvG/CxVIxlqkiLOSoqEOcaUzj4Jzh5HTIEpbh6XInkyezYQs8haxhHYNYx8jDqOpFGvPmhdAohkHWCP7qzbrExcxNQmdQefwqGL8TMGZvVCdiRN/EY/lmwJKcsXyreivyTFWnIjxNnY7421RoiOr3VFjq6u2oT+b6XFyfm+uTuD6Z65O4PiFlzG8gZfJZasgsBRQe526uL49HkYvrK2CudTPXeplrvcy1XuZOF/OZh2T5EHhIlj9SKvDrK88Nnt2PfWo09Qfxpn3H381vZrb9x/gNupP4nZw8h4vZy0kttTnV1kEc3y71/dT3s3iPGoe/cb3OCMk+79qoLMYBOSdM03rHadfLeNoa1Cnr/fL21oj/qj/j9p5OvTYE+x9w7fgHxX9nNqq3WXtz9PgZ0tk5q9sfLg3BxsemM9fr5LHDMs8so4jA9S+x9VKM38MRe7lxOUbNCIwXyag1rsSoGYl8CvJth0bwnPUcydYOawfCz2O8yNYL1gtIfdF6EWNnp7UT4ZcAUYzk1d9gJKusHXjVxepiKoSOsASy5H71foTr1DqEl0JrcKnL1GWIeQC6g6w+qD6IsNAgZPUn6kqEH1IfQniVugrhn6o/RXi1uhql1qhrECO0DJf6sPowwuvUdQgL2eFhjUPIxnOgmQn9wsv6hZf1Cy9LlgLWL7wsX4pYj/Cy7uCF1lAHu2mpvhT61TLoDi79Af0BKtSX68sRflB/EPEroE249F/qv0S80B1K9OP6cYS/0E8g/l/6SeSp15NUaJBB8CVDQh/IhoKwy3Aj7DEwqxl5Rj7CFxm9HZlaxvqFl/ULL+sXXtYvvKxfeFm/8LJ+4WX9wmtcA52ilGWixhqE15htzAZkW4/43ABWxhfGF+CJE8ZJhOuNeoSThsAtZaRgFYoLES5TMmUqNBUTuJkeE7iZeWYewvlmPsIFZgHCXrMQ+YvMYsSUmCWIKTXLEPaZKsKaqSGsm36ELzX7IXyZ2Z8Uc4A5AOFysxzhgdBW3OYgcxBiBkNnUcwh5hCEheaimEPNIMIhM4Rw2AwjXGVWIRwxIygVNaOIEdqN24ybcYQT5jCEh5vDkedyaDpuc4Q5AvFXmFcgXGvWIv5K6D5uc6Q5EvGjzKsQHm2OQfzV5jWIGWuOhX+deR3ix5nXIzzehJ5rTjAnIHyjOQnhF80Xkf9l82X4r5ivwN9j7kH8r83X4L9hvgH/N+Zv4O8zf4vU/SZ0cvN35jvwD5p/gC/mqmKeq3w8V/l4rvKxDlXKOlQp61ClrEOVsg6VxzpUKetQpaxDlbIOVcpzWxHrUD7WoUpZhyplHaqUdahSXiMQ62PptVGi2/HbwzM/8Zxvz/AKz+32TJ7Hc3iBWEWw3mB/Dq8iiHN9UzN75nfwrkg36oHYMdB1smPbkIXYoFiLcU5o3iHWYzAOwWJaZ+1czOrC5nHBhgmSByMHlgmsl99h3t4FK0XsMspqF/USlIpCgtwEXL+v3gm7YzFkh9ALfoNx/kf1T7AOBEwfQ9MwwkeSoY3Tric/xvl8Cmg/0hZSa4z2VdRWW6OtpfYY8xupI8b8FjoHNsVrdK72tvY2dYFl8QmdB8viOHWFZZFH5+ut9dbUDTbFaPoObIpx1B1y4Xa6QL9Tv5N6wLK4h77LlkVPWBOP04X6E/oT1At2xHN0kf4irIne3K6L9aP6UbpEP6b/jfqyTdGPJcJlPM4HsC5TzuO2gm2BIRi906gSWv0BGmr8p/GfFMTo/ZxCGG9FFDb7YSxVsVYfY00+zhycgA6/imrMX5q/pGHm8+bzNNx8y3yLLjdTZopGgOfOoyvAc9VUC33+IboS+vwaGun/uf/nNMq/07+TrvLv9e+l0azhj+GZ4Wrmy2uYL6+13gAvjGWOvI65cBxz4fXWQesgjQcv/oFusA5Zh+hG5sWJzIs3MRdO4t7U1VGCl1Sd/QBzVCdeP53PU5zNqYNohsNJ32eO+Spreh1VsB093tGHJ4BTJjq26VTwy3TorV51JjTWYubtMlB6MqmgwWrmUb9xgQGtwrjQ6EWyf6kfkt36u/V3WDf/sP4Bq+QT6xPw5D+tf8KW+dz6HOPtC+sLKrb+Zf2LSqx6K0mlASkgky/gDrhJC+QF8kkPeAOFZAaKA8VkBUoDGgUCRsCgdgF/wKL2gdaBNtQx0D7Qns4JdAx0os6BzoFzqQuJN9VCAkszpSS0VOOrtIrsT71Sfzw5Kzm1PlFfmTwKjWVG6lh9IjkLOtNFqUnJx1JdYTP0Tc05Vfnke81z1lfWr092SJpJuX4HIM2BxTIH0HkVBmFho8S+NOd+XitK55zEOSfX70uOSQ5PTgC+W3lFa1X95OQKYeGkKtgmu1f8y4XYAcPIttD3rbRWkBNttbbk1tpr7cmjddQ6gjM6a+dhTj9fO5+KtO5adyrWemg9IA96aj0xDwptqAxz3yNkGT8zfkYB4+fGz6kVLNfPqLX/pD9FHVlXOlfYKLwiIWkW6pO5Ppnrk7g+ieuTUV8XhM9DrTLXKnOtEtcqca1CB0trWwprW25b22I8ZMZDZjxkxkNiPBTGQ2hYrZkXJeZFiXmxiHlRYl7MY17MZ170Mi8WMC/KzIsSeLGe3FYSHOlhjpSYIwuZI13gSC8pgULwpZf5UgNflsLG1sCdxcydGrjTT2UBCzzqYx7VmEd15tFS8GhnKuFRK+4n9MlI/Flinbz5OMXYrKNOPDbFfmhek7E5BbQRKyL5thXHks/LKw1ib62AW0+MqYtHkJtx9PIIKmTsihm7UsaujEeQmsGuG410sLtTrJOzzCCWGWW8ItahBTGizMlR+/z17MzqvLDCxSw8CXUrXKvQ3D3c58R9K3HfyixnFO5VN/dqXiO49mnNH2Tgypitrkd7b9Rv5JtEHusj6yNAPGGdAMSTFnRSK2WB8wJKwIXWeAIeyBubdvYuqn1HZQ5rCmJFgGybn2cFF1sKbrYRPGwd5An5bv0dlGnQFewbNHYf3MVtFXaAWKu41VlBEByvML+Sw6+C8xR23agX7wGleWyus8sn9mkSmThR6xLrfoYjWYizbrRABesuaynLdhfjS4yvxPjKjK9yBjXfnaPmu7nmH1h3/dtqlpV9gOtWjrjG8fse/02fVF2WS98DTv9+A84JZ/KzDZpVfnODaxqX/ftM8PnKcCwVO63yWfsyDbEIl6XK+HsLXCzLOWXTvzl8D1w6LNb+mq0h5MDhVucfTU6VnkXDbPqn0zIxux3nhDP5s8KN4O6DO2X7s+KdvSiGPTbLpeH2tR2H18BlwzkFzJxtc/Km62lafybNcZm4YXC7c7vsOpryYqb8j1I/4u8N4v+mGuIy5cTdfvrqdZlGeIIO6XBmPfdU5VbCZWOd3WfpdmCU+7b5dhL5dvlepQLf6743IBEhRxC7jSTfs75nSfZt921Hvud8kKm+Hb4d5PY973uePL4XfC9Qnu9F34uU79sJKAWAsgulXva9jFK7fbtR6hXfKyi1x7eHvL5f+X5Fhb69vr1U5Pu179co9apT6+tU7HsDdYsTRebXrPsl30uo48swKGQMihiD4kYYvOZ7DWUFHiWMR6kjTYWE3Ue2NJ3HmrtP9WF20IV1oPphHQjrrwtmmWKrGLNMmVUG/UezDOg/naxOPCObjl14q3ob9A9hBXrZsixiC69Ee1nbDV1EWHWq9k/tn6Tpso66dZfuIoMtPFMfog8hP1t4lj5Vn0oBtupa6ev0ddRaf0Z/htqwPdcW9txOasf2XAe2UzvxHk5nMb9aeVYeZP051nnO/NtNnGeTvE77fsjziil5+IzKZ5lYmYpUfNACQzXQ6lYq9E61p9oTc2VIDZNLvVIdh7aXWCWkWj7LR5plWibpVnerOxlWuTWQTCthjeIZx8qmhjoLtrJXfVbdDmoIypQwZcqYMipTRmfKmEwZP1PGYsoEmDKtmDKtmTJtmDJtmTLtmDLtmTIdmDIdmTKdmDKdmTJdmDJdm1Hm6/Ry9r2KWqbbfMq+VxF21jTs2PS9in7U3YkV+sibjImYnwnzcx35HS1FzOF3W/+DU5dZz2JG7ho4H1ZYGlJ3pCx0IIlcCnTcWmhVr+hHqDPrtUHElqplahnapKka2mSqJtrUWm2DPuykdkJPnKueCx2ql9oL+mYftQ9ocKnajwrUAeoAKlQHqYPABVVqhIrVuBoHtBoVNqp6vTqe5YWLtVNi7VSBVncDeaDVTSSvw2fBrBNFC2w+A016ZZ0pWtAUCltGHrY5SpxWVXKr3gaXiVadc5ZbxRJA6oAR0sfB8R7EdOedY+KdYzev+3rsnWO2zfJ5t7iQd4uLtLe1A+Dl/9D+Awj+Xvs9adpx7V8Y2a31tuDi9np7cG5HvSM49xy9Czi3q/4d8GkPvQedyzTswjTspt+pz6bu+hx9DvXgdZzv6nX6UurJO8S9eD+4N6/XXMp7wP14D/gy3mftz/usg3m1soJXIofwikylOcwcTkN5nzXEqzNVvM8a4X3WqJnySxTzK36Fqv1uv5tq/Hl+Lw3zF/lL6Qo/hgS/ZeFb6hPHRrH75F4xSsRZoW8Nm8487m1sfsRWze36LIxhsQ4lbAe3eqN6IzCYpk6D/S1wlBlHnXE8t0VwFLZS+nbUQraWDql/Ro1H1CMYdR+oH6CWD9UPyaM9pT0NXn5Ge5bfHfDt0LSbI0dtfP+nIy8qWF5UZGK/XF7I2lCWggcgBdUWkxRprlz035KikaRo8d5w1hvs3vhxRka0PB5COvR28FicQzq0PEb9+SytjdF9ZyALWhZTe41HrEQtZkyXiPGeLY14Tf0clklDBTZWkVUEupZapdCaVAsYWn7LIsVqZ7WD5tbR6gjp0MPqAc2tl9ULmtvFVh8qsC61LqVCq7/Vn4qsQdZgKrYqrUpAC1lhKrOuskZzWyXepaUceN3/7eLFO8PkSE1xcn2X07N1jtTcROLuy6ZMrGjLrarYG5PJz/vcpC5TH0Cs2MlWeA/bpa5S16DvHlYfgXb+C3UD+mijuhF9tEndgj7aqj4DXfx+/X5o4cv05dDCV+orIZV+qq+B5i32lTvqJ/ST0LaTepLONcgogLZdaBRTT6PUKKWLDJ8RoN7GRUYfGmB8bvalwS0yq2TTZ2lO+iwV9NFv0m/9/44+Nl+LE9knmBLL2HK1279SfQg1ilMMiroObXapT6ibUddT6lOo5Rm0toBb6+UTB4Xc2iJ9DVpbzO0s4Xb60E4J40OcJtD5HIHJbba4za3RZpXaGIZhUjvDQvs7cPs7nXXbRdYUTSeCtflqTsnzAGsaD4AHSN2Avpb4jIWM3vwp89W3gZ2wJu37lcsb7RBMRN2ToBMpvKvoUqer01HTjMzeYuFZxzc/x65A0tkVkMjFuwJu3uvx8F5Pvn03RYb1LE/hN9LYUlbcmbTvVIpWPiji5EN4wiQp+Zk4We4t3gsjY2Q7dyAfBLThjTQvoXN51EfV9WjP4+rjwP5p9Wlgf0h9n0p41vPxfKeqH6ufkqYeV4+TqYmXmvp5h97SJmo3UyvtFm0KtdNu02ZSB22N9jB11h7Rfkbn8Q59N+05bQd1Zz2uB+txPbU/aofoQu3P2p/pImhzJ6i3Vq+l6BLere/Hetxl+vn6+TRQ/67+XRqkX6L3o8H6AH0ADeV9kSDvi4QhjSZRlT5Fn0JR3tGP6Xfpd1Gc9bsE9Ls6qoZ+9xOq0R/SH6LL9bX6wzRCf0LfTLWs641kXW+U4TW8dJVRYpTQaNb4xrDGdx3reuNY17seut4wGs+63g2s693Iut5Ec7I5lW4ybzNvoynmD8wf0K3mXHMuTTXnmfNomnmPeS9NNxeaC2mGudhcTN/jvfyZrAne7i/2F9Odfs2v0Wx/a387+oG/o78j3c07/fP83/X3oh/6L/ZfTPf4L/NfRvf6h/iD9CN/lb+KfsznABb7r/RfRff5r/ZfTUv91/uvp2X+m/1T6AH/NP80+skZ776fTf6Hnhloy6Mgx05WgHgnSwH/805WoCBQQHmBtijB+2lsFxDv6Cq8o+vivVw379/m8/5twSn33eobjzAhs3iXl4wrjCtJNkbBOnKzdeT5mqPUxW8j7kQRtiXFm9/st7SJe72SbxprkmLFjNRR4gSFOlodDahirUyxaqwaclnDreHATOJ7PVrm5Ay+9ZvE7jOJf92VKL3a8hNn1hbrap0zcUKDFidUyHrLelvM1qipC+/bNatbpHIuysBOrzatdG6/Dc+qb6Ww1W3YRnujA3B/w/otsD5g/R762CHrL1T6FbUpXIK4hJtLFGb2GC2nlocEDP2oA6lpKt+IMlpnUsV/ElvUjjWXGifPTzP0zo2Fi6UWsbyS+VyRS7tPW0KeDMUbwZVWOnBXfwXcy6AN3I/YR9THMLOIM0356j/UT2DDivNKJZCGj2L0CWmosjTUIQ1/B0n6R+1PFGAJ2IYlYHuWgJ1Y6p3D55U6Q8bdBEtWSLcuLN3OY+nWVf8J5Nr5fF6pm/6U/hR9R39afxoWrpBrF/DppB4s13pCrpXShXwW6SI+i9SbzyJdzGeR+piWadEl5gXmBdTX7GcOoEtZ3g1gGVfO55IGmjebU2D/Crk2lGVZELLsPti84rxSFZ9Xipjvme/B5v3E/IRiLOPiLNcSLMuqWX7VsMwaxnJqOJ9dupzPLo3wb/ZvhkX8jP8ZquWzS1f6/+r/K430f+E/QaOsa61raXRWD9l8kT4dsAb0L+Sz8MTr5BKvkyt8mszNZ9PyeGW7gFe2C/nEVjHk3jwqMZYay2AxiNNqaoavhB0oduOnOvDXnrLX/521Nub1h5nf7haj1PcXXyrLumpF6XvU63LkEbi345w2nEeyUu3c2Wvs/MZ4pDyaE5LJ2r/pPEQ/ywFL4Tdw2/nsGh/LWWN2237O8Vdzvjd9R5y2ZedYzznGfkmOX3CO65rkaEyfDTnraZzn8Zw1Nc6zMUddTen8v7JS7Vqb59nUJM/YHHmeaJLnupz9tTlny5rm+mXOtjXN9WTO1jXt+6dytq9pri05W9g019M52ticj7bmqLF5rmdy1Ng817acVBXvyWuHUDt2It+zOenaPN/2nJRtnu+5nLS1+D1NvN/HZYh25KRu83zP56Rv83wv5KSwlckpOflezEnj5vl25qRy83wv5ajXnk3TOe3+2JWj3lz5Xs5Rb658u5vVK8snoU09n5xlO77ntf0r3OnkEe7Nb8lN+m/H7nT6oWmffds4p92/u/9XNXd0tt5eIEOmivcWhKEZCe0n+3MC7nRvJKTzSc5tRftuIt9KdO4g8u1DtlDe4LsLMr+twwVNbDPCnejf8pEs6i91p0VSiXjrKlx3OAvPRLSlP2ToCY75EkcN9xvsMxCSeolts1GcT0q6oB/eBKtZ3Hrw8K2HPL71UMQWQjHrjfmsMZp86yHA1kkrvvXgZ+vE4lsPrdmKaMMnP2S2IhS+9VDAtx68fAqkgG89ePnkRwlbEaV88sPHVoTKtx40tiJ0PgViOPepxa2HtmxFtOWzIIV866GQddd2fOuhPdt97TM3qZPoSaHNSnzroQPzi5tP2rr51oPOlkYeWxp5bGnksaWRx7ce0neZ0/eXr+Gby6vgCysij2895PGthzy2IkrZfihjy6GMbz242XLIY8shj2895PGthzy2HIr51GYHvvXQim89WMxFHfnWQzHfemjDtx4UvvXQkW/glPINnDK++9CR7z7ofPehLd996Ige3ckc+Kl4W3ju/8c59adeqd+TLE9eLN48kNya2pyKpbbXK8lw8mRKdt4GUZfqjO9jRCfX1I+rP1j/26Q4jT8cOT2p2pOv1x9OrkiuTu7ns/U9kjtTZalFDXCTU5HeDK6oOQP3692rKGMultnKUXgF1b5nrPA7A+x7xgrfM5b5nrHCa6r2PWMFcNP3jJXM3eKJCN+EOiSuQ4yUtt/CeXlxJ90401PzgXMD55Ih1mOZE+ZAQrgov3lvsxTeDaqLGeqYc1ZzrHNTfVE6nXO+yT1zZmfYvafTJ1zevsutcHmJywt6FzONJaaHwvSQmR55TA+F6aEwPVxMDzfTQ2F6eJgeMtNDZnrknQY9ejAX9oCbIeiRXMccLOjBXGync84Z/yXoYc+SXahn01lS/JsANX+rj32DQOIbBDaO0pdBoSn8rrWmUOz7AhKvi4tU8D//w4N9ph9jmf93ZzxF4cbTKU6wO7l+Bzv0Cfhfnms8320+FSz7/UvCImx8gpDjQYdc8ZK0hpqf8xPn5KKs15zd1WnglSxviVpSnhappX2L1PLjFqhFapFa5PqDLcJj6/7r1JIafdZrwehP/Tj1ZkvUQ7elxNrU2TyVYtezPDXprNcjeGBqi/TO0y3QOy0laWTMji0xOs9+z7TMPCP6v32ynBr2K0XrxBuxxa6Gze3jU57s39I19Z80+v2L+peyf0M7/mEWPBEzumkMLJ7K7DJNfru/eLB+ZaN9CMwhyTcaxSDXiVe/MlfOcv+qb1JO1Hi4fkmjVUjEfT43R9yTTeJEDXvPOEZg0aY59OPbcsR90Dzu5Igccd7Ti0vuzRE36zTj9spTm9UxNkdcXZO4r0elloz5Bj0it5HF/yEUUT/xZrTYOyRnPeK31OSRne+a2ObY1tiO2K7Y3tibsf2xg7FDsSOxY7GPY8djybgr7o2Xxc14m3ineNd4j3jveL/4oHgQKbH48PhIJ/6a+Pj4pPjU+Mz47Pi8+L3xxfFl8ZXxtfHH4hvjT8a3xV+I746/Gt8XPxB/N/5+/Gj8w/in8RMJSngSRQk1YSXaJTonuiV6Jvok+icqEuEEPvFlqGNfYkTiqsTYxITE5MT0xB2JOYn5zX0H2sLEksTyxKrEOsStT2xKbElsT+xM7Em8jhreSryTeC9xOPFBbDNSP0p8ljhZLVfnV5c47c1udVbbbb9ar25V3cGmQ3WX6u7VvexWA6921X2ry6srqyNOvE0H9qtrqmurxzg0yaJM9bj4SOS1fRtyNmXmAeLE6inVM6pnOZRpRpPqudULqhc5lGHfjnH8uuoV1attigHik9XiH9Jy/29hS7zneZt4Yzu40hT2Z6SCn5p433h5vDIeidfEa+Nj4uPiE+NT4mMix+Iz4rPic+MLosHY6/FF8bro4viK6JPx1fFH4xvim+Nb4zscVxffFd8bfzO+HyUPInQofgTwBEQBsyZ+DHA/BuTj8WT848ixyLHYe4AN6LE+sT7xYwJ6tCzhiq8QsBPeRBmgb04I8pjxrQmxp5n+p8WWoNEW3gss4rmQqtqBPvL/3Y5a8l9hGlEnTFQT/SD6UfSz6MmYHMuHE34Jf+uxVvjugKdLrHusV6xvrDxWGYtwWk2slnML1ys2hkvZ+eVYrYAXGweIE/FrCuJmxGbF5sYWAO4sxMgMexFy18F1YOgC9ooM7JrYan5q4Vq1KHW6850dhzrB96kouiC6KFqHZ1F0RXRBuDy6OvoonhUZrAr4P2IJmExEjPgvWAW1zySX80+rj5Q9Qvn8H6sF/O+qXv4X1ULx3xCSeJ96EbUS75wIzuRHwlMT7RPtH62IhqOJ6IjoVdGx0QnRydHp0Tuic/Ckw/OjCzO/l0SXR1dF13H8+ugmjt8S3R7dGd0TfT36VvSd6HvRww39zPlQjnsavca/sx+UEf2SqSsbvignyqTxS+OYxjNdBo/gGoGL6F2BL/9O50nj7cBmzsLD+KdxT+MtnqZ4N30E9wm8AIty/6vbtyChK9fyUxOZE5kfWRhZElkeWRV+NLIulAjG8L0+6I1simyJbEd4Z6hnZE/k9chbkXeCL1TuibwXORxKDF1tO6R8EPmo8nDks8jJqBzNj5ZUboksjOqRJdFWkeXRDtEu0e5VZtXaaK/Iqiozsj6yPto36I2WRzZFK6OVyAvo0Ui0Jlqbhp120THRcdGW/Qc4cVa9bwONhszmpygSiZQEKyIlcDUI10bGRMbhqcnC7WuPtcZSb4iXasLHwh+Hj4eTVa4qb0itKhu6o3I7vs3KO6pOVHWq6opwj6Grq3pX9asaVBUc2n1I76pY1XDkKrIdUkZWXTNkeNX4qklVU6tmVs0e0il8vGoeIN4LmIurllWtDM2PUNVawJ9fJV6z9xhgb6w6EfFEPEM6MfRtVS9U7U7DzrhXq/ZVHaD0/3e1uNQbfIyKwh+GPw2fwPNpFYU/rPJUFVWpeCiD1dfvifF8sq2IIlSKuuZ+7acoPCM8KzwXz6yKEoQXhBeF68KLKsRdym/6HzFfv3WNRv+gdfzUhD4MfRo6EaawJ1wUVsPWoM3hdvjuHO42+EC4Z7hPuH+4omJOOBxOVHwQHhG+asiu8NjwhPDk8HTHhcN3hOeE51cQYheGl4SXh1eFTjBEAdMTXhcuGrw2rIZWhtfjuzPcpnA3AX3Q/kH7kSqgTw9vAXQb9nbAmQB/e6gMteykhv9+aXEJOXAOPzWD1dC60PrQptCW0PZgMLQztCf0ejA4dEbordA7g0eE3gtZocOhD0IfDTw4GLIs9FnoZFgO54dLgu/bLvRRWA+3CncIdwl3D/cK9w2XhysBT0AUMLeEI6Htg2YGg+GacO2gmUNnDJ0x8BBgA3p4DFxEQB9UFh4H6DbsiYCeD39ieEq4JKR+mzQqv4qfmlBJqGbw/lDtwE9DY4JbQuNCEyvaBLdU1oSmhGYMnhKaNfTT0NzBydCC8q3Bw8Gi4PbQolBdaEVodSjiuAWhR0MbQptDW0M7Bh8J7QrtDb05eL+AKGAC6v7QmNDB4JaB/YIfhQ5W1lTWlO8AbEAPHYLbL6CXHwsdAXQb9jFAXwH/WOjj0OqKTi1Mo0NSCdOoHA8N6HNGT01wY/DJ4DbMhncEd1eOGLJsaCT4auWI4L7ggcqxQw8OrQy+O/AI+Opo8MPgp8ETIQp5ho4bKIeKQqrtgkfBke1CnUPdwI19gj1C/UMVgAeIAmblHeWbgrtD4coRoURoRCgMuP+HvfMBiyurEvx9rypFNSJNp9M00ohIIyIixoiINI10/aOqqHqv/v+nqqh/VDFsjIgYMxmMTGQxsvnoDBMz2RgxZphsOrKZLMZMJkY6xkyMGYyImUw2EzFmMGZZzGDETER6zzmvCui02u2un99+327ed37v5L4/9d59555z7ruXqivNPt1VPHszLI1jePZGVXNCd186d3Pnh3k4fycsXfAp9K2ev9evJv3R4/Zz50lyXrirGlQN6mp09bomWOsaGnU1z1erzrHVX0f6/X5759WfEiTJ0c5q52A5rPGpg9o5jV6r1B7WLjyf/Yf5lPoHJDnaPapp1bR2n/agpgvWh7VHQT+uPfm//SkPOCmyuvDXn+v3/EHEojqhzX/hqLbouQeqfM0mbam2omE7rKvrHdoa1UNtvWZT/VZVj2q7tkmr00w3NGlNDaNam7ZC7ZMW2OJRd2qD2pi2Rt2l7XhuVrMZzrdFW6Ttee6Bdru2TzugOqXdrR1W5cO6Gpb9cO4RbY12VDuq2Yxnb5pQFWmPrZw7vTy3oD2hrWH/J7949EfvA9ctMYsm8X/3wqRfUfqj1M4zC0X4rYA5sl3sh5ArO0Ag/qjDIAmQTpCulTWn3gpriOHqnSC7QIZA9oIcAIH8R30EZAxkHOQ0yATIBZDLIFMg10BuMl59m4Sp75Lw6nsgi6AvQQ8Ke1JKkFyQDSCFICUg5SBVIJuka9DU/ZZ1Y/pcqGvSxxhBLLSNaVwgAel66ZhD0j1qIiBJkM1SeXrNa7pJOM02kB2g96+USTIIskfS4XN5zb50+cG0HE7LUZDjICdBzoCcS+97kfZnmkmQaameNNdX6lzad4b2Y5pZkDmQBZAH6XtYlj5PK5fuVZsNkgeSL23XFqW3l6YFWqq2GgSevrYepGnlXuietToQE4gNxAMCPlkbA+kA2QLSk15vX7PO7N8HMpBed6SPG1izfTfIMMh+EOgta0dBjq2u8ZlpT4CcesNrXnt29VnRvUGk0l6Snvfvta569RrtW3tF+hyypXQ5fe5auQpyY3VN9laVtjcLXNMtKL8DMp+2PzzP/dW19iH+6In8CdWAardqWLVfNUIcJR4DnlCdAp5VnQdeUl0BXlXdAN5S3QHiUfOq+6qHaqZWqHPU69UF6mJ1mbpSvZFYu6I3qFVA3KpXC2oHxIawOgGUdImd6i71VnWveidxF3CI9CHS96oPAA+pjwDH1OPA0+oJIB51AXgZ9Cn1NfVN9W31XeA99SJwScMDoVyj1ORqNmgKNSWacmCVZpOmTtOo0WiMkH26iAFiBJjUbAZ2a7YBd2j6gYOaPcB9moNAPOqw5qjmuOak5ozmnOaiZlIzDbyumdHMEuc0C5oHmmWtXJsNzNPma5axRFsklae3QjSFeFejrcfoqTVlqNkM8a2Jyj1pYvzsgKjZQ9wO7CN9ACJnh3ZYux84AhGzQ3sMomKGp7Rntee1l7RXtFe1N7S3tHe089r7QDzbQ6lEx3SKDLEEcvn1ugJdsa5MV0ncuKJjea2uQafS6XWCzgFE3QcMg57Qdeq6dFt1vcSdK/ou3RBwr+4A8JDuCHBMNw48rZsg/QIQj72sm9Jd092EfP+u7p5uUbeUYTOvW2pWQn9kA+iFzSXN5c1VzZvwGprriI0ZvVnTbARaoI8RwB7LCrFXEWje1rwDeiXYl0DuIx5M91P6qafS33wGeir92FcBTjdfB+JRM82z1O940Lysl+uz9Xn6fH2RvhRYoa8mol6jrwfi1ia9Tm/SzOpteg8wqDfpY2l26Lfoe/Tb9X3EAeBu0neTPqzfDxzRjwKP6U8AT+nPAvGo88BLoF/RX9Xf0N/S3wHim5Mb+ocGBoTy9LuTAkOxoQxYadhoqDU0GFQGvUEwOIg+YhiYMHQCuwxbgb2GncBdhiHgXsMBIB51yHDEMGYYN5w2TBguGC4bpoDXDDcNt4l3DfcMi4YlI29UAnONGwxLWGIslMrTW0uM5cYq4yZjneakwWdszNCoMRqBUG60pCm9g0saNxO7V/Rtxh3AfuMgcI9xH/Cg8TDwqPE48KTxjPGc8aJxUs2M08brxhnjrHHOuEBne5AuWW6RG2daspFY0pLXkt9S1FLaUtFSTaxZ0bG8vqWpRddiarG1eICoB1tiLR0tW1p6Wra39LUM6O8gW3av6MMt+4EjLaPAYy0ngKdazgLPt1wCXmm5CsRjb7TcarnTMt9yv+WhiZkUppxHuN5UYGKGCVOxqcxUadpoqjU1mFRE/YoumBxAnylsSpg6TV0r3GrqBe407TINmfaaDhAPAY+QPmYaB542TQAvmC4Dp0zXgDdNt4F41F3TPdOiacnMm5XmXPMGc6G5xFxurgJuItYRceSvhLZmxv8s5ggRdRwJTI8C4gggcd8jOo4H9tOIYD+NCfbTaGA/HYVjgtdpPHDOvCCN/wlyIRuIY3sLQpFQCqwQqs3dQg2xXmgSdIJJsAkeISjEiB3ELUCT0APcLvQBB4TdwGFhP5XbhBFhVDgG+gnhlHBWOC9cEq4IV4UbwFvCHeC8cN9UhhQeikxUiDnierFA8IjFYhlwvVhJLBBG0uUSN4q1YoOoEvXmblEQHUAfMSwmgFAudopd4lbVcFrvFXeKu8QhcS/xwAoPiUeAY+I48LQ4AbwgXgZOideAN8Xb4l3xnrgoLokqC29RChWWXIsS9A0WpaXQUiJ4LOWWKuAmIpaMWOosjRaNxWixPEIsd1kCloi4y5K0bLZ0W7ZZdlj6LYOWPUDU9wEPgn7YchTvy3KceNJyRtIt5ywXgZOWaeB1ywxw1jIHXLA8AC5b5UA4Vuy0ZlvzrPnWImuptcJaba15hPXWJqDOarLarB5r0BqzdpgOIa1bVthj3Q7ssw5Yd1uHrfuBI8RR6zHgCesp61nMSaznrZeskKtgbmC9ar1hvaXear1jnQfetz6UIriNYRy0KWw5tvXaDluBrVjbgZHIVmartG3EqGSr1XVhrLE12FQ2cOk2wQZRD9uLzWcL2xKmIbRbW6ety7bV3G/rte0E7rINSTZm24vP13bAdsiGT7PXNgY1DPVgG7edtk1gndgumLulO7Vdtk0Br9luWmMYcWy3bXdt95r70fPbFm1Ldl7fY1fac4Eb7IWSf7aXoJezl9ur7JvAE7rsdcYI+hl7o11jN6LPsVta+tCT2F32gD1iqrUn7ZtNtWT5I/Zu+zb7Dnu/fdC+x77PftB+2H7Uftx+0n7Gfk5dZr9on1T77NP26/YZ2GcW9pmzL9gf2Jcdcke2I8+R7yhylDoqHNWOGke9+qZuytGku+nQOUwOm8PjCDpizYWOjuZyxxZHj2O7tsbR5xjQBh2QqziGHftNS44Rx6jjmOOE45TjrJRvOM47LjmuOK46ILfEjMJxy3HHMe+473joZPgUnIpMZHfmONcTC4DF9llnmbPSudFZ62xwqpx6p+B0OH3OsDPh7HR2Obc6e507nbucQ1JOq7E492qMUh4lZSnOA85DkLtS3ug84hwDjjtPa2bRNpwT2hHnBeeE87JzynnNedN523nXec+56Fxy8binJtel1BS6cl0bXIVS5qa66ipRDbvKXVVge5Sjuja56tRbNYOuRo3RpXFB4NMec1m0HS6XKwCMuJLaO67Nrm7IwcZc23Rdrh2ufuCga4+jSFPi2gfnP+g67DrqOu466SzDGnCdcZ1zXZRs23DXNemahvNcd83o9K5Z15xrwfXAteyWSxmmO9ud5853F7lL3RXYLtzV7hp3PWTpkKu7myS6dW6TlIG7bWvoIQbxU9wxYod7i7tHvdW93d2nvukecO+GLBoyavewe797JK2PEo9h+3KfkGoS82H3KeJZvCr3efcl9xX3eUknXnXfcN/SVrvvuOchH4as2H3f/dDDpBzYo1jDHB1rbtTe8az3FACLkZi1esokeio9G6VM1VPrafCodMUevUcAQjmUODw+KWu1NazSE8ZW70kQOyV6ujxbIReFjNTT69np2QW5KOSlniHPXs+B5nLPIc8RoMMzBjYZ8YxDbgnPxXNaomfCc8Fz2Zz0TEGEAs9s7vZc89yEuJn03Ab9rueeZ1Go8CxhRPDyXqU317tBzPEWeku85d4q7yZvnbfRq/EavRavyxuQfHvae2/zRrxJ72Zvt6Xf6vFu8+6QPKG33zvo3ePd5z3oPew9KpzyHvee9J7xnpNyACHovQixiaKMd9JyMhOjvdPe694Z76x3zrvgpWjrXfbJTWXotXzZ4mlfni/bl2/e4ysSbvlKhSu+Cl+197AUl0XBV2Pu9tX7mjCX8OlMQz6Tz4Yx3ecx9/uCPojFvg4fRGFxyteD8cu3Xdzl6/MNQPlu3zBEpWXf/kyk8I34Rn3HfCd8p+DaIJdwFfrO+s47y/DufJd8V3xXJU9rnvTd8N2C89zxzVtjGHN9930PRb2fYZzyK/w5/vX+An+xv8xf6d/or/U3YL35VXgev94v+B1+nz/sT+hy0If7O9PZDtA2nmYmq3H5u5BSiX8rsRevwb+TuMs/5N9rnvEf8B8yL/iPUDYCmYlt3D/mH5d0sRPp78VY4D+NXtd/2j/hvyDlFf7LEvEubHv9U/5rEC9IR8KeN/23xQb/Xf89yCggr/Av+pcCvJRF2MZX6e8VhYDSogzkBiD6BwoDJVLEt+1FBsoDVYFNUpQP1AUaA9jJNQYg7mM5lLgCASnKByJrmMQ4FdiM9PeS3h3YFtgBsRsieKA/MBjYA5Ea4nhgX+Bg4LDVFjgaOA48GTgD0Xk4cA5iMdR54CJxUqqZwHTguqU/MBOYtVYE5gIL1ljgQWDZNNQqb81uzWvNby1qLW2taK1urWmtb20C6lpNhqVWW6tHn98abI1pZls7Wre09sA+22FrX+tA6+7W4db9sHWkdbT1WOuJ1lOtZ1vPt17S3zBca71iuN16tfVG6y1DQ+sdg751vvV+68MgCyqCOcH1wYJgsdEVLDNGgpXBjcHaYENQFdQHhaAj6Ev3DpqC4RZTMBHsDHYFt7Z0BHuDO4O7gkPBvcED+pipMngok4cHjwTHguPB08EJ0C8ELwengteCN4O3g3eD94KLwaUQH1KGckMbQoWhklB5qCq0KVQXapR6oAYhpDHopZ6O1KcIGUOWkEvq5YUCLbuBkVDScBtjfWizcU+oO7TZ1BnaFtoR6g8NhvaE9oUOBhf1t3BPQ07osKEgdDR0PJTuZzUPhs5k+rNSHzN0DvuVBqFlAHt8oYuZTzceDE0Cqa8Umg5Bvyndxzmlvw9XNRMcc1cYikOzcP650ELoQWg5LDcuYA2Es8N54XwpV9GfDxeFS42RcEW42lQbrgnXh5vCurApbJP6g2FPOBiOhTvCW8I9mOeEt4f7wgN6Ofasw7uJw+H94RHoNUOi5T6LDI9Sb3qO9GP4KeETEsOnwtA7Dp9vOaG/Eb4UvgJ9Xuj/hq+Gb4RvpfU7xHnMl8L3pZrE3mv4YZpwVW2sTdGW08Yknbi+raCt2FjVVtZWCb1X6MO2bWyrbWuQeqxtqjXUG5fbBONMm6PNBwwjsY9pOyCxLdHWKfUr27ratrb1tpS27WzbBYRyKBlq2yv1MdsOrOEhzOLajhDHJLaNt52GniP0H9sm2i60XTYx7EW2TbVda7tpKmu73XYXeK9t0VTbthThg+P4XCJKYq4hJ7IhfDVSGClpMUXKI1UmFtkUqTPVRhojmub+iDFiibiw7yDFI/Rd4BW7I4FIJJKMbI50R7aZLZEdrsJIf2QQY0dkT2Rf5CAS9MORo5HjkZORM8BzK7wYmYxMR65HZiKzkTk4akHq00UWIg8iy1F5NDuaF82PFkVLoxXR6mhNpB/9J1LsjNZHm7zl6C2jOqJJGI1C/y7qiQajsWhHdEu0R1wf3S6MRPuiA9Hd0eHo/ugIcRT9ZPRYum8FjJ6InoqejZ6X+lnRS9Er0avRG9Fbwdroneh89H70YYzFFLGc2HpgQaw4VoY+M1ZJ3BirjTXEVEC9eSYmxBzBqZgvFg5OSTElloh1xrpiW2O9sZ2xXbGh2N7Ygdih2JHYWGzcXYFe1JuMnY5N6PNjF2KXY1Oxa7Gbsduxu7F7sUVrUWzJWhHn40prfjw3vqGlVIpQyHihtc83inq8xK+XMjd3Ubw8XhXfFK+LN5o3xDVxY9wSd8UD8Ug8GXFFLsY3R6bj3fFtkeX4jnh/fDC+J74vfjB+OH40fjx+Mn7GsBQ/FxmMX3zV2Sbj0/Hr8Zn4bHwuvhB/EF9OyBPZibxEfqIoUZqoSFQnahL1iSZIi0wJW8KTCCZiiY7ElkRPa01ie6IPOJDYHb+Y5nBiv2koMZIYTRxLnEicil5NnE2cT1xKXElcTdxI3ErcScwn7icetrN2RXtO+/r2gvbi9jJ8vu2V7Rutnvba9oZ2Vbs+frJdMCy1O9p97WHp2bUn2jvbu9q3tvc6itp3tu9qH2rf234AeKj9SPtY+3j76faJ9gvtl717xN72KXFX+7X2m8Db7Xfb77Uvti8l+aQymQvcEHMkC5MlyXLP5WRVcpNmNlmXbExqksakJelKBpIRfU8ymdyc7E5uS+5I9icHk3uS+5IHLY3uiuTh5NFoafJ48mTyDOx5Dva8mJxMTkufkryenEnOJueSC86y5IPkckputsQnzYFUdiovlS9uTBWJDanSVEWqOlWTqk81pXQpU8qW8iROpGyWulTQoknFUh2pLda+VI91d2p7qi81kNqdGk7tT42kRlPHUidSp1JnI9dT573lyNQlqdefupK6mrqRupW6k5rH7CV1H7OU1EN8i9LBpBaHOYa2KP2m4lWtA8+w+magQ9GR07E+MovxvaMA++AdxWiNHWXS2yH0D2JnR2VkEM5PmVjHxo5a82TkeEeDeVIqkd6rdKjMhR36+KYOocMh9fo7fB3hjgQ+axt+H+vT3D3u3xjjfsEtMp57yP2KyblXeI4p+HW8gj3Gv4nPYW/i8/gn2Jv5p/h89jhfyD/DnuBL+WfZk3wF/y72FP8F/gvsaZleZmAF63Trmlnhuq51H2NF615e9zIrzoWFvS23JNfMSnItuQEm5IZyP8P8uS/mfoP15V7MnWN/mzufu8iuwtVYmRxndLBc9jh7jD3BHOxNzMUiTGQx9jkWYP+J7WY72RD7PutnP2A/YpfYj7ls9k9cDvdm9gr3OPcUx3GFXAWn5Cycg3ua83HtXBGX4vq5Sm6AG+b03D7uC5yT+yr3Xc4v+4rsK1yPvFv+ce4T8h3yPu6T8gH557jt8hflL3I75J+X/xX3afkX5V/mdsrH5Me5z8pPyv+OG5R/Q/4Nbkj+Lfk/cC/K/1H+XW5YPiX/Pvd5+U35DPdX8ln5T7kD8p/Jf8aNyH8h/yX3Jfmv5a9wh9c9ue5J7m/WfX/dMndEsU5Rxk0r3ql4J3df8S5FNfcLxQcV9dyvFA2KJu4VhVqh4eUKncLMKxSiIsDnKtoUMb5IkVB08SWKjyt6+fcoPqvYzX9QMaQ4wD+v+KJilDcqXlK8xNsUY4rv8HbFpGKS/6jiiuIa36W4objB/6liRjHDb1f8RHGX/zPFnOIe/2nFzxX3+X7FomKZH8hiWW/mX8xan/UU/8Wsp7Oe5b+cVZ71Af541gtZnfxE1sey9vBzWX+Z9ZeynKzPZx2QvTnrpawx2ZNZx7PGZU9nfS3rlKwo63TWy7LirG9mXZGVZ/0g65qsJut61qysLuunWb+UaZXlyhMyh/Lnj71d9qPcX+X+Sp7HOLaVjdI4fCXLYuwd59LCp6VqRS8XI3W3xOS7A8/1VDqkv+aoG8G/z6jaotoq/Y3Ge03iQfGweFQ8Lp4UzzQ3NQ+L5/Rj4sWa7lomTorT4nVxRpxtHq6pwzkcYO/3yN5/wTiw94dg9a9wrzAZ2Hgek+d+KPdDbF3u87nP03ePvpU/zB9mjH+Jf4lx/Ff4rzCeP87/Lez9df7rbB1/nv8WtJTv8t9lSv57/PegvXyfn2bZ/DX+Gsvhf8j/EFrNj/gfsVz+Nv+v0HZ+xv8M2s4i/0u2XsbJOLZBBv/YU7J1MgXLl+XIcliBLF+Wz94iK5AVsELZM7Ii9oysQlbB3ip7n2wTK5Y1yBpYiaxR1sjeLmuSvcBK8cmzspwv5XyJvQPuKIdbvzq/QTjBtr/mnSq+UZ0HZt6lrr5PvYHvU8XK1fem+NZU9OH7UulN6cobUukt6QF6M4rvRfGt6IVXLZfp7Si+G80smXekKwv5vFzwZIvg+dYuJZZC8R6+M7VsgmPSS7rPXUeL0WIRb1tcsC90niyRzJtSOGdh5m0pzpt4rDPtU+TgU55If2MhfhsCftuenJWzd7J1rAqWLPZeWJSsHpbH6HsUslkjLG9iGqaF2sRvachlblgeZ17mY3kMui5wPkhY2JMsCcsG9jHWzZ5in2Tb2NPsU7C8hf05LIXgrV5kz7DPw/JW9p9hKWZ/Dbb/NvYSLG9nY7CUsr+D5Vn297CUsa/D8g72TXYeru8SLBXgGa+yd7Fr7J+htfwLLFXsx7C8h/0Elmq2wH4O1/6A/Tt7H1uG5f0cz2WxGi4bPGM992bwjM+BZ8xjDeAZC1kjV8y9nX2Ye5Z7lqnBU1YwDfhKC9OCr/QxHdfKhVkzF+EirIVLcAlmAu+ZYmauk+tkAvcR7iNM5D7O9TAL92dcH7OBZ+1nHvCtn2Ve7nPcIPNzQ9wQa+X2c/tZEPzsKRbiTnOnWZSb4F5mMe4C9w8swX2b+zZLct/hLrMU2e+fgI+oYJ3KSmUl+4iyWlnNtijfp9zEPqqsUdawjynrlfWsW9mobGQfV76gfIH1KE1KM/uEMqxsY59URpVR9qfwbOfh7tH2a+HpMfMhkCMgYyDjIKfTMpGWCyCXmd98xDxmHjefNk+YL5gvm6fM18w3zbeBd833zIuwLAm8oBRyhQ1CoVAilAtVwiahTmgUNIJRsAguISBEhKSwWegWtgk7hH5hUNgDyz7hoHBYOCocF04KZ4RzwkVhUpgWrm9YFGaEWWFOWBAegL4sysVsMW/DopgvFomlYoVYLdbAUi82iTrRBItN9MDWoBgTO8QtYg8s28W+fPolsHWRdSkIla25QfpLacMfzM7NsDxO1p5H1v4EWfuTZO0byNqfImvPJ2svIGsvJGt/hqy9iKy9mKz9bWTtJWTtpWTtz5K1l5G1v4OsvZys/Z1k7e9il2GpJJt/N9l8Fdl8Ndn8e8nmN5LNv49s/v1k8x8Am+dZLSfn5OyDZO11ZO313Fu5YrD/Eq6EPU/W3kjW/mGy9iaw9lb2AhfiQkxFdq4mO9eQnWvJznVg53/G9NynuE8xA/dZsHMj2XkL2bmZ+wvuL6BdoLWLYO1fhXbxNe5rzErWbiNrd3CXwc5d3CQ3ydxKp9LJPEqf0se8ypQyhd9Lnbcjbxf9NRD+vSlnegh2CY/RrACBXMi8Pl1WAFIMUgZSiWXyJ9JvzH634D6rI4ibzHWPCJZJf0Ooofdtq39J+LsF91kdYVwV/D+OMe4DWf17w98tuM+Zlb9EnKRxx9Wxxzl6ywk6jj/i6COOPeJbLBx3XBH8/+oI5O8WaXyyQ9gi9JDgqCSOSQ6nBXS8N2H/qtD/pXHKUVqjSLH19QX3W43ArxaMx5nzrhUa7VyVlVj9ekKxPB3Jf5NgdM9E+EyUfyOSyQQeFcwM1mYHb0Qy2UMmg8hkEZlMAterGYSUOTwqmfzh9WQDZBNwDsgqykkgq6BcYq3g6OujYoH8Yq0EIM94o5IZuX1UMiO5j8o+y8G1Qvf9BgR7dJbjOPZrXv6NgtvOWS7iaDDp1y0zb0hmLXM4XvwawXMsW05a5emx4zcimfHljNRY61cEtzeB4Cgz6isjzdYt9FmPCI430xrHWV5PpBHpkVcdj+PSawVHqB8VPPasNGJNY9W4vmW985uu57eJdR7HtW3sUZFGt20Fr5FiW9mrpNK2ccW3r/XFaV+Z8XG2WltDxgfhmPhaP7JiI2ue68ozSdcRjqBnrpnG0NdcE/oSWwL8CbR9W6fkA2xdUvvFdmXbasnFuIH2busF2WnblbFn25BlD34ObrftlcbcbWM40i720jjOhO0CluO94Vg7jrSjf8VxdvSTtnvSKDvGABxnJ98O94z2jiPuGf9sL5HG2/G+7XX2RqwLHG1H34nnRLFbpPF2HG1/dJSd6hfqlGIC1KH9MMTJdDyzHzXPZOrZfhzOg2PxcA7adg5H5O3TNO8lE2fXPqPMOVEyMSUdC+heITbSWD5e26x9LvOcaX94dvTsMS5jzMN7W7A/wDL7MsTwkrRgvG58RAJSXKZ4hbEYY3AmFg+mBewH7+01MXZWEodcKEWhGJuJq2lxZAs9KJkYSZKJjWti5atiZCZOpsWRB3EQYyHGPoiHjnzhDgodg7FuXpIVnwWCsxtonZ7hQG0M/Iejae0cB0cHlUMbxviB7RbbEbYnad6Dow99kWPAsRvbRaYdrPhFsC08D/o5xzD4pkwbwVkg4Lfw+IwPfLRtPdquMv5lpW3BOdBvOvY7RvCZ42yLzPH0GdDepNkXDvI7mbkX6MPxfuge0jMw6LjX80Hp63I8TPvxTPnyGh+Vvma610f9ceZ+cJZPWn6rr/st/tTJ0msF+M9Lq/IaP7nGV5J/zPjINf4Q96Xz4D7om6AOnDnW8871zgJnsbMMBXMbfN6Y09AMFCwDn5WZiZLJXzIzUigPgbwDZ6ZgPoE+LTNDJZMT4EwV8mkY/zFvAF/n3Os8gDHaeQjnp+CcCueE88JvmpPiUlI+lvaXNKcLc7NM3gSfnclR6Fzpc+A2nMOC/pLynExel8nDdq76YJJMDpPOPfBcmI+5Cl0lmO/g7JfM8bQ/3A/9H3NBaCd4bzgrhsowb8xIJk9cK4/mgpncb62k6/U1eV1GMJ/LyCM53UqO9htyM1ejJK+bm2HutTb/wpwrk3etzbHgWulY3CdTJ4+2LWh/OEvo0XblgirL5FiuAM4acm1GX5TZz9Xt2oZ2jbOHyJ4yfgz2wXaF9odrnFfk2uc6SHp6VhHK2vaG84vQR7guuibRPl3TruuvyWNAXDOuWRSyRxBqh+C3cA4SrR+4ljNtENuEWy7NRsq0P2xXOCKF7c1dIc1MwtlINM8sLXi/2MfCesJ7dpvcNrfHHaRzg/9wx9zkgzP74wwlnJ+Es5NwXhL6IveIe9R9zH3Cfcp9FuceYfxDIT8JOYH7ijT/CP0xzkBCO8VYKM1B8ig8OZ71WF+eAk8xzjDCfgLOJsJ6wjlGuD/OMsLZRZ6wJ4E5IPr/jG+WZhN5ekngfBhn0LZxXhHWuzSryHMI7cxzxDOG9YjP0TPuOU3bcD4RnuOyZwp9Oc4m8tyW5hF5ljIziFbnD2H94hwi8mNw/ziXiNYWrwvtwRvIzCLCGUTe/oz9YA6O+cfauURUnva5mVlFeH5sJ96L3snMHKIVW830A9IxCnWaX4TzjB54l7EMv/kqtz93iLH/P/7y/9D4C/7jZPSLLPxnkBx9dx7/A6KGSs6S/mXieioZJL2Q9M8SZVTyMul3iTEq+RkxSCXXiAeJb6ZvXfuPpP+QKP1u1EW6Ho6O2kK8StTSPt8gfpT2jCNfoaN4+m1g7u+JH6CSZ0jfRWyic2ZReQ+V3CP934hhKrlOZzuFXD6G/PUXqfxHRAt94iXaf4n4J1T+r6TvI9L5uU+T/hjt/2s6p/RZJ4nvoH3ozEygrfTb4MvSNXfQ1n8m2umaqQZkAeLztA9dG19OJW8ifRvtf5/0z5H+kNhN+7RR+RWikUr+J+kXSKcnzkvHbibeIlrpDN+hfZpJnyH9C8Qc2qcfKX8/lXyJmEflVOf8bSLdBfePpP+CSFbB3SRdQfrHqTbITrjHqZyeBW+gkm8S/5z2+QTVGNUSLz0RnnTJPt9De/4NXQk9cf6/Et9FJWS3PD0d7ldEB10/faJskniA+CRRqr07dNTniWS9Mqpb2XeJZJMyuhJ84Q46Wb6M7lT2IpGuQRZFrouQTvYmp1/wk8upZCfpPmI2sZfK/zvpe4n0i3eyfyHO0/VQO5W9jfh94teI1BbkHyKShciozl8hG2MvEanG2H8hUqthnUSyDUatmB2lo6Sap3bBqG7ZduI4keyKURth1LLYfyCOEP+a+HXiO+lsZAksRJSerJN0uk7234gfpD0lnXzLK9Tq07//Ta2MfZhINcY+QvxM+u4WiPN0jwvEebrTBeI83e8CcZ7ueoE4T/e+QES9nfSX05yn2lggzlOdLBDnqWYWiPNUPwvEeaqlBeI81dUCcZ5qbIE4T/W2QJyn2lsgzlMdLhDnqSYXiPNUnwvEearVBSLqk6hDTc5THS4Q56kOF4ig8+QtefpVd44skyML5MgP8O8mvYJI3oaT2q+LSK2JqyL9adJ/SST/yR0h0nOnX8LleMlP0nl4ybPVE+eIUqSYTV/JFF3JFF0JkH9f+nqwhJ4sR1cOPhO3voW2Ulvj/j19DVjuZpJPwKMeUDnZJ0e/nM3VUPk/kU4Wzv04be14LP1aFUf2xpEP5EaJUix7Px1LMYij6+e+QkwSyc6599A+1BY46ZtDyQ/w1L548lqc1GaleCFZfhfxe1RCbY07Q3oJkdo+/y26ToqV3FephNopT76LSRG5kdo4PUHZE1RC8ZSnViaj+pdTucxLpOgppxqTke/lqXXz3ybSr4pz9Ln8HtqHfgOPpxYney/pFNd4yUOSn5GRr+Yl3U/cSCVUk/ynqKSF9OdIl+xqgXieSsjeZGYi+VsZPXcZeSe5pNN9yRqI5MdkZIfyT5JOXl0m1YZIZ95BOtk8T/Ygo2ctk3wp1aRMisvSsfQE+QnSKQ7KKKbIKEbLpmgrWZSMPlFO9i+zkV5MOlmInPaXU3YkT1A5PXHZIpWEiX1UQvUskzKcn5BO1iKjDEH+dtJ/TqQMSvZW2vN/EKVoQt5SRp/OUd3yw8hXpPNT/sbP0FaKEfwyWQ7VA3+CPuUF2pMiNS/FEbJbGeV4MvLYskqidD1kw7KfEiWfQJkMv5VKSumz6DnyFOVlFOVlA0Ty2Dy1NZ5yTk6K+xQj+N20z7NEioz8/2Lv/ON9rLLF//z8HPmVdJJOJ3MykpCEjHRGkvxOOnye5/OrkpGRypgyklxJP0am5BiMkV9jjCSMJFHnSK6QDDIIybgyMkiFkXE5vmu993M46fS67ut+/7v39bzWOqv1rL322muvvfba+5wezLJHLHnEnlcBbHZ5VrpL9LpkHhefO7ngqnDIco6ZQXZSl9rJYSd1yAmO0YM33AVgo58a0mGksoo3oXkTNZhgl0woK24TvpVM67CXOSbOn0Pmo6iXTVgiuITKoSTt3S445T8muBJ0RegboW9U2npWdnW7pKnXQXAzfyBve/H2d9AvCm7ivwHdAdpouBG6G21vENwIfjOvP3q0bRN6yUjtJthPq+QZ/Zc7LX+IYPfMh3DmCc6WWBbs/0rwQlpNU0tOQ58uxqoR8B+CbgrdFLoZ/TaN8BDwL5ERnaf/w2sgeLd5q7S8TWMnHqD3rn4lxbFb1OYzr8K/DjxScGNkblTLBc/A5iHQBtcEF8I3befjn5vx4YN4qS9v4bvb4FRAxsKq1+A8Qu9zsbAz/Iuhb0XP47z9DD2fYf/FjF3ent6gPj+9wZ8Kx6dtc9r2UfuhG0M38VrC7wfdHM3wwU1524S3P/HUGz/xH8LOlkgq3dQ9goyZhRfRVoRtjIsIaepPQ17xDd5sJGfjGUbntQAXINmbvhbT12N6IlBL3FcUO3dLDS44dlA4v1bsNYDerlj4i+Eshp4DPQd6JPRI6MPQWpncnVVT2yp27i65TTO231Oq5QOK3Wb0dT30WsXO9XCe8wdolavYec5wsKQjuDKWPBd7XWViSaVVszNINXgPoGcQrXoh/zLyt9LLG7y9lbe3Mq6h4KXIVInwHDhzoEdCj4Q+DK3julx7d9+g91sZ12/RvM1/VHqcrdjZRi8rsWEwmhfgmbfQsA3730LDVOwfpv73pjELw2g7jLbdaDtd+f69vJ2ub21HaZtZkwMDHJW0M8g/Du4Mx2G+xisWWsc1QLHQOq5HFQutVrVTLPTrWimBHWzriG116b0jfY2HvlqxdQwOnnTeBRPb3o+QacJYmqDHItI6w7fgW/gfO+Xt73U3UexYeLWPejX2EHPXB/nx/s9E8/uKnfGGg5fejTAjpa9ZGtveaiJ8FpKzkNmv2L+GHt8Bz9JWwlkMPQd6DvRI6JHQh6EPQ7cV+jrFzqySNWLbcl9kYu9h53L6ugR6N1FxScSRjOSu9mtgTwvlYE8lbLhEbbY/UWvduGYD+xO8+gn+mQ7+GbP5ZySPEu3VFNtHkTyKDPL2UZXxsum9kLl4E58XYkkh/T4BXkzvhazrxXigkHW9GA8Usq4X44FCovcJPFCoK9p7AlwM5y/4/A76+hN93aF9uS8rnXWlD2042mPWVTGd64nYPDHiz4GfkLbZ6KmBnmwzOiLnFHg1lntmpFjrEc94252LT3bTajf6P0ZyN2t2rq44+6T3kdA9FdsnkTwZqyN9TVLsFoJvVWyf9I8qR7HQW6C3QBdDF9O2Nq1qQ3eibSel8clG7wOJlmsVOxvxv6O0OwwOK9cp8DYL5y3FToHhYMNyrGoM/Qx0S/8TlfSfE7o++pugbRfacpE8hWQ7OO0Y3VfItFdsf2U4SFYFd2akH4NXM8bOjHE1Y+zMGFczxs6M8VNsaK822F+xTpvSVx9P+F6eYses1j7oP4w9fbSt7Au1Nf+oBq8Bo+jDKPJ1Lrzaip182ubT9hPaduXtJG+w0vrWOs7cjVRsHTcc7GcsTkdwHcXWcZ0753nFQsu4nO6KhS6GLqatWnWzYuGLbfbvFVvHsa0K0bKU3qvgvU70vo/etxsOPfbFhn8h/x4y/+Ltv1izxYxuO/xi+MW02k6rYrJfDcV2MV51iZyZzJ2LTzrih6bg681IdVze9YyxI9bGmYUcZiFOq7hKem3BT9MqTqunaRVXbwi9BboYuphWtZGvDX0V9FXI5Ar9W8VOvOS47uPY+THR9TnWvmBoxrgHb/Tz6ipt7NHsZ3/O/E5m7MfAn+Ol2Vj+pWJ7NhpmI3kzlhPb9hgk59FXP/qah+Q8JFshMw+ZuZ7sxe6Tiu259N4e713HXLQ3HDzTAP3t8UwDPNMezzTAM+3xTAM80561cBjPtGe9H1YstHopxEuD6P0MfdVkxs+Q5eorHWuLT+objvYba+vrOaK+9iX0M0IXmxhjXCuQnwtnheEw0sfACxjvClbuAlbuW3imA555C/m3kOyF5Fus3w6s34PeLzRfKbYPInnQX6cc8FDF9jHwQX8KnCnQA6AHQN8HfR/0B9AfQB9CzyGliefLtZdYRXq8HM938f9d6Gl6dnC60PsJravddortE4aDJfdgw27wgQg/rZL+Dcon8mP+e8L5XLET07b+Nf5qoXP8FcL/yn9faXSWYMNIRl1iOPTye/BW9Jcwxq2MsYQxbmWMJYxxK2MswYat2FDCjPfy10ovKxXbNaP4l1OGu0qxvaekvmJ6WUUve9C2Cm170LYKbXv8d3QdKRb71UvT1Uty5D5I3bVSOH+mzrya7HdQ29qjFVsHI47q/zfFTi3wT8GP6wxazKCTp9hiBp2bFQv9sdAN1R6LWbMOeverZvBuLHycvnbrWKx/Qs+g338aTiRflbfaYzss2ccohjKKffjqY5V031RJ++PIZpGxn1NsHcxqJW2fAC/SeXSb6Hz5h5k7U1XmQC9TLF5Sr35Gjy0jPAXOFH1LhKzWefE6I59L282GRlsuGnYp9q5EQ662FXoK9ADoAdD3Qd8H/QE0+6/Ol3cts5brzdUaWLHol7OnO4T4f5V+h7D2txjL1W/uFvWMu52YfAD+XkNjyV58OAZcyNv1vKWiswuxvBJvhzLSXP8jYkbj8DFicrhiy6ypy70zGgmK7dBwYpeJfLZi+yk0/BKZHOZoO3gyvWzHnjrG/3h4u/Ew62U7/slhvWzHPzlE+Hb8k0NOmKxYaPXV1YrtDehfQuRsQPNOpf33FTs7DUf79d/X2wahB0Dr2iyi7TDaFjGWjXCWwtnIituI5Uvxz0bsXErb8V5GtB1XbI+PzjUqmY3ktAg/rTK6Kp216kN3h6/VZpOSrpaeaicpzmLsWbUsPQ8qpwqcpXCqaF0tJ0fOX8q394EdJGcZrBxvP/Kz/HdldMXMWiFvC3m7WN/6XzGnR5Uv1e9iql/VfBQZT2Uk3+rbg7GfsuLIGHBK4GxVjuSuKdBkA+XbGxRbtHVyDUZ+l8p7673hxKryc+BvV75vKV+8OgWv6u6wkbdL6eUk/Z6MTaUq7iL0ajjFcDrDeZMa+y5ToSnf3qFYqq9J1Bhg5UgNI/J+jqc5qj389vAbwL/d+1T3QfSvQOcC6vYV9LVAZZyFnJvMaX0vcVUXTis4deHkcfqo5GcrDedGzvUW+fbG6EainvR4RexuoZ9Cwww0fMH9xtWGZo1/xnnkGGeTJwyNhrG63uUkq3vfWGLv75z+ihTbf0emCq0KaZVT0sbSewPtd5T2673G2b+i/3PBX0L3QM+lnJsqwblUOV4Lzk3PKo5NMjT8d805WjXLXqm9X87KWs4qns+4VjGW+djTkLZL0N+wRPesLVg4Fgu3mLsjWj1Cq5bYPBufNIAz25xA9Y7OWwzuiZ34zR0ALkIyy2CVj3GCq1CsOMb5JfYbXZsVLMWxx9nruVvwf8fcLWV0PXXlemaPPq15IIblWdw/xB5BT0N9G/tIsb9WZZyRnBn3c/Y/wMl3NufNt8zNBvRN5t6AUzaS9jpazTMnzTOv0NdCsfBVbjCWGJu9+Wqz95zS+GEbIyrCn/24r3ib+4qY+s0zdzJ3xzYT4Xo2BEsmUfqB6K5G6ceQ2R/dThha+ZdwZq8E/xr4lcCLzSk+ojcTe8b/bwrnJUY3FnuWYM9Y5jErOoMvFflv2SPu5kz9CrdY3Bd5qzlfH+XewDP3gf5+Im2/0npz6zwH549wnlOOnO6VM1CxfRSOybTsXPYYE1en9R7++tg24a+NPa80GWAQ/T6ADYMMp8QB5wm+HHwruAptC2m7EgvfwsJhaJiGhmFoGMatwkvcgQwzt3OqQTK26mmHTBOwZTD3hCPRZqmM24eZ7cstRx/VH3tI9bsDkB9Pj+/T43jDQfMl+HM3/GuUdrqSzT6BH8e3n8A5k9VB9/fYcc3zWXOVzkrhedVczcwCOgtLpoKVvoP94k/c89yhetyXVT7rSmx7GUuy0VADG7LxQ1NuRE8hM44IP4bkTVqneRUVOzex4qprpS01vObkG/wc9gjhODWpuxx2NKpi/xDZrzo1zDGNLvvjqD7UCjAPnTnUimRg2RGu1BOQv0Zpk7epoz6jFqpLfE5T2vsczjRkppkKB/0h54I5ir2bqSt6w1+ku7/bnhpgEbZt0qyS1YF6YxN6NmLPIM0Pfj1yxRZyy2Yyxi1URBWoHC7XmidW0a8iHDKVk039f0Kxk001ss6cL7JaUCG0YLe9jX32PnaudexiOqK2xgbNG1kdsHO61j9ytnqHs5XB5iTyDucXg6neqUI7KbY4lzkNqMR2IbOLVg8g8xU12API7I2qNeWsoMcMnllR0lpnBJs/w+YsTlvfKrZn4UnOIDKDWi/lQm/mdLCRanApoxvEuH7FHP2KVlMUux1Vj7+bGpgbZrcj1TI1v9sRv53wZOzuQsVyNtQsUYgG9i/7Kuq9GeCrkG/DjE/EwoOaPexTxG2M/JDDiqjAui4BL4l9K5x/Vyznr/s4i2kF28JEo/JlxX1LjZRHFdeKGWyFhknUUXpXcLNitwl7UxWdL6E1Zg5rDemavJGDf5YpR1bNOnp5mlOAnv5m4sO90L9hvRfCWQ+n0FQ4sWup+fW8Xxh7SWn9bZpU8ndZeso7LfT9SN7PSHPIAzEs30C1toRqbQP27MTC96lyN9GqCHuG0WMRNfNIauaN8Jci+Qmx+hry5DG7R6yB8N8D79Q6X3ROotUhWlGXktuHktubx7SWGx57Srz3Neulhd5aeNX0xsZpwdr/ltuMbdzhfBtxVMMrnn4NodhTb9/rjRD5Avw5GNtuQU9V9Dzt6T7Yz9BE1wtoW47mXENHN7F6e9bKe1Y4H3hbNWN7zyhtbqKQv17lrRIiuQ89MlPeVXpDaHEraH+ptG1uG76B3ssdzlpDY8MVyvHXK8e9gt47mJs9bhqLqQGeVkucD3WMfiPG+CGSVzC6yxgRbe3j2NaRsRzX2sxtCb0V/kxDIzmXe6G52J9Az0j0JNDcDhsaYNVXWLsEDfVoRSVjfwHnCTjrPM3bj3iaq9dR59TWW6as1dxr1YYzR+kKXeHMYafoRy8nwNXgrNe6wn+IvPoMeRhPxh7BS/weMPaoLztXVoyarRbW3s+9Vkbv5fxruZ0zu8MAcxPL27XmzpNqrS132g+Ye7Azk0UPEZK1WscSq2qs1VqoQlet0/wS7glvJCpuJirOlPxGNPSN7sz1DrAFN6VtuRv/nLvBydBj8G22uadFQz6z2VE12Hu8VSL5umJ7FZyT3Mv15FY8zg15Dnd0K7B5gfldg693jFeTA09STRX4deXtPhP/ZMV5/uVaiyIzD85kfr9QTWXse83vO6imHHocRo+VyQPmTFoL/i742VG1o3njY4N5ez1vn8Xn+VhbG04+8vncnWZzd5pvbvi1rZzpqMTMGRD8GqOrweiKqZ1c9Zg/gxtRVzX7M1Wz66K5I301pa+OhkOrV80dMra9gN++5SZ/ts99MpzZ9LiKau3mWHPlxPZBj8Nv2rYfkvOQnIe1LUsetvS8qWM/w/3wFZwrz1BB1ddWsbZYmEerfegpRs8+bmU3kqVXwJ8LfwmReQ02r6PVW4q9bFbcPFo9Ca6vd8ui/wQ5vxORoPTJ2O1Us4LtA+ySi6mmDjC/U7hHvcO7Umk4f4HzBzh/OXOp/qaG/TGHimgBu/mnaDiN/GmqqUHs1BXhvEEvITJvkMHu4O1VSNYyNJJ57MIfgvO469ujf2vhdPP0juISxU43JNfr7Z/LHY69nn18v/4ljGSeXkpHua4X+b+X0sjkUVesiW47ZwvdGm1Poucx9utcKsnH4E+Ccz2cSXB+D2cqVWhNX29dplKH3KgaYhW4QeKk794I3/z+Oocq6DrefksNeR0yeZr9/D8rds2NwYfcVfbz9Lckr1Anj+ak/wr2H6Vtf6x9AHv+hj39sfBvvH3RvFV5a6upcMDt8d5sxRa/HXB+orTkYa3WelGtrcNj0/BhJ6ru3tz+rWQu+sP5NZwvuONdwF68GczfM9gH2KM9OF5UP1eUVi+BC9Q22SPuZ5+VHr00N2m3YE99/PM1b+tHs6wcMzvrye3Pmrs+/ZsWqQQGsreqzC/g/+NMU6HR6T6CtRXQMwarmmPVWjx/j/lNAXvZKE6sszmxjkL+gKcyS73L9YaWuejG2eQLPZs4P6ZH7redH0dxolXWbURXTXMqwZPt8eTHcIppdYNbxNp5hKjQnfqvuoJiKbwxnDGysmID4axGhmo5NgTOt2fai55BekLxpnvzlGZENTgrtWLUMzgXbFEZ/3ZktrByb9G3/mB/sNLItCPG0qxQfufrHIbTg3k5bKom7ka4JxG6JzmqJ6PQHn3VZuMN9zFdlU6RtvVtNHCz6jajJq/GSr+I2VnK24uieVeZPyl2GsCpjcwOZGqbGyQvzepOK41Vq5G5kbhdDedt7yF8/pDS5vcCJTfpGlfbLPP7+jXY+TrRsgbbLmZGOM35nOYcTnNOS+9h/a2cd4XS5p4NO6dqVDg99C/WvOHuV0oj38P9UjhPubqzjPPuEPqA/v2VM45eWmm8xf5ILm2FtkVeb6HvVywxxm8TnFeUVmxvZnSjGN3mqHbK4GHlfBFxjM91LNPgm9PrTayyKsRnE89jFIKdzxX7Sw2NVU20KvCTiiVTyVhs8qf7n+AsxbEahqbHV7GhE329CudRPLYHzqNmrZHn93t6K9hTsT2fVpchw32gu4ycXA/+MTTUw/LfYfk/sPx3cLoisxCZX3HS/4aM9yuzW7Gu81jXA6nB6uHJNuwsrQyNnn5w7oPTj1PeF8T8w1j7BNp2wmkO50F+i7Gee4DXoqpb7d+jUeGuU2zv0axuj9C/i3P+qtgeEf3m7iKR+bWRZxfI09+PxK7gtsr8vnI3s5bBtkcY9f2MmttFpxecTnB6weliflNJjq0JLgT3YL2/gAc2wCkCj49+szlB6B2Mq7PmMdl5c9mRNfu9gcw88vkZWr2Lt3Ox/F3edmPVH+NGK5f7xtzYmyJTOboZ1pzZglvc5dRs/IbaaRurRPbWE816pZ33oY942/Ck1ldnOAWc5sb4Ov27RMnquhLn4JkPmCnuZGTd/Vz/zw5H6lUnofuIW997UHv3/ih4udLOYe8bS/9mRrB7xJtl6R2CSFo7Fdt9adVBsT9HsRcDN/KGsjYfZGf8UE8EaDilb2M9aFUAbsb+dQJcwdNdYIf7pM6sq79RLVDaGa7/95zzsGJ3gLsLbSJprVFs1zat4GxS7B1SLKNQPMN9SUeBnrbkjVVGD28Tiv0RaDgB3gUeBV7o6t17PcVufcVOkZthXWhknoBT3U9hrd74VVaOtUlpa6dikVd6jcr7+ejJQ+cy2jZ29d6vrjtRI8GdgZ1z9eactgvBLcF7IxuUTtB2qjtEYxh+qwjP1dog0jBDvYRVi5W2d2OJ69iK/WOCHWjHcZRjL+Ot/u1xU3sPf5WqvxPs5ozSOk0zp1PkvKxZ1/m1Wuv8SfBWpZ3nHb2/Hebo74kclbcLwQWK3YeQGe/wN3vOGME3uC8IfgO6ofsqesZoDYYkbZ07aPsy9KVoO6pRav+N3k86sueK4RoVCacmdlbTleJo9T7biWnN4FwsON+5Vs84Km93Bd+t2PqnYtdFQwe0xZ0rNKs4G9Cp9HHnc83G0HOR7IKGEtr+CHof+H1bPbwIGw7YPxbJRrbeIOn/2WPbp+x9mjEU26ftY5pnnMaCVzjDuZ3I1v3U3q1WKbZvc2oox1mie4f9d60HwLngRopFp2Drc+gx4Or2LiR3aWaA3mkP0WyDzg32TMHj7E+1wqTtP9UGy9ITt2V5XyuOZUP/B3QV/ka9EvRP4P8Zjmjw/hCbqbhEq6Y/ZEnGjl2pnNiVcFK8TUG3hW5raJX0DsE5BOcQnDNwzijH3a+0u9/Q+tadB2eecvzKSvuVDU3bU7Q9hbZTyvFbI9NaOY6ntOMZGvmxyI+F8xJvXzI0b+vxth6930O/9xgaS3oZDGcAbwfQ7720ulfp2Cf44RMsrI8l9Q2NbVlwsuB0ge5iaN7eBecu9HyFnq/QXxv9tZHshQw2eAn4CUMbX4H3Yds+7NyHZjT4RkNtRjqKtqOUk1VL6axahubttby9Fg3voe09Q6P/GJxjaMugOYMNeNvD2+5HyHwE/wH4D0A/Dv04MsORGQ7dDbobMiOQGQE9GHow9BToKUrbRJFtoojY84g9pxVz2gqdH6LzQ/i74e+Gxj8O/nG+hv4a+S3Ib8H/MfwfQ38h+guh+0D3gZ4DPQf6Heh30PMBej6A/wb8N+B/Cf9LaObaZa7dJHQSeWLSIybd0/BPYw/jiplxrYO/DvoZ6GegH4R+EPkbkL8Bnc3Q2QwZ4sd70WDe9oPux9v/RMN/4plf4plfwl8Jf6XRRoTcTqvbmYutzMVWJJcjuRz+AfgH4P8R/h+NvGqQakf158KhX9v0y6gdM+rejKI3/c6gxxnQLaBbQOdD5yOPZ2J4xlmLnrX0fjW9X01f39DXN8jMR2Y+NGN0GKNTBF1EW6LOJer8JUT7EvhEsmsieRr0NOjroK+DJju5ZCd/HG3HQa+CXoX907F/OvQm6E20PcZaG67YNnlyDphM5V+GhstMDMC/k7Z3oocc6JEDPTPjJmNMoe0w2g7Dkmugr0EPHnPxmF8Vyap4g7XpsDadutB1yRUXkTcuQvNeetmLntfR8zr8W+Hfik70+GaNt4HfBroqNH1VeF37rUDbCoyxAmOMucysi5726GmPDW9jw9vQ2dDZyF9p8jk+XIvO8WgbjyR5Pos8722m981oroPmOoyCDOySgV3mzmXuvBT73Sfoj3KpyZn09SaSbyLZGM2NsYf1EmO9OLfhw9vQvAj5RcizI3hmR2C9+2a990WmL5azK2WxK8XI27FaZn1hw1/Q8Bc4aHPR5rxAjy/Qy0FkDqLht2j4LTQ7Y8zsjMSPQ/y4j6LnUZMTGOPVrN/5ROY39Euu8EyuOIz8Yfr6K/y/Qs+EnokMu4/L7uMehT6K/ib02wR7oGPQPrb52OY1RU9T2qZpm4YmElwiwR0DPQaaMbqM0Z0IPRFPrseT64m0OLERpy+qF5/qxcefPv6MbcCeDbRlRrKYkRhtY7T16MszfZFjXXKsezP0zSbz48NX4LxCL+xfvqmdbkLDTdC3QN8CfTf03WjYSNuNeOwLPPYF9L+g/4X888g/j4U/w8Kfwe8Ovzv9Eqs+seo3h26OntHoGQ3NOnVYpw6z5jBr3iD0DILGAx4ecLHTNXYy+y6z75JRXZNR34V+l7YP0fYhaNa1x7p2r0DmCuz/Bfb/AprVGmO1ZiGThYxHFHlEkT+EsQxBnooxRsXoke09sr3HXumxV7rsXy77l38xbS9Gpjoy1aHZoz32aJec5pLTXGxzsc2hanJM1UTN4FIz+PTl05c3ED0DoV+Dfg16NvRs5MlOvqlC4bvwXSLQJQL91cishr8L/i7GSy6NkUtdagCXGsA5gm1H6Is87JGHfWR8UycwL56Zl2LoYvRURE9F9E9G/2RkyF2eyV3LoJchX4B8AXQOdA40vnXxrUut6FIrxkaicyR24ivH+IpV5rHKvE+hP4Vmp/ZMNUIO9MiBNrWcTS0XewqdT9HXk/T1JPpPov8kfCoHl8rBG4qeodDboLchT7ZxTLYh5l1i3jpinbDOfvE/7GL9ovSrXPo1rjJf4BpqvsEVPQWA+RaXec5+kav0C1z69a2yX92KvrjFE24FzL/jZ578RJuy392KvrPV0/yLfYkxQvFdLf2m1tmnD1/V4l/oi55NfE9rcmIvVopdyOkb7Vf6kVHaVeZYjtXl/8v3zu+0qlp3yXMJ3zuvzvfOL+V755dZ+r3zGlZfq591ufWwPDl89fxKvnp+FV89/xFfPc/jq+dX89XzH/PV8zp89fwavnp+LV89r8dXz6/jq+f1+ep5A7563tBaa62zGlnr5bmRr5434avnTfnq+U189by59YX1D+sn1kF5WvLt81v49vlP+fb5rXz7vDXfPr+Nb5+34dvnbe1adi3rDjvPzrPa8e3z9nz7vAPfPu/It8878e3zznz7vAvfPr+Tb5935dvnd9n/Zj9l3W0/bT9t9eDb53G+fR7w7fMEXz1P2m/Zb1spe6m91LqHr57fy1fPe/LV817eKO831s+833kTrQe8Jd5S6+feB94q60Fvv/cP6yHvn95x6xFL/zWQYediOGhoNQka6jcJg1ZBW/3+nn5vr/Q7e8FAniH6TTa+n8cX9M5+PU//NU591ui/xKn/DifPPrD+a5y7zb/HqY9GktNAIun6KJKq07/GkCOzdq3Ek0aPJzPSROJJoydG9GRJ7NwhUaVfy79I4iUlUaURU4mIqcwX8qtI1DwksaXxUU2io1AiTCOjusTFLIkwjYls6w15LiMmahATl0tErJRI1i/hXyFRsF1iTuPgSuIgl6/fXyWxcMCqxazn2dVkvq9mpmszuz9mXuvIvPa0rmFGr5UZHWDVswfJjNbna/YN7BdlFhsyi9czi434dv0N9tv2Equx1B/NK+Sfm4/4cO+S+PDvPc/HX4yPjU88+0yNz4yeOd97FsQXx4uiZ0V8jTzrhXP+szm+I75bnn3yHOI5Aj4RLyl9Ai+oWM5TTdvLzxrRkxs9tYN68jQSaFbO0zJoHbQ7+3RB1jwF0ZP43nNv0DvoFww4+wwKhkbPiO89I4PRZ/saF0ySp4twzn+mB7OCufJofwt5lgTLBK+khXnWlqN9RLCR9iNKPRtsjZ6dwR559gvMKuc5LOM7VvpIq5OlT2iZ5/ueCmNh5WBZWP3sUzOsxVOnjCeiJ6wfNpZYKH3ErrB5mH/e00agQ9iVp4c8qYjfM+wj+OGzsVIU1AgfDQeX8wwLnw1HhWPCCTyTwxnRMzucL/+9SJ53wkXn9Jx7wuXB1nDV2Wd+uK70iby/MJiu8R1uInIXh9vCXRpj4V48cUDjI/xaqOOMNj88lXDUooSDdqNJIiVRgTkanaiayFYqkaPeT+Th6TaJurJ2xoZ1ZN3MTDQMChJNRPuyRIt4UaJVoq1E875EJ4n2ioluwclEIJHcrMeuRCbsETRLtJU4yRXZXom+if7BscTAxJCErkeN/2aJ5xnlPpmxWJCbeDHRXzSOTUyUtaMyjAhJs1Z0dnPjaxJTw8HB2vjwxEzh1xO5ifFDQb3EHKHGhscTC8TGxYmixIrEmsT6xGbW8hrzJHYkWK+JfYlD8hxJnIibR9ZqoiTp0Zv0lKwY5Car6ZpM1hDNh5K5ydrJeslGyWZB62TLaP3pCixItk7K6PSROKslb9vJTPdIdglrJQuSieS94Yxkb5ldma1E22S/5IDkIJmL/HCwxErrsHJyaHKESI+UZ3TYNdlPI5BRmrnKJ3YkYtRLyXECk2TkoiE5XfjrkrOSc5OjkwuTS8LqyWXJlcm1yY3JreJrJ7lT4z25J7k/eTh5LHmSGC8yc56yJNbeCXukYsncVGV5qqdqhg/rI+9qJXem6sgIng0nyJv64YxUY41TwYtSzVP5qTapDonNqa7B1lSPcFUqJfE4X8eW6pnqI30ukghdp+NLPRz0Sz2aGix+GZoaFp8oUTpAYq5F0Cz1bGqUZIGC1BjJEyOS7VITUpPjDYMB8f7Jk6kZqdm6riVmxFup+alFqXeSidTy1CqJUMkcEpG98U6B5KqRRkI0rkttEl2a7YhgJMkyRHDbYFJqW9A6tStIpPbKm5MiN0Ds2ZM6IFS/VCz1dTA03CTjPp46lXbSFciCUSZLV5W8JJkuuSdRIVEhnZ3OkTy30uS6dF66rvamPaUbBlvTTTSbCd6TbpJukW6VbpvulO4W1EvFTObS3CVjy0sH6bxwRjqjlqR7Scxo7MxI90331/gxT6Kt2D0iPVBzUnpIcnR6eDhGenle4ipf8kF+SnJG/Ej6xfDh9Nj0RHkzNT1TImNlek66U7x/vH96Qfhs/Eg4QXJqxfTiYEm6KL0idTy9JlyUHK1+D/rJ2tyYXi+2bk7vSI5L707MEUsHp/eF86X/hfGJYfP0mkRGLBsTLgrqpQ+lj6RPhLXSJRkvUzFTTfKclamRyc3UDiZl6mUaZSQbZFrKTrMs0zrTLpgrmhem1qVnBsvi/TNdMgWZRObeTO9MP7FxtOi2xK5lmQGZQZmhQb2MzFZmpKzjojA/M1rGkS+x0iMzLqyVmpDReV0iMTIh0TY9PFiYHJGZnpmVmZTsEpzMzM0szCxJDs0sy6zMrM1szGzN7MwsC5+Vn3uS0zP7M4dF+limYrp/5uQ9Vrjuntg9le+pfk/NTMVgf3iKaur6//uGbOx/zzdk+1oD+HeL9BvCVkGJZXf3rOzuljwxeSrLU12emt1r3ln5zsrda3Wv1S3VLdW9jjz1u9eH11ie5vIoL1+eNvJIu85OZ6d7B3m6du+qvxeu2rXqXdJHNU43FqcbhxONS83rcaLxOcXEqHmzOMVU4BRzESeXSpxcKlPzVqXmvZiatxpnlks4rVxq2dV6V+vPmGrpiaBglGUXjJGfE+TnZO+SgjEFEy4IJgvMEJj9AzA/gkURvHOBsFxgVTmwLoJNAtsuEHYJ7I3gQARfR3A8+nmqYEJ3R6CCQNVyIFsg5wIgT6CuQMMImgi0+C4wtvOge6vzoO1/AzoJdCsHgnL0KmTOg14XCH0F+gsM/AEYEsHwCJ6/QHhRYGw5MDGCqQIzLxDmCCyIYHEERRGsiH6uEVgvsFlgRzmwW2DfBcChSMeRCE4IlHwXenjlQMXzoNp/A2oI5JYDtQXqlQONvguM+wKgRzOBltH6KAf0XY/WAu0iussFQoFAohxoGcG9Ar0vEPoJDCgDg8pAqczQ6OcIgZECo8v0VRbGRT8nXQBMF5h1Xvu558HCckDbLhFYJrAy+rn2B+z5IdgosLUc2CmwpxzYfx4cLpO7y+bbKFeW5rEex87llx4nz8sfpTFSdl5L/R35KG6dszke+65NZ/NJ2RxQun6jtaV7RmnMxysXfDeme5v38eoCNQVqmRyh+0u8juHrmOL1BRqb/BpvXkCejOcLtDF7QLxDgcntOl6J93jXgrP5Od5DIGXGG+9p/BDvY/Kl6gQeFnhUYLDAMIFnBUYJlPq31J9to32ydA87cM7P6JlgdOi7uMjFZxi7vjdP583R2T0lmifGKntjfHZk2/xz7ZFvFf33bLPnMbZFEW9GGZhfDpy/L68rB7aV2V/L7rERsLeWwvn7a+l++T/ZJzsVfHcvDArO7YFl9ruzOUtj853op875qogv+SOufpQaIy5jiu+K+AvN/sG6PWzWU1xqivgBk4viX0fronQdlObFZkYPeW5QmTXS2OQt2kc58Htr67x1dTa/lNrfOPp5PJrzU2XaTzLrLZC6Jqhg7A7E10F2lMMXmjEEEhtBXtTuv8o/5+fx8mRKbS4vH5fC6DLwQ339V/l02Xlwfp4smyt3lsmRZfNhy6jt1ig3qQ8kRwdSwwUNDWhto/OtNU3QJOJJzgokRgONrah+CSQGg05RHpO6I+gW1ROSzwKJwyBzriYIekW5rKKpGzTPBVJf6R4dSI0VSJ/BEAHtU/uSPgLtQ+qhYGqUP6N8qW2pzUrrpsXn8ii6Ih3YODPKlzvKycPn5eCzNUyUh1WX1mPBHFPvBAvKtN9nxsN/D4zWiYwtWBzx+peBIeXA+bXgxHIg8uv36rpS2FwGdpwHpTXa/6Q2q1Hw3fqrdsG5uqtsjTUxaptbxifnrS1df0HR99dVsOJcjRVInRqsN7moVC7YbOI62GHi6WweWGfWlcYfP6WGDfZFtNSpwREDZddbcMLkiKDExGfoFXy/jhEIKxogHodEa0/yVlgt+lnj3BrUNRHKuMPaZdafrKuwnllvofgnlHwYtjR7TynoeDljrTdjDqW2DNtFuiV/hF2icUbyoeSfUPJPKPVi2NvkolBycKj2qPxQs/8p0E5qglBqwFBrQO1/tIlT3QtDqf1C8UM43fgrlNoulHHrOSFcaPwULjHyoYwxlNotXFtADaj5vzQ3hzLecGsEymtnYjvcafweqh/2mzgLDxs/6jyGx6J3J42OhGVyeULqpoTUPgmxPSF1TkLWbULqm4TUNYnGxr+J5lEek/En8qOfbUw8JKS+SUhNk5BaJpEqEz8Fph5ISF2TkJom8XDEj3JuQmqaxGCjX9dJQmqbhNQ2iVHnYvXsOSDao5ROjDEyiQmGp//eUpUVVfQL8P93V/a/5q7Mq++t1N+oOmutP1tWu0AgI9BLoK9Af4GBZX4OERgu8LzAiwJjBSYKTBWYKTBHYIHAYoEigRUCawTWC2wW2CGwO4J9AocEjgicECixrPaeQEWBagI1BHJNn+1r/8DPetHPRpF8M4GWht++9f+j7mvAosrONE/dKpCmSXU1QUITYoghxPanREQaqm4V9XN/KsRxCTGG2C7tOMQYYhzaGNYhxjaMcRzXJca4xnFtw/A4hHYYYxjXMbZNjDGsa1iX8fFxDDGu8WEdQlzCGsK6BIt9z3suirY93bP77Myk63m/7zvf+c6555x7zrm3TtG+gKXaxvjDqg/2UqAaqFH+B7oWqFNttesf9tluABqBLUCzU99O53otwD7goONvBdqBTqfeLuAU0A2cBy4CfcBV4Dpwy9GD0/RU/DAw6uirTrnRafnjQiSwRBOpANZqIhPIeajluCRmAQXvXE+NRWIuUKTG8h+lsx/Vcp4kSlX9vE+On9ebDh2IPdQc22znXsq60dHEMue+yjqWP9SJlcBq8R2zwzxmnjBPm2fNHqLXvGxeM2+YA+aQOWKOmROWZqVZXivLyrXyrUJrvlWMT5kVtgyr0qqyVlirrDXWOmuDtclqIrZZO5jejc9e6wBw2DpiHbWOWyfNEesMajtnXbAuEVesfuumddu6Y9217llJ22On2z7rtp1t59mz7Tm23y6xA3bEtuyldrVdY9fadXa93WA32lvsZnun3WLvsw/arXa73cn8RrvLPmV32+fti3affdW+bt8iBu1he/SJGE9gLpi9iQznk4nPk+wcfGYlChJzYRc5n9KETsTwkf8tSyxPrEysTqwl1ic24pnwnGtEMuy4fuMaE5pr3PVb4XFNakKkailaqkjTntYyRLrm057FbjJTyxZeLVd7r/Bps7UPikxtjva8yNJe1V4V2e6E+yPiPSkbU74gnvPmexeJ93oXew2xwPsH3nWiwrve+7IwvZu8fyQ+6t3qfUV8zLvd+1Xxce/Xva+LT3jf8HaLbd4L3l+KZu+wd0y0/wtumfw/jhr49yqnxTwhzGsObgADDoYcjEyzJcaACcdGnKUp20pz4HWQBeQC+UAhMF/FWsVOvPSVTUuHHW04qHx4TatKpfEUmIe19HA1ybXUw8/lR9aU+hybWlvmgOU1h2BhhZk9zhqTq6zMvIZVVozraeKZFCvFFiLlByk/EJp3lneWcHuLvcXC4zW9lkjxfsT7e2KGt8q7SmR4X/KuwX34rPdz4n3ejd4viHxvk/fLYra32fvHotB7xntGzPF+3/t98bz3jveOmPv/uXaXKBZlD//6aOE+8YxZYM41ixa2mKWmDsTMxKIN5rIXzi06aS43V8pfHn3VaNWMlKdSnhLC91nfZ+F52fey0Hxf9H1RuH2bfZuFx/dl35dFiq/Ft1/I/yvvgnaDb18W3r7EQr/QpkGmXY9B+t3TIH1Vxgmjx+g1LhvXjBvGgDFkjBhjxoSpmWmm18wyc818s9CcbxabZWbYNMxKs8pcYa4y15jrzA3mJrNpkcfcZu4wd5t7zQPmYfPIg/yj5nHzpHnGPGdeMC+ZV0pKzH7zpnnbvGPeNe+ZSctjpS9qtHxWtpVnzbbmWH6rxApYEcuyllrVVo1Va9WZ/Va91WA1WlusZmun1WLtsw5arVa71Wl1WadQuts6X5SF9uFjXbT6jAHr6sIO6zoiby2utAatYWsUOeO2sFPfSk9dx86wM+0ce5ZdYM+1i+xSW184ZsfMdXbCXla81V4u67VX2qvttfZ6o8feaG+2t9rbzbRF9fYue4+93z5kt9kd9rGp8XvTOD4+no62T9inzaP22anxtXvsXv+ofXlqHO1r9g17wB6yR9C6MXviQf7U+Do6oSXSEt5E1tR4Pz7uidxEfqLQXDGlp677+LjLcUnMTxQnyhLhhJGofDDubzHeiarEisSqxJqpcZ/SU/4Hel1iA2reNHVfrPREE1p+G7Pe7Yv7PopZv8z3MfGU7yXfS+Jd8rdSZy2s9q3GWljj+zTWwmd89SLVt973eZHu+0OsjgzfF3xfEM9gjfyR8Pm+5PuSmIk18orI9n3F1yye8233bRfv9e3w7RR5vn+HVfN+30HfEfG8r933A1FCZrvTD9fpvDuiytxobja3mtvNXeYefKTcT33IbIMuBfj2ENvj7HgyrzcWY7T8nMC+J0up+F3IkfVdQ4034B+Az3nHQL0j8MjPIUsz2/COkIb6UbusOzZrqm6zF3slEMN/Zht3iqX/NKPj6U/JEjMwOvKvh8XcS8L1BKQ62uNoN6BNy59eLuUt6vhYfMI4bBwBjsI6Hj26oNY4uaA2uiF61DhjaMY54wJwCdYVI83oN24Ct2HdiXTMW7sgfd5a467hNe4ZWUbS9BhJf4+RZaYbuabPzAbyYM0250D6jdx4wsg1mswSM2BGzMC8E4i0jNxIhrkUqJaRRv6CRrMGqDXyzbpHyyG63mww6yMxXqEw2m82Rvvj641Cc4vZXHzE3Gm2GHfMfeZB1Jm5+Gok02yVdcbPmu1mJ9AF69Rjbemed8I8P+9EPMMoNi8aZWafedXsW3TDKIvVGWHzunkLiMAajF03h81RYDyaW3zE2GQJKxXIMIyo16i0Mv37rUwrx6hc6DWq/B3WLH/H/G1GVfSCkevvsQqAuexfllVkNlhFTh9WWKWWDsRgJSK9kQxrGbA80hvrNHKtldZqayXuhiz3zlOPtNpYZa211gMbYW3G1bda262t8/PVPbJ2WXuA/SxXaB2y2oAONZ7zYtYxs8U6ocbTOu0fsk5bZ2Wk1RM9Z/UCl2Ut0Vzr2oI+65p1g63W5hVYA8DQm+eLNWKNWRPWmHHb1ublPDp77DTba2fZ3li3nTv/7qNzKTJi59uFdr6/x54vW20XF3vtYruM97bHDtsGUGlXxdfbK4wme5XRFC00mmIee41dZa+zN9ib7CbTsrfZO+zd9o7oDmNH5DRml8/eCxyQ8+zRco/Ns8dS8VlWR3yWffjNc9A+Yh+1j9tHY+ftk5hZj8xI+4x9bsFB+0Kk1L5kX3k0FT87r8DuB25yfv4DMzJ23b5t3wHuqjlonLHvAUk5BxOeRHrCl0i3MhLZibw3z8HEbH/P/CtPnoOJOZiDqXIOMuVPlCQCMpWIyPmZsKxYYumCceZVJ2oStVN5iTnzJqxUmRfpTdQl6hN11mk5C2J9iQZrGbA80RjrNJuj2xJbzJZFA3IksHs+5fuQD98QfXN98/FWtdBXImb4gj5dvMsX9lVgx4z6YuJZ3yd8nxDv9q3y/WuR5dvt282/EnrW2XdrfbXYd+Xuq3H3dXP3ncHd92nuvu/i7uvj7vssd99s7r7v4e6by903j7vv+7j75nP3ncvdV/57QDtdZ/h3PHy7+1AV4XL0P4TpMVUVRnxOoYj74yXxQDwSt+JLoyvj1fGa8Nl4bbwuXh/oijfEG+NbmG6O7wx1xVvi+0K1gVPxg5Gl8dZ4ezAR74x3xU9Fd8W74+fjF+N98avx6/FbH75QsTd2Jz4Y2Rkfjo+GauPjFbsNERVG6nTEu40MI9PIia0wZhkFxtzoNaMoVGuURlcbuhEzEoUDxjJjubGS7Ztq41Q7gQ9dNFbHqyt2VOQba2Ubw3uM9cZGY3NF/odvyvZKGFuN7bLdU203dkWLJFB2T7zT2C/bjrYcMtqMDtl21W7jmGx3pM84IdsuIW0J47RxVvYlMtvowR1I8xX4CnDHn/c9jzu+wIf3aN8SXwDzJuQL4Ukb8UVwxz/u+ziety/6Xvwne3eJiBV8dwlIDuIPFgmhH3kImQ6WPgrph9Zip2KnHnnrWua8dcl/iUZDT17km9Egv1vE0B/X7MuEOzDwwHbFWqg12vuEq+yucMMWErC95YPYLeo/NAbdEKuPNT5Zz7vhpLe8jW529M630Fve4k6VPrhTT/FOpfNOPc07lfEW757y/+Zpefg3dB+4QrgcZEdPRE9Hz0Z7iBPR3ujl6LXojehAdAh6JDoWuBWdkP6YFkt7R/BGr0nttCaO1ti+BHpQ6asUbu5W0/vlfzAD3U6/ZA/SeR/fzX5lsR8z0Y8asYNzJCzP6D8ARC4pSPuF3UJEa1U6WgfUK3+0AWgUGdHKaBU+ldEV0VXQayAro+ui8q8LZ7xNi+QYp7MtT/8joyXz9Em2eQXeykV+Ddp396Euvazs0hG0/yR891Sa+bAjSWWXoS9R3Lvy1dDpIjMiIj14u7kcuRa5ERmIDEVGImOwRiITUS2aFjkU9UazONKFznNhHlq30LcQ37YX4emQyqdDOp8OGb4Yng5ePhee4XPh2f+Hki6RK2azv/wb1PevI1yReq7FT/pq5Bs/9hKXdkMbx2zI0K6KLvSz2oHsdy21K1LnpB9CQz1vZ0/3Pcn/aHzDA1te781oRN6WaWWbHyu/84lteSftfLu4t2q7iLQA+6alD07TrY9B1tUOdDrjWvsvdIynl318jLt+Z8bYFRoOjYbGMfM9malYpCLTzqwTwRwtRxefygnnvCj2Tc1/r/CWIC5DOyzwHAtVO8A1QrWOfhSuUP3b2tN9T/I/Gt8wzd4yLab5sbidT7zmO2nP28W9VRtFCOMf2jctfXCabn0Msq52oNMZu6nx++cYx+l4fBy7flfGUbsWLHvuWDAcNIKVwargiuCq4JrgOmBVcAOwiemm4DboHcBuYG/wQPAwcCR4FDgQPA6cZPoM4g4EzwEXgEvBK8H+4M3gbeAScAe4S/se/EndI209XfcpDWQj9gp0XrBfz9Nn63Ng+/US5vv1QPCKHtEtfalerdcAEaAWqKNdD3+D3kh7i95MvRNoQawFvQ/5+/SDeivsdr2T+V36KeR16+f1i0j3Ad3AVeA67VvwD+rDtEf1calDAkhF7HnoDP1iKCOUGcqBPStUwPy5oSL9fKg0pIdioURoGVAKLAdW0l4N/9rQemnreaGN9G0GtiJWh96O/O2hXaE9sPeHDjF/f6gNeR2hY8QJ4DRw1klL9EyzT4R6Q5enpSWuOVr6b4QGgKHQCDAGTAA3whqQFvbSzgJyQyPhrHA+04XAfKA4XMZ0GP6BsBGuDBuhoXAVsAJYBRjhNcC68Abam4D54SroJqa3ATuA3eG9TB8IN6GOw+EjxFHgOHDSSUucmWYfDZ8LX5iWlrjkaOm/Eu4P3wRuA1fCd4C7sO+G7zGdrPCE+yvSAR+QLeMq8sJXKmYDcyr8FSUVASAC+CssYCnspRXVTNdU1ELXAfVAA9BYsQX+ZmBnRUvFvoqDQCvQDrRUdAJdwCnqbvjOAxcf5O+r6AOuAteZvlUxCD1cMVoxXjEaEUAq7OFIBpAJ5EgdmQV/ATB3Kh+6CCgFdMbHIgnYyyLL3zFWRlZH1gLrIxthb4YtsTGyFb7twC5gD7AfOBRpi3QAx5B/CHEdxMbICfhOA2eBHqAXkG+r7xTL8Db7JKh33SHosciEtKNaZABvvPBHvcofzZK243+LeqK50fxoITDf0cXRsmgYMBxdjO8GYcCgLntTfBW/RazAtwil1wEbgE2AzGtCuW3ADurd0b3QB4DDQFP0SPRo9Hj0JHCG+lz0AvQl4ApwNNofvRm9Hb0D3HX0PSAZvR3zQCMvlo5Xb4VsIM+xZzt6DuAHSmKBWCRmEUthL41V066J1VLXAfXwLZXXjjVIxBqjl2KNsS20m2M7qVuAfbEt8B+MtTrIBvIce7aj5wB+oCTWHuuMdQGngG6gPXY+dtFpSx9wFbiI9lx3rnsLGASu4xrDsdHYeGw0LoBU2MPxjHhmPCc+CygAMuNzaWfGi+KlcR2IOXo6Ek/wLQOW014Zi8RXA2uBlfH18Y3Umx29nvmPxmxleruDXVLH9wD744dgt0Ur46uBtUBbvCO+kfqYozuY/2jMCaa3O9gldfw0cDZ+CHZPvDd+GbgG9MRv0O6JD8SH4iPAmKOnY+LNPkMD0qRteI0sI9fINwoBac83ih9D2QM7bBhGJVAFrADCxir6JNYA64ANwCamm+iT2GbseAy7H9h7jQPGYUDqI8BR47hxEpC/iJyDvmBcMq4AF3i+fcm4bdwx7gJS3wN4em2mmz7TY2bTzjNnU88x/fCVmB48x6sBi7qWdgOf+3i+mwG92sS7QSiTOC+1fKZDD8rnuHxemxZi8B5hVps1QK1ZB11Pu8FspN5iNkPvBFrkySvQyl9C9pld0ePmqehxPWJ2m+dhXzT7iKv87aDPHORvHeNSW8Ict1KtDCvTgbRzgFnIKwDmmu1WEeqVsfLXjBiQAJY5tsRyYCWw2rHXOvnrgY3AZidO/johf5PYDxwC2hxbogM4Bpxw7NPAWaAH6AUuO3HXrBvWgDU09WuDhK1BD0jI3xkcW/qz7Fwg3y6EPZ/5xXaZnWZN2Gl6xA7j3aoa71mteO9qxTtYK9/XInqrbSjNPPnehvtmV8JfJdP2CpRr5Xtat70K71LVoQK8X10E+uR7Ft+xcuw1SjNPvqfhvtrr4N8g0/amUBHycJ/tJueXi73AAeAw0ETI3xuUvZf6OHDSPgP7HNMXUO6Ifck+IvtrX4Gv375p3wbu2Hfte3Yy4bFvEul6a8IHZIdyEnnAbORJzFG/BeCbXxq+IabjG2JGZqFIyVyAb4v5/LZYgm+LqaI6Jy1ntvhkzvP45riR3xx3yG+Vz254doMQz7787MvClfnpmeVCk//MkvZ3wpWxO+Psw++TCzUHaYDX0Y/CtTD3be3pvif5H43Pn2bPnxZT/Fhc2ROv+U7a83Zxb9VGsTAMGNPSldN01WOQda0AVjljNzV+/xzjOB2Pj+Oa35Vx1L5UPrIgo3ysfGJBUflEQAPSAt5AFpAWyA3kQxcG5geKgcJAGdLz4Q8HjEBloApYEVgVWLN4dWAdsCGwKdAEbAvsCOwG9gIHgG2Bw8AR4ChwPHASvjPAuQf5OwIXgEvAFZledDfQD30zcDtwB7gL3HNsiWTgdtADpDu2D8gG8oDZwBwVV7Q96AdKivYHS4KBYATaQnopUL0kPVizJN1fpXSwdklJsA6oDzYEG4Etjm4O7gy2APuCB4M1wYP+KqWDtQs2BuuA+mAr4lqD7Y5uDnYGu4BTC0aC3cD5BRPBi9B9wFXguj+N/lvw3/JXBgdhD0v41wW7kZZgvJM36l8FPREcRDmZJuiTdSMuOB4cLBcyrQvUMSjLlZ8GztKXCmQsmNAzoXOAWUCBP43+ufDP9VfqRbBLAd2/Tk9FWoLxTl7Mvwp6Qi9COZlOAEX0yboRVzauF5ULppehjiJZrvw0cBb2Bn05sNLfpK+GXgusBzb6t9G/Gf7N/nP6VtjbgV3+m/CfI1S8ytvjvwLdBGxjej+wlT5ZN+LKc/St5bOYPoQ6tspy5T1Ar75Vb3thg962YEzv8Gv6MaANOAGcpp0Lf75+lvb80kzqMiCsH0OZNr+BfEPv8VfBXlHey/w1ei/yemD3OFrW14N6UAdjLyN9TcaWDesog3JVqKcK16/i9dugbyjNPNkOWXYA9pBMl6fq0i/rmvKN6GP6BOqSbR3xayENSJN2yKtPhLJCubTzQ4XU84Fi3IMx6DLkl4XCIQN2ZaiK+Sv8u/WxUBh1hB0t6wuHslgHYhfoSK9i7Br/bthVKD8RMsrPynroN5xrGsyT7ZBl1yG9gelN/t2wUdcDX1uwGzhf3hu8CN0HXAWu68fov6V3AD3BQdjDeluoSe+Fv4dQ8SpvFOUHETuIcjJN0Ie6ZVxoG+whmdaFLv2y3MADXyqQgbmRCZ0DzAIK9GP0z9U7gB69CHYpoOu98PcQKl7lxVC+CLFFKCfTCaCIPtTNuAHYQ0wv06VflpvyjejLgZX6hL4aei2wHtiI+yX9m+HfjPuyFfZ2YBfu1XKkJRjv5O0JVUFPYJ6fZXo/sJU+WbeMW4f0BqYPoY6tstyUL9iwZDS0A9gN7A0dCB1eMhpsCB1x9AGZPz0m2ODPZfqog+Pw7QydBM6EziF9AbgEXJF2qD90k/q2o/uZ/2jMHabvOkB9oXuhZOhe2BM6F04PHly8OuwDshevDh5ckhfOo57j6DyZ/1iMX6YXbFQIz5Z6SQSwwnOQ9hePh0uAAOBfUrPER13r6BrmPxpTx3REYYn0RZbUAw1hq3gw2LpkNLwUqMY4tIYOhGuojzj6gMx/NAbjJ32dChy/Toxfpxq/cC1QB9RLO9QfbqC+7eh+5j8ac0emH6svGeyU44f8xpI7wF1HT8e9J/iS4cYlHtpblrQC7Y6ejs4n+LqAU9Iu31W+p3w/cMLBofK2cDOwE2gpb1uQGd4HHFywHHo59Ei4FWhfMBHuhO7yV4ZPAXg+hvFsC+M5SLubMcgvGw93lwum+8pPwz4b7vZvCLcC7f6m8FXoLv856HP0XwS6HbTLvPIclJnFdF95D+zeMPaccCvQrneET0F36T3QPfRjHwljz6HdzRiZPwB7iOm+Bzb6AbTrE+Gr0F2hcPgqIP0XgW4H7cxbF+4ObWC6b8pe2BK+DtwCBoFhYBQYX9hSIRaOVqQuHEX+KPJHkT+K/FHkjyJ/VOUXba/IKNpfkQnkFN2omFU0UlEAzC3Oqygqrq0oWjxWUVqSX6FXxCoS/5ffbVJmfmZmvRAzX575mvDM/N7MbhGaef494yKe81LOS1qTcImfaj8RklFSsgEdTkkRkmsnS/6b3WQe0qRH+wX9LdKv2IYkVZqQXHHSv0rKlMtSevz03PVckow1rKeB/gIyDw1KO3UjY9ZSJlj/MGsbJQNQjcMGVCAku49kVTlMz1cdxiC/cHiGxG/IRVT5kElIjJNbKIs8Q52UayX/kOuIrE3rU+xEys/I/bQ11jBM2UjZ4W6Rf+uL/2QbYGvbyOuzXDIPaT3kBCqhXeL+G1kD4yfJBvRuh5cIUvxcxqQUs4Z7UrqrWdYg81BAelzv9hyS48BS2WQSmsOYww7zEGRy76RkhKqavCQ5EmjXyLZpfdJ2mbRXMteg/Qbta4zcQjuNdoC5P2Spcfr/jP4C+v+C/lLac5mbSvsztP9E1SBt108YOcTczcpmbqZqGz23kpKhZz5jMllDEeUa5l5Vkrm50k5WT45hnhRKj6cw+SrGoYK5XUKy1vXT3pZ8XY6M9Lif4d2JJr8tR552mDIplsoZyHp8UroWyRhtRNpinDEHWNt/Y+4R2c6Uy4x3MbdNXsWtSTv1ffR0Mj6N8W/IXNco7T1JMkgxpjr5XdlHaaeomdNCOZdyu/LIlni2srZG9msf7QD7tYaeDnrOsF+/ZKlvsEdNvOJs9uUw+3KBkevpX8eW7OLV09W8lXWmFDP3HOVBtvwI7UrG97M99fScUtdl2Wz6z9PDO+K6yjFJOFd8jvVLHimv6jvbc5uROWzh15JYuaJbSnc+Y947OQ5Ps7yu+A3buYG19Tt9l54G1nOdMbeldIdpX6e/lTPqGK+ylVcZUHeBspTxTdLvnqBnOftYlJwgJ9yEHDfKXVK6hihv0pPHmNu0M+k/Rc8v6VlGGaD/nJTuOEeghPerh23bzKuv5XVvcuZ42KM5av5MfkLOZLYnU3rSsqWcUaNmqRyl1BzG35Z2isWYDHpWqnkry3ryVA1yprl2cPRqkpJfbT1b2EE7PflJObuSkrHs3ZTLWKqHo2fSXiMjXaMsVUR7jJE9rGEP7d30X2Wve+kvpOfXzP06Pf2s7ev0VDDyV1JiR+NMYN8TbPlS9uLnbMNNecdTOQ+1fbK/njtSYnxeZ19e50r/Nlso45Oswe/czddZQxvZaOTKzeK9+AhzA5QDnDOXWWefM2JqHGSbDfbiJkcpm/53UdYwcr1zxQnOwwnO57ucGypSjtgsaWPfuMsdQMbUUu6h55OMzOW1chl5iaV6GHPQmV0y9x7nzzYpXUlnl3uOfq5W3n1drW61v3EWDYtnuE4hZ+RxFnHHcA8yvo6Su5znOMd8RF7L3ZH8GWf+Xc58OX+WOzvPXc5qNbaytX1sv5ppuzgaQ4z5Dv3r2fIE7Y/Sf4Q9ukq7k34reYV3to12A0f7ruRg4BWXOftMsXyX4J06wTv+X+hnj7Tvs+wZ3t8N6i7LGKwUcuyxd+rZdFjddzluYr+MwZ7zOuuUkdlqB3Z26efY09fZU1nnCY5VlrRTZ3NUG3mVQ2zbIdZQ7ax0Wc8qzroCytVswx1nx5ayhvX3qp0weYB3s5g7/362pJjxgs8IWed28tUNizqujjp5Byc/BnsF7/gQYxrUTs527lajp/2Y6/d1zkzZr7PqycjIV+hfzj7u445dTc9sPgvUOHdQpjE3n/2Nsac3KFsoJ1izwbsfoZwtZfLA5C3huv9XUqJV1XJ9seW/p55NbMmu5A/Jyiz/spTP3JRmti2fkdVJvv+wbJ6YhavnOu2fRcY7+a8HpFMKz07akIr9TggyTCjuMcV4p7juFL8dOe0cNjsy2CnuOsVXpzjqFDudYqRTXHSKf85hniNvk+KZUwxzilvOYZVTTHKKQ45cYooxTnHFKZY4xQ+n2OAUA5xifVN8b4rjzWF3I6Ob4nJTLG6Kv81hblNMV4qtTXGHKIY2xc1GfizFx6aY2BQHm2Jfc3jXFOMa+TkUy5riV3OY1RSnmmJTI4+aYlBT3GkOa5riS1MsLBwrxY6meNEcRjTFhUYGEcV/5jCfKbYz8pwphjPFbaZYzRSTmeIwU+xlirdMMZYpljLFT6aYyRQnmcNGpnjIyCOiuMcU65jiG1NMYw7HmGIXUyw4HDHFJeawiCn+MMUcpmaIYgsjT5jDEEZuMMX75XB9KZYvxQioOL3I5qV4vFLIBONwd5G1S/F1KaYuxdGl2LkUL5fDyMVSacxV/FuKeUtxbjlsW+TZUnxaiklLcWgp9iyHN0sxZpFhSPFgKQYsxX2lWK8U35ViulIcV4rdSvFaKS4rxWKl+KsUc5XDWaVWDUdAMVQpDirFPuXwTpFxyuGaIj+Q5nBK8bqKCZL8Lg6PlGKQUtxRijWKfFGKKUpxRDnsUGybYoRSXFCKBUrxPznMT4rziTxPiuHJ4XZSrE6KJ4lMTg6HE9mbFG+TYmxSXE0OSxP5mRxmJsXJpBgcFQ8Tr+5wLynWJTXTFKOP4ljiHVS8Sg6jEu+aYlFS/EmKOUlxJjlsSYpTkKtDcSM5rEiKs1AxIbE2xX6keI8U45HDdaRYjshjpJiNHE4jjp7iMVIMRoq7SLEWKb4ixVSkOIocdiLyEilGIsVF5LAQkX/IYR5SnEOKbYi7mWIYUtxCDquQ4hNSOwDnm2IPUrxBijFIcQUpliCHH4jMQIoTSLEBJV/0xCFXSrbm5NO002kvor2I9mJPArIkZRP9a+j/Ju3dkMUp36WdoK3KLqJdxbILIf30l0huadQjyxaz/lWexVKmvEhm1ibYWZI9PZmVInl8uxjzLXnd+7Tvv8E2NNP/OdqLaS+mXaJa68gmypcZgzrv/9wzD/Km06N5zH2RrWJPPeXs12fZ8nXSdl+jncZcwVKv0fN5lv0oPc/QrmDZf8PanmFLKihTGFPKmLWQRbSLaBd7AvTX0y5lDfRTLmZuMXNf8ASlTPkcWxJgpLQXy9MYxKhx2M3azrC2BO1vMVLKhZ4OxihZRlnNmDrWf5L1y5F5MaVXzofUX8r5QDud9iLai2gvTnlV9i71JP0N9B+l/ZK8eupO2j+iPUz7jrRn5LDsaTkf6C9J+Qrr+Uv24jecCbL9q1KvyPkwQ/YiKzUk5Qx5la7U9XI+zPiKnA/Svv+GtJPNqV+T82HGiKw/dUDKGb+i/VNZ/4xB2r+lrWI+RrmYkb9PWSdniGzb/ZuqzanfZHwbbVVqiG0epb+Afp+UMyLsnZ/yV+zvduaeoJxB/wuMjPFad+i/yDqL6VEzQXnGmfsi43fxihc5SuOUr/DqUUZyDs+QkUW0i2gXp16g/x7teaxH+QvZkhW0n6f9Kdbzd1KmzaDNOZ+WxtwX6flT1vY9OUNYwwusYRHtRbQXp/4rxv8t7WzKmSxlss3FbPMa3uVX2dPfMJdtS22n5yXKH1GOMvc9ct7O+A7t46yzm7aa539N+Q36T9C+TPvXnMk/ZmvlPFw8+ZrkBZ/8z7T/Sl6Rsnjy27Sfp5SRRU7ua5RtjG+irWQO5dfpV2WP0T7G2jopf0bPz2hfY4z0L07myzbcn6TNe5c8KHPv/0JG3ud8SK6nR67oxfffkO1RnuQrlPmULMUaFt0/z0iWvc+Rv/8q7QHW+UPaV2kPM5ez+v5P6Pl71oPZqH1afpPSqvitgd+VtCXSIz6ovh/Jq7t4mqfx7M6lTucW0v4mJU8Fxb+nzZMlF+sR/5WS34tdRyl5LipepeS3G9cHaP8HyiwpJ/+M1+JZh2sv/X9KP7+Du8Yo1bnWLyh56iX+gvL9jORp5KRqLU+NBE8IJ39CWUs/v0OJ31Lyu57rZ5SfpKeP8hOUv6L8NMvyfCn5+4z8OP38li14vjT5Y9qqzTPpUSe6PNNz7aTkiajgWZNLnUtspIc9muSZYZKno/e/JeUEzyIEzyIEz/Qmf0rJ78uamzV8mbkcGfEleljW9Rw976H9J7Tvsyy/RSb/N/1vUL7AXHW+sYSSpwqTMUbSc5+nwa6XmctTkUmOv6bG8xo9PId0dTOGJ58ufsvmAa5L8DTVxW/f4quUPFnVeBrjukX5Iv03OcfU2Ttrc/1HSp6daqrOVyjZBtcfsJS6L1HaXYxUZ2Kz6OdJiJttcHNWuHj3NTUPOQNd+ZQ8JXbxjosblKzfpU5BG+nh2YvrXbQ5tpPskeuj9PyIkrVNcma6fk7PFcpPUfLuC979SZ4YJ7/ASH73F/+JspKSJ+eTTzOXNbt4ki84W0SIvbDp/wElf5UQ36efc8D1DXq+TskzE/GXlOpOvUb5OiVPv8X/oGRtgit38o9pf5tyCyVPe4TqlxqTz1O2UnJeiQ+zrFojL1H+kO1RK4s9En9NyRk4SXtStZzj7+H+4OYZr4st1NSew9mrqXOkbbQ5M12XKNlT92fp53mv63uUH6HcTMlzZjfrd7FH2jx6uM9o++nnehGfoU2P4A7g4im0xh3A9Tzb+RQ9vNcern3tu8z9W0qesGmcb27+uuQ6zTvO+t3cqTSu+kn+CiP+nJ6TlBHWqc7xeMdd/J1CfJEeta9yPWrsHd68pc1V7+aO4eLvDq7/RQ9ngqZ27/9JD3ctTfWRu43rb+hXNfyauV+jn/dX44mchzPZrWbjcXq4V2hcLy716xLnsHaRueydmzu/S51MqlNHznaNMy2Fq9vN31Y07jke3lM3V5mHvdP+OyXnsJs7huD+4+FM0zi7NP5u4lG/2nA2apwPk3/uzA28J7jVHH5N2pNq7ZTSz90Aa+EyZ4j0qHm+XtqaGts2Z7bA4+FzSuOzD6sGHqFmYNKZOfJ0d7mTK8+9v+vYeBYLtUv/IWvgU8+jZoKaq1yVk2oWfYst4b6H9XiZK2UEfq5TjWsQnmGuL0iPenardSQ4DpyZGvdGt7o7as26nZkg61d73c/Zd650N/coD+NTudY0zh+Pesa1snc/dWxcN7WcMXz+erhONT5PPVW0qzg+fFq51Vrj3XSrNcVfGN3c8Vxq5aperKZUv0WqJ4Va0fwFxKV+qeSK1j5EmzuVi3fKzd1Y4x10sR433yXc/5YjpvaBIsaouc14198zhrX9H+6+Bjyq6lp7n79JxPB35kzmZP6YGSbJJHMCFBERERERYxoRMcUUESONQJFijIiIiICoFCmNGCMXkVJALsU0pkqRUow0Ui5FRMqlXKQpIlKa0hgopVxKk5m71ntmSORp1ed++PS5H5v9nnfWWvt/n733yczeR/oV+CfQYhZT7NEVc7p8O3A95E6UFGVX0GoyUlHsOcu+R/CtpdoTEtxBKr6vVI4CcXermOkU+/tTjPMqVibyVZCj1RTc+5I9UmHtIWMUUr4H+U3g94CjZypoLxkrJQVztIx7SsE9peDeV/EdqIw5VLF7DlY+cfTnBMarBO64OPpJHN9RxrEyUezawNpGtr8rQV3FUVftmFPiaOV2tFp7H0gw67VjzIljHmxHTuIYtdoxzrRj5G/H94BxjGDtmJ3j9kxhz0dYyyXQUgl7rYheGscsH8cdHce3xnHMle24j+Joi3gF7O1VFsbehL2SwfpBYKyOo2biqP842qsdPSqOO6Idlu34XimOHhsvAI4G2nKsQNqx/mzHPZt4HfELcQFYA9zF+Lft4K8DyyEZD05PPbQuh6V0O3JLPPFntiSswfqZJb8D/iEZ5wIe2/l3I/LkeAZjgp5bxV+VhTzn2khtKElFju8RTqDVhCSa0vgXKU6b818PRCL+GHN+yiZke2f8I/C3gd8GTgW+hbD9EU8EMbwP+4XQ/hRyGZKTkFQAH+K/tFN/l5Sn4/eD0zOgMirxMnPtMeD3gGWw0aHtDsl0SLqB3wEOSft5SDRIHiF8KD4CEgXo43TVCYzxkcjnOsbE95CfrpAgh1o7bBzQ9oRWhiQd2t+DZwC5vZraz0GOksbHAidCci/4k+D1jHTHswS1px6F/CXgDOCz0GYhXT8kSyDxgj8I3gtoW16BeP4MjvaKPw3JH8GXIdRgLjvN6lwnd6KeP0ZNPo06Qc1rw4HfQB2eYy2tU1gyDng95G2IYTz4CcRzBpJvoZ4HQfJr2FMtyar6XcLr2vlbKhWtqXK9ySr/ZYDwSv7rZVI7BUh9TM7hv3TJ1fFTjNwuco5WCFwE3A1tAng3JGvB7wHeB8k14F8HzmFsPwr5W5BUIZWRiL8L5GOBLwIPQe6B5UxIfgI+C/xm8EnAlxDz3yH/JSSvodRvotQPo0TPAM+gvDcATSr12aT2EeBfSTJA3UO4JrGRufYXRgf1H+nDeAvwdsiPsU38ZmhfBD4HnM9Px1x70pr2v8HmDg7VTjHL3bXr+EktsYN4Af9dSO7u+AEkOiO3nVyg8Xfr3eMPw+Z14KvAl4FRhHoTNuDcnwl7E96j8q/OtsS/j3q4E9gInM7y9lPQzuTRpt1uQe5pOnqCrr0N/A3wHdY67oM9WtbBvegG5Q5IYmi1xcC/AV9F/HugdSL+Ysi5p6XznS7rPJ5Qihng58CXw/5qcLSI8mPCShrXqQVpLSbJ76HXVWslkHBZ3ovPBvaC3AKOAO4DBmG5nlH5T8TwOORXQ47+qXUFZgPRozQJ2meRh3HIgwGkUIqs3kJYkZgEzqNiRfxt5lxjxH8MHAPtGcj5O+gslUYY5frEHOb8l3DCC5wfdRuXN1ku7pPVDhrZpFMskaL23dfO9Rzlv+MRbgHKwDog98wi9WVGbimaO7wcQ3wJJHWQ9AR2hfxrhPO5NqQtSGU++uF8/tsd1f/j4PnA7wKfhjzIz1yqhfxMZa4VAHcBc4BvA39BNj+i9QuPYxMxXtUBHwX+Avgs8HXY3MmzD/coaT7y49SizOOvQl4DXgS+APynwEGM6ivIWzVzRxb4teB2z18HzEV+cpEW36Hv81hNrfk6c3U1JPOAf2J5O9LV/o4UM4A/RD1MBz6J+Lsj7CrEw7/SfF/5NSSIU+MxKreNx8zl6ieMCR6v7tO4n9/nuJHwg3hP4FqMM8ORt3sxVvdk5L9MEh8L7I4UA8jJu4z8d1oqlwnJJ+BPAB2wrINNGSRPATMh2QOtB33ABD4BRH+D5Sm2pJniA8bEeK43HtnkHzn4V6lunmEJVyDPQ5HnbyKH6cjzOfDbgHwycz7/8lNt4D4vOVX+huvf7fZV+RcX96ppPBrHz2FMXoR5PI21yRl/HPBOrE/8WJ/cgBnzL5DfDSyBFjXDd5x0L8+kFOcdjG1cM2tVnkOf5LWNtFbj1lmLe6GMLaW9yE8Zf3Mk7Y2/Bf4ptDuhfQCSMLSPgNNqUO6p7EWcf2SuxYAvot15/Lwu0Q0lakN/eAzynyBXheAHoD3N3PE4JL9EWSpRugvgCvgjiGE0wqKu2vuhp30L8ncgqQQ/Bh5FbC9B8jH3NJV/nehI8JrzA/U1vjeVH7E2sY3l/Bd76s8Ktzv/nlm8yr8Zk07xmE+SR3GXPczjhoKRhOdr0mIs4tWRVMO1p7ym8q+AXmNL5RjXgPizxvdsRaKKuaOAkb8Lk2ocTuAE5PMG5LMRcdahly5EusMh+S5wL/AeRtyJp3huIpwCfAx4CPghWp9/EafGJ0OCOS6uIU4ZklsxszwH7gPuAb4Km9PgY4G2/UvAFeirMmIu4ThV9MP4d7CW+wvumj1ce+qPGfk7VjEdfalIrYL9TNgPRQ0/Chs/MAAJn/P2vIpeHbdX+M8DDwN/ixXsFGiHQDIIiJUtrw9JixLJn4KPQWw8Ypxq5zXtq0oDcBlyOI3z1s4zSJH837Dn2F5tnwHttcDBkLyFUGsR8yn0nO9grLuXucotcq9cgzphSZ7yHu4RWzsfefsEeBw4DUgxSI8pdL9Ldyu8XlqW+A/0roXoXc3o+f8G5FFuvv3MwuOeMkP5DfexxBPM1T+hvx1grn0L2p2MiQeh/QOjrY1HUBsSauMwo7IdLeLi1VG8DO1ut/Iq3CMzcL88xaOchvVMcoVzJywXA/8GtFc4H0MbBZ8BPgha7pm/Rh/7La8QKP4M8HPgy4HD2D7ZS7+BXMmQ3Artc+A+INZR6KVb0Eu3oJdu0Wz7l4DcSx+I/x5I62HJj1WrP86/wH8AK88BWHk+wCtDal/qq5KTv5miHngFOK91ndop9BDuq8+3/xCWVzHyt5yisL0G8uGw/B36cB1sYOngZ5xrYPMq29CTbDokaznORF9C0Z4HDAO/AXwB+F3GuA/2q9DuhSxpex5300igA/GkgacDM4DlyPM58LHAicAngdcDC2EzBfzbwCzEZsfjBfYCPgu8AvgY8GngMuAQ4AOI7TmMAHim0+x+az8JngeegKQH+EZgAyR26YZD0gpEz9fwVIh7sCmOp1qtL/AXwNdxt/JfJJoSvSH5EJLd4NvA9yIsQrXjSZb7GElCwAJIBoL3AbdHAPsO/QnwDUhuR1vsQz7HomXf5/KmGbDh0cDJ6wcxnb/XJv4ELFHbaV9D/JjBeS1BkrXoLZ8inl9B0h33uwnJu+BPAPFE75gH+TxIvgfk1UtRclWAMto5caA20vAsn8Z/Iy3S/sBpcSq02ukOXgG+H7nlmr/G8Xvgv6H3vou0VkP7e6C9ttGA3TCnvIc596/Ac7hTdOA9qKtHGNs+RrugTdsw7iVuhJb7xqttH4A7oR0KbTGeTx8B8pN+NcdA+AnwD5Dz72OzORRJPhK8J4VHgw85lLSG7ek5ke/EQ4inO2J4D9r5wC3As/y0Iv2AZ3YxQIzmsx5EvkgTou/hi17qe/Qzn+W+u/ru7XuAmVD1rnoPIfQsPYv4VfpVQjNdpovfvCHknt/vSTNcen368U5nSKxP+gXka5PXz3qp76Iv5J1l/0j+Wfs3OvEtnWwaLrHb8Q/T/DL5+SK7f5ZH0Xc3+X2dPh/sdG26xHNcNDP2bU7WXar+/hX12NlfWo+t/2fqca6IS+mSLvmkHKmfNFgaIY2SyqTp0jxpqbRaekPaJu2U9kmHpeNSq3ReluUMOVMOyvnyAHmoXCiPkcfLk+QKeba8UF4qL5fXyLXyZnm7vFs+IB+Rm+UzcpviUHooHiWi9FEGKcOVYmWsUqZMpTXJXGWRskxZqaxX6pWtyg5lr3JIOaa0KOdUoXZRDTWgRtX+6hB1pDpaHaeWq9PVWeoCdYlao65WN6qb1AZ1l7pfbVJPqKfVCxqNRpqphTVLG6gN04q0Em2CNkWr1OZoz2hV2gptnVanbdEatT3aQe2odlI7q8XpiVq2yq2pVoU1k9g4q8yqtKYRm27NsGZb8y5q5xAbYs2y5loLifUn/TxrNrGR1hxrgVUKbSXrhcrhrGesJdYya7m1ylonFPtqbbTqrc2k51QmWdOsumR8Cq5rrMXWBquG9Kut9Vat9Ya1xWqwdli7SYKrtc86aDVZx6xmIcf2xg7EDltNxHbELljC2k9sa2x7bKe1l1h97ESsxdpBbH2sNvZGrIHYXGuztc1qpJw2xJbHVsU2EttKqW6w6lgb28ThiY2NLePUSVsXW83hiW2k0FQGYsmcEdtEobdbO4k1Wrs4bmKcSzss6yhuYtugp1xRPS3iUhCrsmqsPZxn1FEjwi6yllKJU2F3WnuIUTjrgEVjbEfJrePWSeuQdYTYCauF9GeItVpnrQsFglhbAYdnbbxALehS0EPIBRkFOuV7N7FuBYZ1zmoj1qMgk9MmpheYnDYxo8BTELTWEPMVhLn9iQUKIgX50OYUdON2Ixam0FFoIwWOgoBVgZiDFHchwmYWdLGGEjOtZmqzMRyzdYRKVJhMdxu0ekEG1eSAZK42WPm2NtZmyXauYmdi51O5KshButHYkdhxTte6wO1vpxvbHdvH6VpnrPNWnNOlPJXGtiVjHhV7w46ZS5UsEcVOLEgxU6nsmLm+UKJ8rkuU16KaPk0sWtDHOmqdsMNySyBsjt2CFNbHLXxR23BRu+miduPFmlydjLmOejrHHKb7Ykky3RXWAmiD1D9mJXM1xZoObcCaYJVzzBRviTUO5W20iqzRdnkp5ZHJdAdaQ5JhLat/MuawFU2ma1qBZIm6WQax/IJ+1EpdkmGPWILDxk5STZ/jsLHzBfmxFrorzsZaYxdix6hfyVZ6bH/sELEeVmZsV4x7tm6ZsYbYDu51VrBAjW2lsMIKFzhi9cRkSrUttv6idiW0Uas5tox7rBWwjsQWEQtaObGa2FxiYcsXWxKbgd4esTbEphI7anmsVbEyYk2xXVZ1bCyxQ7EGa3GsmNgB0h6ODcedEiaLQcQCViQWjfVJxhyIRRBzNGbEPMQiVn6sS4zuDyvHsmLHYw777s4flbf6f73PfIxrghCu+1z3ia7uNndCdDO3mn8SuvlpVo4YwSstWe1YXVGL/WNfLCqtAdZgaxiNrsXWGKuU2x7jcDmNxLafmfSXyuaQX0B+UZJf+nlp0rOrTvoV5Fcn/fqkryX/Rqfrli/wDZf4VP5S+dqRzEfqmvK7ye9LXg928k1Jfyzpm5Oe42slf5b8Bauc+lF5gYN8RlJOadFoV05jT8c1cImPfNZfrL/O9ZrMO907tu+X9AOTnuMZkqyfWrssBcOTZUrFNYDvSSGbaSa1ttnbjPJ6WAzufNIaVseyfr/+bVo5P6g/LK7QH9PniG76Fv3nQtff1z8QmU7FqYksp8uZKXzOiDNbBJxXOQeIoPNm50gRdt7lLBUR5yznYyLH+ZRzoYg6X3TWiHzny86VwnL+u3OD6ON8zVkr+jnfde4Q/Z3vOd8XA5x/dP5JXOP8i/OvYrAhG6q43kgz0sQw4ybjJnGjcZdxlxhujDPuFjcZFUaFuNl41HhUjDSeMp4StxjPGs+KQmONsUbcarxmvCaKjLeMt8TXjZ8bPxfFxjvGdnGb8Utjp7jdOGj8l7jDaDaaxZ1Gi/GpKDFOGafEWJfX5RV3uXq5gqLUFXaFxTjXta5rxd2u0a47xHjXZNd3xARXheshcb/rEdcjYrJrtutxMcU137VATHW94KoW01y1rlox3f2y+2XxoPsV9yuigk+rE/yN9ACZ7rTUPRY99k98s7hBzKO7dolYJpYLfirZKOrFVtEo9ogD4og4Lk6K0+KcaJNkWht2kwzJIwVpfWhJ/aVB0lBaIxZJo6Wx0nhpojSF1oozpNm0XnxGWiItk5ZLq6R10kapXtpMa8dGaZe0VzpA68ej0gmpRTojnZfiPA7klefRuJY3ATg1r+KipDiP5sy8kXk03ueNyStNStS8UrJlCyVvUt60vDKSjCTNVLJQ8kp6R/JGkYQsevsQi5lHI32enkczXV5Gni7k6Nk8Gt3zRB6NdNHm6FmWRGmmizZRbbCklXBftAmhaDbOy8/rRxgBz8ij0TPPgTgD4JFONv3A+0GeD5t8pBvhdAkzEMoB5DyYnC6hnYfWi/k0YW+yfbQU9hlsHy2GvYPt8wTsBfJ8gdqSsRa4Hria0S5ptBq4FKksAlKonCNRWs1GW6MzUeqKf3CPqvZITmN4u+hKY/hO0d3cY7YK/lYyKPcTmsiQJvCvpKP15Dd/ZV76UnbbyDeS30WeZuPoAfjONkrS43PwmFCjhz/HH/0C/eXwJ4SaU23zYPNFebrQRVQMpZqdSndnjaB2ze6X3S93Efml5KvxaQVJPdme3MXkq3JrwFfm0ro1d1m2yi53IvkpYLR6yp0TaWWXW547FdeKXGr5yKHIodxp5AeSr8QnWj1EGiONuRPJD8qdAj49t4himBCpZZfbhfxIsEySjorUsMvNyB2C6/DcAPqSZErUlyabP0Nfkqj/4LeScrW8kd8SKI0RdwiRM+dzvfwF+s/zypeyo+fiHHqOzllKvvoL7aWc1f/Uq5+juxxeI+9IfQ7UXZR3EZligBgjKsRS6im7RbPkkGgEyt6W3Uh+V3ZjOJ69N/tA9uHso8ROZLdk07MSf8o+HD5KMnK2lK7ns+M5NCbTp8bslnAjhSWXfYbD05XDnLgYdh2FXUe4Mbs+ezNdOT1a/1OKe7N3hZ/J3ht+hnBJ9rLs5XRdlU2WpN1Mdps5Z+EpsDwQnpJyqTyHiyjdIkLWj6frAf4ELaUStrLXhWkBy6llD6XrZv5EWspFdn24G33uRkjp4rqckbSc/qrQ6ex1odOElGdcZzNS71Sony6j3lptviks86fUZ4vRZxtN/MZYmibN4bdbSWOpnkXvXV+Zl76U3V7yNLL1Pkz+6Bfbe2m+6N3yOf7MF+j/372S4t4LF2US1agcCUQikfxIv8jAYGlkSGQ4Ro7J1AoCrXAbWUnmHiFp27SdGDXGiTuFCI/8yrz8peyKyVNPCJeSnyCUcDl8Sq9eYq9FDCGFp36Or/gC/eXwM4WDruwlz6yL8t6iUEwSC8UasZ3We220vhtE67kZtH6rp/Vai9xFjsoj5XJ5gbxabpCb5AuKqQxUSpRKpUqpU/YoJ9V0NUcdQfW2MLw4XBVYyi5cE14ZXhPeAF4XoJWHLQlUsAtvCNeFN4W3gm8P0MojPCs8N7wwMIYdaavYGnxNgNaA/DkwIOXClYiJ2cLAANJyqpkpl0yH2YZAph3Wfz7lwgPDQ8KTwAr950lLqfoPpxzHRNbMVvoP2yXyb0u50IWwCOczC2f4t5G2MjzLvyrlwqPCJeFxYGX+VaQto3TmpVx4GqyJhfb550Fb6J+YcmEdYZlN8k8kLcXlH5FyoQWhRaRlVu3neh5OYXNSjsKa4VFg+f4c0lIJ/ekpx7akJRYq9afbWt/JlAutCDWFh4PV+k6SNj8sfHt8e8L9GENdYM3M59tD2kjomK/OVxfOZwy2ULoBsLivTsih1rDuq/JVhU3G4N5wgOIiFqr20ZNdqDl01lfpqww7GIP1YUFxEQvN9FVy2NAiXwlZlLALLQ1VU36IBdf5SkjbFJrqG0j2A9mFKkIzQ0uZBZ/xDSTt7tA+nxk66DPZhcZQbTUxC07x0Uo6tCP0hvdCaLf3ArvQgFB5qIFZsIjHodAboS3eppQLeoJB0jKzvLT6D60P1XobUo5tQ2DBbt4G1npXd7jgEqrLWma9Tntp5R2q9i7ocKRbTfbMar0LoC3vcMHRwbGhFcx6bfLSs05ogXdkhwv2Dw4KjWHWq8ZLo1Oo1BvtcEEj6AlNYNZrljdK2mJvlw4XCoeioT5gA7xdhOxp6ex6Hep1JDQAbIiHRmTP3s6u19Ze24P1YAEPraY99Z1dr5W91gSXgQlPPWmXdXaBfb3agpAFjnmWYR7lVaDA2P4+PT+IrJysHH6LXVp52mzhSD1F+Cq+Mi9/KbuZ5Gmd56M1oW+RUHxL4VN69RJ7yVf9OX7FF+gvh6c1IV3ZS8aaDnlwJT5fQyvCxfRE3yAOiTNSBj21D5PG0ci+VNpAT+NN0jm5h5wvj5AnyLPkZXKtvFM+SqO7ofRRCpWJyhylRqlXdivHlbhqqv3VYnWSOk9doW5S96rNmqz5tIHaaG2qtlBbpW3R9mvUgwJHAycCLeYSc0ngTOA8X21HmuOBk4HTZqVZGTgXaOOr7UjTHGg1S20XOJtiZqkdmznUdhTr0JQjzaHAETNiu8DxFDNpzRvYFzhodrFdYHeKmdT3A42BXe7TtgvUp5ib1n6BDYE690HbBWpSzH2QNCsCq93bbBdYn2JuGvsDywLPuNfYLrA8xdz07BVYGFjsXmS7QCTF3PTUHZjpP+GebrtAlxRz05NZYGJgirvEdoHpKeamsS8wLlDmHmy7QEmKuQeTpti/3B10BwNjyJcysx1pRvjnuh1uR6CI/FBmtiON6W/NbMlsCQTIR5jZjjQ9Ar7M/Zn7A5nkuzCzHWnS/XrmlkC3zC2ZW/yTGG0nZP8F3/nMVQGRuSpzlb+Y0XakafFvzFzoP5O5kLA/o+1Ic8RflTnVfzxzKqHJaDvS7POXZ462na8lxTJHk2abvzFzoO38wRTLpLHfX5fpSzn/pg5OmtWZcsr5V3Rw0ixxNaecf14HF7Jrr3+Wa6/t/HM7OGk2dTh/cQcnzYoO5+/fwSmdgd7D3qOuea55/iHeFr7ajjRR7xF/H9ck1yT/AO9pvtqO1sZN3mOuYtt5m1PMRU8i3hMUR3/bec+kmKs/aU5SHKbtvIdSzGXasRlx23mbU8yI01i4xXvCOG4777wUM46TZp13uLHbdt5JKWbsJk2Vd4dRbzvv7hQzaOz3zfFuM2ps561PMaOGNFM8Z405xhxvHflNzGxHmhLPYWOiMdG7nvwKZrajXM/wFhmFRqF3Nvl5zGxHmmnefkYfo4+3kvwkZraj2DI80w3Dpxv0z9NoXPxHYeKeEucFn+q84Lzg2cBoO9Kc9jqcR73nnEedRz1LGW1HmmOeFudOb7Nzp3OnZwaj7UhzwLPdWWs7T2GKOWtJs90bcC6znWdOijlp7vN2cc5KOW+PDk5zZptzQsp5znVw0jQ7R6Scp6mDC9mZ7zngzLed53CKOfNJ06PDUUkv8s882/5MWFnRrDx6huU5+VQW9gmKIjGL3xOLvxRLRstFL9h74vT8SM9pxDVPi16r13rOAM8z0jXuVfVaWmNwSmnmVHMqpTTDnEHxP2o+SvP9fHM+5eAp8ymhmk+bTwvN/L75fZrzZfo82ZxM1g+aD5L1Q+ZDZP2sSfOu4HfcBvHXa51/X0U9RvGs8Kz2rMfT4M9QphfNFynsK+YrJFlnruMSyeMVi0NJcd7nnVGY9BHyo5LXy+VLktdxnWRlnfiky5jWNPKVnT7P6nSde4lPlXVUJ/5VlLuz71zuqn9ZufuYi80qcjXmSnONucGsI9xkboVsu7nT3EO4n/CQecQ8bp40T5M7Z7YRI58lZ6Vndcsysjx0Tc8KkpMhk+HouUqEL34T2l1oek9dF1fohu4SV+pu3SO66n49JHrqvfWIyNRz9Bxh6gX610SWfpV+tQjo1+iDREi/Th8ieutD9RtEtn6LXihy9a/rxSJPH6XfLmL6GH2iKMD3qkPNdPNKcZPZ1ewmbjF7mD3FrabTzBRfN7NMv7jd7GUGRYlJD2BirJlnFoi7zL7m18R48ypzgLjXvMYcJO4zB5vXiW/ReukGcb853LxJTDZvNkeKb5u3mt8UD3zm77P8q1KJ/m/BHVcnokKkt14efwXdf1eMuuzxRd3DyI10F7vH0LWU/AR3uXuqu8I90z3HvYD8HFpzLXVXu1e4VxOud9fCv+He4m5w76Aru93k99FKr8lNT3vURj3w6z2n7hSSnqlnCln36j6h6PSITS2erWcLh95f7y/S9IH6QJGuX6sPpj5wvX499YFh+jCRod+qF1FPuE2/TXTXR+t3iB76t/RyoZsZZoYwzO5md+EydVMXmabbNIXbDJgBkWWGzJDwmH3MPsJr9jf7C595tTlQ+M1rzWtFL3OIOUQEzWHmjSJkjjBHiN7mLWahiJjjzLtFDtqRx3WBcT1HSIqq8K/hM+Qu4kkh0kYkfZB8UfJ6ufzo5HVsJ9n4TnziZU4v5aeQn97p84xO19mX+FS5izrxr6IOOvvOdbDkX1buOUaDsYPcbmOfcZBck3HMaCZZE/lW46xxwSVcDmJNrgyj2aWzzmUaZ10BV8SVT9p+roGuIa7hxApdo1wlZDOEQp11jUs5iqfBVeaaRDjNVema5Zpr7HYtdC12VdHnGtdK10pKkUOvcW2gPOwjSR3FQMw5m1bPW0m3naQ7mVHsNa49xPe7DpH2iOs4rWFPOmeT/LTrHEnHufaQ7X7Xfv4WnfAsxdbmGmgcI3+W0h1CFgNphZ/Oa1UaYy/vWH2jfhON1Txi52PEtjBi98GI3Q8j9o0YsUdixC7CiF2MEXsURuwxGLHvwoj9TYzY4zBi34sReyJG7HKM2JMwYk/BiD0VI/Y0jNjT/7+bgSQpQ9qNGWeriAkhz/kK/EHyTZc9vqi+Sd9Kfru+U99DuF3frx8if0Q/TvKT9Pk0uUP6Ob3NKZNPd3ZzGk6PM+jMIWfpm5z99a3OQSSXyQ3VD1Hb9roMs88IfST1Ap6DemAO0jEHOTEHuTAHuTEHmZiDsjAHeTAH+TAH+TEHBTAH9cIcFMQcFMYc1BtzUARzUA7moFzMQXn/Z+fOjtMreK/jBGUzo2girFJ4Z2wVc5E65wInXNinWvzvz7NQJjkGEu4W2J/m4N1Ecd7TLl53NJJ8IWtVB7TvarzbNo5d+jlso/bhs7YpFNnIE/HujbDjFJ/kC/l+tpcXszyt0SFwFnyAz3/XRvKZufykp3yQ9hDZ47wVaYq6TCTPWHFoWjHhBLZXtqfNS52SQza8q+RR5uqVWhaH5dhI/pSQujzG7zvp8jGn7ihhSdqdif9kG94bpv4u0YPzz1yOJX7KbzLgcxkcZ8XHhLnqD0nSwDbKp46b+azzRB9OS+X9Ws/YYdu7AnlV04w62YTTQNK5NpSFvFNImYT9QvtxVsI0LjvJGyBv4DzzaaHqLdgx3lW5C/vH+G0is3iHvPYu5IPltZCPYTnv9Cb54yhRHmEj712nEnE898M+loznuwhr7/ceSvwG+eLeby2KN8qUY8fs+8qL2JXKe4CreYetuob3MUpTFC/kGSTpoTxC9lcmeHfxOt6dKF/HJ4CoMyB/kOVaH95t6MBZYxRKhmQ0S7hupXVKEPJsrlve2+l4PfEO+GzwxxHzPsTcSi2Vzntd0q5OLAfvBU4ldfye99g7qjhO4tXgVAp1u/o7ji2Zloy8fcrnufMZlMoY9e/cglwnUjf5I+Kf8m5zZR/3VbFf/gXahWJQ6/FOjlfAI9z/1Qjvz1QP8X5ytQXvGjkESSHvOtby4p8QDlI+QLvQrKGuV1uI/wm5ekd7mfjziZeQq4WoAcqD403ekeuo5J08ahvv5nU8x3tu1TbuJ+r9vL86bSZa52O+C5SZfBqIWC/xLt8a5vIpHgHsU0Lkv3Dqopi1ygPcsuqVLFdf4Df3qL8Dr+fUtSzm1PpXEX6Dd3erc3nPpJoHm7nYX13Kpw8oCxHzYu5vihe8iOtQXqvOJWxHfso4RbkUuzqDvI9OOsv1RhJ+U9G1LJFjvI9LXuzgffutdpxce/JveO83IfO1ODPlWsQ5FXF+hF2gD8D+Pd4RrYzh2JTbcPLCGJyNspnPLFA2g1/Lu0CVD9r4HIrJfCK/egxhb+baE+dQM1dzjYljiH8Dl1EsA9/JZRRzwZ9BGT/iMoqNkGzj0snTUK5WuxScZ8XL+ScsR/3zjt+VSKUv51zsZe54jk/AcazDfq3k2UM4b+iaRJlIvrFJXIO3d+Cukc6y3H5bj1yN93DgRCTJPqmwCWN7E8I2QV6SGAQsA+7Azjrmo2yEjX2aFc50k6ogr7I53oThtOMBzrcRNvOhfQ5p7YLE2ektI19LrGTk90bYb+uhXGEnM+Q4LU7KRagi2BfxqR+k5Rw6IZ+X1HIMJXhLzSTEM4tjEDg7zH4LEUnKIInyrMES+30hygf2+M/pOuyzw7bbswBjl8cwa9jliiNvH/MuYs0+lawbp2u/7UbSsLvYrmeV3/9hv4eJSsp8BlLEiVoOlCstHRxnq6lIMfk+oV2wx/lTyj5oI0CceKUWIp5B4OuB7yRTOcCjASRtQPss1KnJGbkW/ElCWsGDP0HYA3PNWWUsbJYDn8WMz7v31yh8Xslm7i32W82kRnvegXwhelEN9/NEC3ZTV0E7BrPVdoXPudDxLrRa5gIng5BlMe44tnkB2MbvNlOvorWDpK4Ef0pSKayl3I3etRT9ls9b2ZfgU2ZKuUTSqQTdWVqTchOj4FOBauQ5sOcTHyxuZbk1cb3gN68EYD8c9tmwrKS6mqLwLLCC0yVeAf5nSt2DPNyB/GwF/yHyU4T81HF+tI+R7sfJdIsgz6eyZHCKpLVTGQZ5T4r5O0jrB0jrO0jrB3hnWI1cApsB/C4BzKQPA7vw6kK7UeLzOP4mt2J1NB73NfXAxCZeoSmrMMM+ifeynAH/VJ5GNobMe9TXYaZulX4rkiemqRk8b2pl/LYV7V2OUysTCdhPJstG3u2sNLONwGmkWhnVoqTN5b3xjht5vUc2XK7FHD/J6V5zRMVoxLAW2rug3YYUaQXleJhnDccS7ieOVxWqH8cmvC3GoDZhexn2pZwi10zaFTz7pF3H/ZP4K+DdKVQD3YuEuLMMtqewGdzTmDsalP9GDNx2n/CoTrl6AjHn8El/3Pe013g2l0slPpfncbahensBsT2Eusrmvs3lojk0QvY7YN/KMSh/xHz9E57pyJLP0KliS+Vp7r3qJM4bxUZ3lro7adMTcuJqNp/cod7G9wvxbzDnmlc/5DOkqC0cnCLupiBy+yFs2mDzE+T8Fm5xeRtrtT5cJ9o5rEwM+R7UQ0/UA7Tqr5DnUuZYuxocD9nwOSOtyZZ9GPXJs2ozQq3k+5GQZkZVhk057vd3MYO/Gf8B4Vvgz0nXkbZe4vN6Ygqv8dJZq3wEPk3injwSNTxNeQErCj6T7n62p5ipZVUvJL+SfsR1pfAK5xOWSM/LXVEP3D9dLNHKOAbtNebqTajh8Qj7d4S9CS3+d5p/qLZVPt9hMPL5NsacSm5f+SDs53Lq8pt4D+Ip2AzjmlcGc+tQ3vjMkSZtE5eFU6F4+A1GL+IMprf5HpfXcovI7+GeOoiwaZD/ESevpSl8Ass6bhclnZ+qlGmokxA/I1BdVXE9oCfI3Dq0muqJ8oYoVC5q9RTXqnIn16HaEzW5imtSjnO5aG32P9VdeTiU3fufzTayjiVjjywxPDNoqJTIGmONkpLs6zBZWxkRlZKIIrtSIaLotVVUtlRSlCRblkRpEZHf8xwt3n59v9/3+8f7e6/fNZfPnHOf+7mf+5xzn89zn2eu60B6VARyFS7Qi3jEB7gXZUgr4idWGvgzB/xRBZEpBvx0QuRYLSC3A35+BX76IH7Ca2kBs8HO7g3AEoCVyDnCYK+3Efk/SfNeaB1kZ4dkm/AqiwCYBrAV6McjO0H0MIKYYkQTDY/hfOtCGWArRgXIm0B5P7JbxCQg+E0TKbeiZ4G1FNBqCiRNQDIMdEyBNVNEgliDMQEgkCCnccGacF46n4Z2Q56hyJlBsBw5EYBnHjAMcoocigegDECBb+VbQOcw0GkBOi1ADsrziUATKQvMQ0ACgb5DQP4B6COIAndBAX3UNwn4Re+rB0Dk1zrKXD4ot4DWnQAh0It0gFUAx0FfngD/3UCZAeTAPoYdSIB9zCpQzkVOw0RaYVywIwbKV0A5GCAN4AZgUwoZJbDSUcjuBpY/AHMHrCHxA1+7DrQeBBIfUAbRgqxZGMG8IJwPl0HOgMQtjMcQxLEC5AU6YAQw4P3Dgj/IioPRBrkLehTca6EXOgCLAN4COAquCgdzutDfnSDSnoCrwDhgnoH7CgFUB2gFRhVEJsjWUAjHohSQ7AieOyAB/30NhWRZcCsSyQpArvBNDtbCHLAM3jag5r0ABgJNW2CnHkj2A9QFV7WDMhHomAIkAjk4Lxd8kG8UETkVWgBk7CjiDYhJrGLlWBFtFD3FhWbDZDKJhbDoAgZOiTkhDlYWJW4shsiCgpxY8UqsaByaScWgcZnWkCWkvEgili0RLgYncsjHHLUTpng6ygfligqE/9YiH0h6kTGcQMzr+6s3jV+FDraPcrq42+LYokWeZjIFIyEmrg5iYi9lYjFoDIaAnKR6JzR8JTqI6MkADt+BuH54i2aB/QoBbmI34VgJmE3WZALEh1TYCXg7p10enn7ugXQ/Mi/EjQjZCGxWri6+dD8XsgQkhkjwBEEzT2cGfRfdLVBKj87wpzOcAj3hK6QhSaQdS1j6s93G09eVZB3o5OsvZaG3HpIQ5iKvhLQgKpmqoamhZg9XNRdVoYjSv8UzLogTaeck4MzMLazI8tDyhaqEn56nv4crQ2qDtb6UvjVtlYEGRZOkRqVSSZrrqSvJyyGZhR6J/bZH1q6MYE9nV4iJXrZ4hNEsKCwTzYOC5XgME41GFXLKiOY3xSgIrOyv89jGelAhaP0h/vy0C+qYHVmFBtfwXAV5j7gM9Icvp4u937V9nj57LYWU9ElUJuaTZelQqp3tnFlztsb1QadmdwGM8IbPsYKGmST8cdTl5kM3TFwaNWt6jyqN1kWrXVO6QSyelj/DCvlr9lQR6sPvm+xICejvraOXx68y7OPlvMSIcdgvq8f95OJ5afWYZwUh8YO9PHtPCkfLxIk8uhtwJ+9TsYVyhn2LfTH6biKzHv1FEOM65lcjjCIdYjlxeHsc9ShHRo3bSz/fxy8zTbpeJKbv3vdUyO0GeoWqufyM/eDnd+KvuXGfvPUlBPbdcDnV9eD6vEGrV+0uSQwWXkc5TDQHPCIskDg8pOLcOCGcQHvtJ0pxDJnnlUjiu7W15JmtGB4OEEPiMrilkFC4gIz656dWBv74Nzpfgr+UKhXXaZTyQDaIgiTODNoIGWcaZupH63kEBvqvUlV1Zvio+H6fJxVnuq+qv7cnIlX1Z9BdgpwDd6n+mEZkFsEkwlGpAqtAm1nZ4YXJwsIGbwJNIRPI6HsdwkSv+XaDkJCQ393AlfFvLAdCBMTf5bglEP67SSz7LwsSi0RJylbU84kcoyMDFlruibI36MdrdHq0zimbxSrnb1lLwXu1zDoI41Ig87b5JdlRL5bfwq1in6INoEtf+Om50l5qq+j7Kwa1mXuaC4WWtu5ZOyFSYFZSFESxkmVJju80eja84Uu8k9CW7fdKlDYlZVg53LwBybONPzGVDyutmzLR4BIxyyHffv6IuCxOnkNdh9qabiR2OOiw3tlORZuyfKqPQHpDqE+5yMVDoTlUlxp0wli3zgFHPl6bRBb7ZwdKFTbyp6szj6gq7KDyvnMntjN3dfVQvvSo5fTraEhXUbdSPOjNnUrDaCfnE8kxr0bfFmMuT085zPZE1KnvL7PsFpUcsxqbgWnsDUxjj3/SGFrn1IVxf9uvLWwLj5pfaSzsbyELGUh6YdETF7e7uEpZe7r7wVYXEZkmWZMCkWH2QoiMSiZDlG9VKCLy/4LIvqlj/4X6fySmro1HRrBejg2i2/AsWgOPuRMe1PceGc7lYhHZfGNNh2J3bLmH38aM/VVnqm2itS6809QQeiVe8KXI+zkHNFEh0ePz2eTMpmSjBpnY0i3y6tVJZMM0nlYdDQr168h781xibmlYVXjqOtmU+of0xweG9OIGnk+2vSpye4NbJZ14zu45tkv5jui8klb+ttpNX7uNe2xYEi+p9eTuI58zq7a9L0T2WHfQW8z3/fhj6PC4q2h6ObuY4v6T1ZP7dIM1l7Xv2fuh4npAel3iB2a0BvNcYDVGbcYmOipnec3F2O19Wo5y61OIL66/MogKrbSkYAzHBqYlq3GWQa/4U4NfRyULLMNnEaacvhOTEzwi2363ULGL2CptcNiXaVdElX0xuv1CvWO8eOvTPZAV0syHg6ko1xDS/3V+1CEKUmUhKFEoWpqQmpIbVVNjJ9kZImm4aLmR1NXIK0maLiudSFR1J9eV6hQXF1e4cTEDNvMNN7WVCW1GN1JV1ISErpuewUtCtgsMaA7BHJgJc2C0/n/FgHAww6EMR7EjBD/syCQ4ZiHAgfaLOJAGwSy4iAPX/jUO/Be2A39HeN4Dtv0dBHEpnWnfkRe0rm0Sd3zkcqYGOcKXzNv1lrU/nXYw6mU9cCvXpuLU7o9xjZGEJQG1n2crVVoEd71HedOWX/xQj2ckWmWEmCmeVGAnCz3t8Qu8VD9MEyw5zbKBRjQ2Vi4IG6+NMj/oZzhR09l2xNiTWzHyY151jqh0YXbe2niptI8Z/Nq7twS5TDzLiTpI4cdgvFxC0Oe0UkrHsxWMfQpkKQpr84+4KX/BdEaqyiScmLJznc99PGLJnvjpydyNxzek9Of0jM3Dxl1EDuyg9dU3WdMkv9if4Np6TzZy767hRt0QfkeyXGNxq/VhJ5upW3GM0+9uXxPffzH+IG5VcljhDojJUgUTXu4C4eGd1OSIIF0j/8pzjoA+8BwJcrEnJ5Vd0CJCWHjgySKQ8J+EHD/mhUyClBaIQfYnMVjR6TA7wBPl6ebp7BToKrU+KNCDzvAMDANsBkGaamQKhaylRoHZjPKtSkGq/yTR/icKu8LY4iACudSKn9khJaV7OtjaZ63oE3pL87tR76/JQrwve1YFRhLLVTMpY/MvbunSZB4zUF0advjYpiIp4w9vPQrMNsblVYdtDEg1ZHs2t7znbFDM/Yu7NhzoiOh6Xz25MrfRQf/55ULtlwoeycTzeYxdtu+EEwfmNBIZmU+CHSVC9COjNIUe7NrK8oe7VVzeFU/VZyKcXxMCFfuCVW26BaAtn9vids41NzoakC2uyxMGdKD7DEVehWV3qTTtTIp2/L0sTdYoB5otU2EFC6V8Y4e581Abaec7fe2hAnbUJ4Os9Idbj8pZD+++aDJpcJ+6RjO9LMQhTzg9rpnvuO2amwUcjthH3ylsOzwi9hAPwgwENHoexwJh4a9F9PVbJkHYSpwHh4MjMBriZ+X4tjcRRONYgGE4//0hwyBW5h6SaY/kDif1puxYnU+mn1tT1UmCRH4oCWBwSyTwKGtUELyf0UOt/xOXcRcwd+jYyicPLifMrujFWydtGciFLBa4zBiC6TNTL3N99Lq/zmU/mhlwaCMUBFjMZhGLGUEG0IZFLKb532RyyILRW7D6v/kLg0Zt0Vp7QM7g8mu6TgnlqtdrblW/fOOp145Bb0xXkzr0Cjm/No+QyDkyLXstUsKltxVoq5r+kZ1vm9bvX1lR9jnsqjFjau3o+gNNvUuEPZvz0qRIM5wW9bb3SP0mbVX+Q/lc2dg825cVhzfaTSbppr17PzHeHy2pvqbC9sxba5moFblMsZN9iWzik320z0ezmoYJeSdoDaJtxxlJKwJ8U4mfxd5aP3FvWTbvIH4v+2i1/JUwZ9sN2Zb3pkdyNtt2p2L0N6g6fnhW1M6k+M3mJhEGXnsOXchWrmlQ4uV2PXa662P2DL8ch6tm4rvdkiaVD3tthx+Enlrq0Kgh5Nh9Utz4GKmmUH2D2DivIBG1rVtjq3Rryl2O8Sjuo+a+3ASa9l5FozTGw/c+TTfH/HPsEuz2JcZlihph7afu57jjA/NWviGpCje8YlD5P9BL1rgzp62uxKkJuUpwH+7mfeHygd5q0P5IeCSsHlf26Ityj+Th9AL8F4K8TuHAdO+FAwaVbDsMXXfo0Ip1x2hvSoPDOvHqHL5i4WTJPm6b7sGsL4OGvIUuKfMWQip7a1mkd/clrZf3rDt5PKkxrjNVuojLIe1tdlG0R+QSL1JlsDdK/FThpNCeT0KRstdj7nvlG5JVzzzvD9DuQO3fafiwNaaxYukMNyPuZo72ZYyO17xn6qk+3nzeMqoF+5M6bYjJygbz98R3/hbyUAf8LfZP8DdEhdQhmLE11CAthL/JoKoGIdV/br//n9g7I8unpKfLKGHFXm8Vkd7qvv7bpy1lLApbu5fSZHnGH55/aFoYCEnxvWZ7bJMkaJwoqptQlOIAyT1DeQ/vqR6LZeOZ4salvI1tkWxWkz10dvKDu5jy7J6hGPHRIVpO1k0Z66a4Gf37HA+2X35QrIvLnj7nc9K9Q+G5gXVx9INBBQMV+YJo801WSwawyl+84uMhv0Pvt0BnZ/Y/SS4dlk7e/7mN8J693NrXqkw/PsMIZWLoxiev6JafPPCINcIke/rgeT5DAQ5mxsE3m0K/os+IW7BHoXghgzflL2QMKutJNhmXJULXk0NaUntWR57McsJcFecqmZ1KvYJuXbbRZn6ape6WFOd39r4Ej8j5f8fev90J/4m9eRezNyxBQREpC+QbEQ9FxP2efrOcc53+9vBk8oYVCmWZZOYVmu7a/IGNoOL6/4b1/9LeHR5r3uTDdQ7YDSu7R8oKQ7pawyzN0CUqgQFbfZcQLrXW7DleodLOn33Ud2eFHaaZJkWwON29W6fPrvLy5jNiveLo6ILK0MkjD8ZWo8f7ao7jWRrijPreWgt2m19KGBiK83ocfvNV4iSrahR25MQK2WX+Xz7NDoSeVuGaYuvzr1pKO3vMG89IqsjSSnMn3bbkHt3psE4o5YjUuj42ImW6hWwSTNZWYnA2jPprz0fhCT238E7H3nZUCL+mHTlwW0Npe07t66p9nLp72q0Z0uNQU2Woq8NWtDBegLvtmUDKxzXX3TaXklSHpqOiWyxth8/6J/oUaJm2fwqrvbh0907FiexURXXWEOLORm0JX0nmW867ypX39UoHp8f2Xe3PzQ/UqKDdDpDhlwvmXGN1NMDeQE+gqrS02My9IUN3PjxMOjxdEHIb1uXfTmxIXyb9QG9EaaTyg1GLcnsnJdxUboWRrKP9qO3EuRenzzatoldHyAey8o0HS9emMm/K21wr8dKOzQp2KvPLIpyrvWj4lp8+d5jic+Vrj2XDUZlGt+qz4of4XTDapMtbjlcMSA9eLW5yLgu1YWlfr2JRkFicF3qpNPNUEPFpwiFC0DJVSj67X+bWo8trMycONkk/eS1h3nhm3PjlFNqVHsu5r8Gz4ZXf6PnkVrLiPPftrQ6dZqJZnTOq6etUNgl5NxJy5shMHLyEcecxaDQEL7d/Ll/+/XuTn2+RMyPqkXTtW/xyYMlLFr+ihh34WeMkc0OLWwWRZPD7hTgyTErE2rJC59EzA+0H9F+Jhd9OrtJTsoZcFl2yhGwL2WSuCFdAmaE8Uc4oBooO3nK7oQJRUigbVBjKH665w3InuOSBCsuSC5f9l4vVJsyf7s5w8vcIU/3loYJjwrtJ1nAVnp2s5fPnghgWHUtT73dfYKql+odxK0UWpZeXvnFW4mkusQni8uko39c8BfFS/bnTGYpKnBL30jZO9FyoMQ9ARV6y5z8rlNVfOXvea8VsUc5o77G5ldKU2dbNdSk3pNomiqcV4jxEVvmacfcH8I1R5FsssoPxNL6QINm+rKPjdYHQQMPk9pyQi1z6Rt6cOrakj9XLzz7v4hNMk7kvyKHdFxf3bGX+24fXIjrL2MLUr+xeIf66j0/nvNy0wYlwDa4z67wj/BnO+wfCL9jyfkwv30GVUJS85k4bjbE4VxAjMRd77GXD5SrdodUHSBl3bQ51zj3uVTR7kVi1I7nlVslg/pEsJkYBYmJkf84RK5mJEYRFfCAqj/1jWcDvf5JYFJPboKWLQ5Lz508raPjmP1pYyDzIazaIAic2murqyGu2XyMyows9886qb1uNo+7eWxxEtRhzvl+zMSRWmKsESjpEDvmoiTFPxybwjMoVRqS/2tQn1G9ZG5CgHR3+pkW7yvqu4ugfpiiR2plG52WbD4ZhE+8QXMOJL8KK0n1x25S6pe4wKtKUJdSJn02OXy+qyS9+Y80pmnL1mFxHwH6u61vlr92tFBPOG3zfVH6280ibwHXf4j8OVZyfTWmv6phMeLR8qtzYhD38kdmQ/fo2u2Tc7eMnWOwtNUltbVTRrydiBm7FjQoWSSnGQu88eKqbAo95yY4+NTs39h67RaOvLWjkqV3qakV3L8bgyGrr/KM8E5bPtZP7uM5/Tmgw1ztkxW63ulIq+KtJ1JBEn79hOW/S0j1NS8K8T86OzVwkOWraMf8HJf0ykg0KZW5kc3RyZWFtDQplbmRvYmoNCjE5IDAgb2JqDQo8PC9UeXBlL1hSZWYvU2l6ZSAxOS9XWyAxIDQgMl0gL1Jvb3QgMSAwIFIvSW5mbyA5IDAgUi9JRFs8NUQyNDU1Njg4M0VDQUE0MUIwMzQ3QTZGMDMyMUE0MEM+PDVEMjQ1NTY4ODNFQ0FBNDFCMDM0N0E2RjAzMjFBNDBDPl0gL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNzg+Pg0Kc3RyZWFtDQp4nGNgAIL//xmBpCADA4iqhVBbwRTjYTDF9AhMMXeBKZZKCLUOQj0GygM1CDAwQShmCMUCoRghFFQJK1AD6wmwPnYPMMWpycAAABqrCWINCmVuZHN0cmVhbQ0KZW5kb2JqDQp4cmVmDQowIDIwDQowMDAwMDAwMDEwIDY1NTM1IGYNCjAwMDAwMDAwMTcgMDAwMDAgbg0KMDAwMDAwMDEyNSAwMDAwMCBuDQowMDAwMDAwMTgxIDAwMDAwIG4NCjAwMDAwMDA0NTEgMDAwMDAgbg0KMDAwMDAwMDczOCAwMDAwMCBuDQowMDAwMDAwOTA2IDAwMDAwIG4NCjAwMDAwMDExNDUgMDAwMDAgbg0KMDAwMDAwMTE5OCAwMDAwMCBuDQowMDAwMDAxMjUxIDAwMDAwIG4NCjAwMDAwMDAwMTEgNjU1MzUgZg0KMDAwMDAwMDAxMiA2NTUzNSBmDQowMDAwMDAwMDEzIDY1NTM1IGYNCjAwMDAwMDAwMTQgNjU1MzUgZg0KMDAwMDAwMDAxNSA2NTUzNSBmDQowMDAwMDAwMDE2IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMTg2NCAwMDAwMCBuDQowMDAwMDAyMzQ1IDAwMDAwIG4NCjAwMDAxNDkxMTMgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDVEMjQ1NTY4ODNFQ0FBNDFCMDM0N0E2RjAzMjFBNDBDPjw1RDI0NTU2ODgzRUNBQTQxQjAzNDdBNkYwMzIxQTQwQz5dID4+DQpzdGFydHhyZWYNCjE0OTM5MA0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwvU2l6ZSAyMC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDVEMjQ1NTY4ODNFQ0FBNDFCMDM0N0E2RjAzMjFBNDBDPjw1RDI0NTU2ODgzRUNBQTQxQjAzNDdBNkYwMzIxQTQwQz5dIC9QcmV2IDE0OTM5MC9YUmVmU3RtIDE0OTExMz4+DQpzdGFydHhyZWYNCjE0OTk0Nw0KJSVFT0Y=</ram:AttachmentBinaryObject>
+            </ram:AdditionalReferencedDocument>
+        </ram:ApplicableHeaderTradeAgreement>
+        <ram:ApplicableHeaderTradeDelivery/>
+        <ram:ApplicableHeaderTradeSettlement>
+            <ram:CreditorReferenceID>[Bank assigned creditor identifier]</ram:CreditorReferenceID>
+            <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
+            <ram:SpecifiedTradeSettlementPaymentMeans>
+                <ram:TypeCode>59</ram:TypeCode>
+                <ram:PayerPartyDebtorFinancialAccount>
+                    <ram:IBANID>DE75512108001245126199</ram:IBANID>
+                </ram:PayerPartyDebtorFinancialAccount>
+            </ram:SpecifiedTradeSettlementPaymentMeans>
+            <ram:ApplicableTradeTax>
+                <ram:CalculatedAmount>8489.58</ram:CalculatedAmount>
+                <ram:TypeCode>VAT</ram:TypeCode>
+                <ram:BasisAmount>44682.01</ram:BasisAmount>
+                <ram:CategoryCode>S</ram:CategoryCode>
+                <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
+            </ram:ApplicableTradeTax>
+            <ram:BillingSpecifiedPeriod>
+                <ram:StartDateTime>
+                    <udt:DateTimeString format="102">20160101</udt:DateTimeString>
+                </ram:StartDateTime>
+                <ram:EndDateTime>
+                    <udt:DateTimeString format="102">20160131</udt:DateTimeString>
+                </ram:EndDateTime>
+            </ram:BillingSpecifiedPeriod>
+            <ram:SpecifiedTradePaymentTerms>
+                <ram:Description>Dieses Guthaben werden wir auf Ihr Konto erstatten.</ram:Description>
+                <ram:DueDateDateTime>
+                    <udt:DateTimeString format="102">20190314</udt:DateTimeString>
+                </ram:DueDateDateTime>
+                <ram:DirectDebitMandateID>[Mandate reference identifier]</ram:DirectDebitMandateID>
+            </ram:SpecifiedTradePaymentTerms>
+            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+                <ram:LineTotalAmount>44682.01</ram:LineTotalAmount>
+                <ram:TaxBasisTotalAmount>44682.01</ram:TaxBasisTotalAmount>
+                <ram:TaxTotalAmount currencyID="EUR">8489.58</ram:TaxTotalAmount>
+                <ram:GrandTotalAmount>53171.59</ram:GrandTotalAmount>
+                <ram:DuePayableAmount>53171.59</ram:DuePayableAmount>
+            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
+        </ram:ApplicableHeaderTradeSettlement>
+    </rsm:SupplyChainTradeTransaction>
+</rsm:CrossIndustryInvoice>
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/KositValidatorTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/KositValidatorTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/KositValidatorTest.php	(revision 8542)
@@ -0,0 +1,776 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\stringmanagement\PathUtils;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\tests\traits\RunsOnlyWithJavaEnvironmentTrait;
+use horstoeko\zugferd\ZugferdDocument;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdKositValidator;
+
+class KositValidatorTest extends TestCase
+{
+    use RunsOnlyWithJavaEnvironmentTrait;
+
+    /**
+     * @inheritDoc
+     */
+    protected function setUp(): void
+    {
+        parent::setUp();
+
+        //$this->markAsSkippedIfJavaIsNotAvailable();
+    }
+
+    public function testMessageBag(): void
+    {
+        $kositValidator = ZugferdKositValidator::fromString(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertEmpty($this->getPrivatePropertyFromObject($kositValidator, 'messageBag')->getValue($kositValidator));
+        $this->assertEmpty($kositValidator->getProcessOutput());
+        $this->assertEmpty($kositValidator->getProcessErrors());
+        $this->assertTrue($kositValidator->hasNoProcessErrors());
+        $this->assertFalse($kositValidator->hasProcessErrors());
+        $this->assertEmpty($kositValidator->getValidationErrors());
+        $this->assertTrue($kositValidator->hasNoValidationErrors());
+        $this->assertFalse($kositValidator->hasValidationErrors());
+        $this->assertEmpty($kositValidator->getValidationWarnings());
+        $this->assertTrue($kositValidator->hasNoValidationWarnings());
+        $this->assertFalse($kositValidator->hasValidationWarnings());
+        $this->assertEmpty($kositValidator->getValidationInformation());
+        $this->assertTrue($kositValidator->hasNoValidationInformation());
+        $this->assertFalse($kositValidator->hasValidationInformation());
+
+        $this->getPrivateMethodFromObject($kositValidator, 'addToMessageBag')->invokeArgs($kositValidator, ['SomeError']);
+
+        $this->assertEmpty($kositValidator->getProcessOutput());
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertFalse($kositValidator->hasNoProcessErrors());
+        $this->assertTrue($kositValidator->hasProcessErrors());
+        $this->assertEmpty($kositValidator->getValidationErrors());
+        $this->assertTrue($kositValidator->hasNoValidationErrors());
+        $this->assertFalse($kositValidator->hasValidationErrors());
+        $this->assertEmpty($kositValidator->getValidationWarnings());
+        $this->assertTrue($kositValidator->hasNoValidationWarnings());
+        $this->assertFalse($kositValidator->hasValidationWarnings());
+        $this->assertEmpty($kositValidator->getValidationInformation());
+        $this->assertTrue($kositValidator->hasNoValidationInformation());
+        $this->assertFalse($kositValidator->hasValidationInformation());
+        $this->assertArrayHasKey(0, $kositValidator->getProcessErrors());
+        $this->assertSame('SomeError', $kositValidator->getProcessErrors()[0] ?? "");
+
+        $this->getPrivateMethodFromObject($kositValidator, 'addToMessageBag')->invokeArgs($kositValidator, ['SomeError', 'validationerror']);
+
+        $this->assertEmpty($kositValidator->getProcessOutput());
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertFalse($kositValidator->hasNoProcessErrors());
+        $this->assertTrue($kositValidator->hasProcessErrors());
+        $this->assertCount(1, $kositValidator->getValidationErrors());
+        $this->assertFalse($kositValidator->hasNoValidationErrors());
+        $this->assertTrue($kositValidator->hasValidationErrors());
+        $this->assertEmpty($kositValidator->getValidationWarnings());
+        $this->assertTrue($kositValidator->hasNoValidationWarnings());
+        $this->assertFalse($kositValidator->hasValidationWarnings());
+        $this->assertEmpty($kositValidator->getValidationInformation());
+        $this->assertTrue($kositValidator->hasNoValidationInformation());
+        $this->assertFalse($kositValidator->hasValidationInformation());
+        $this->assertSame('SomeError', $kositValidator->getProcessErrors()[0]);
+
+        $this->getPrivateMethodFromObject($kositValidator, 'addToMessageBag')->invokeArgs($kositValidator, ['SomeError', 'validationwarning']);
+
+        $this->assertEmpty($kositValidator->getProcessOutput());
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertFalse($kositValidator->hasNoProcessErrors());
+        $this->assertTrue($kositValidator->hasProcessErrors());
+        $this->assertCount(1, $kositValidator->getValidationErrors());
+        $this->assertFalse($kositValidator->hasNoValidationErrors());
+        $this->assertTrue($kositValidator->hasValidationErrors());
+        $this->assertCount(1, $kositValidator->getValidationWarnings());
+        $this->assertFalse($kositValidator->hasNoValidationWarnings());
+        $this->assertTrue($kositValidator->hasValidationWarnings());
+        $this->assertEmpty($kositValidator->getValidationInformation());
+        $this->assertTrue($kositValidator->hasNoValidationInformation());
+        $this->assertFalse($kositValidator->hasValidationInformation());
+        $this->assertSame('SomeError', $kositValidator->getProcessErrors()[0]);
+
+        $this->getPrivateMethodFromObject($kositValidator, 'addToMessageBag')->invokeArgs($kositValidator, ['SomeError', 'validationinformation']);
+
+        $this->assertEmpty($kositValidator->getProcessOutput());
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertFalse($kositValidator->hasNoProcessErrors());
+        $this->assertTrue($kositValidator->hasProcessErrors());
+        $this->assertCount(1, $kositValidator->getValidationErrors());
+        $this->assertFalse($kositValidator->hasNoValidationErrors());
+        $this->assertTrue($kositValidator->hasValidationErrors());
+        $this->assertCount(1, $kositValidator->getValidationWarnings());
+        $this->assertFalse($kositValidator->hasNoValidationWarnings());
+        $this->assertTrue($kositValidator->hasValidationWarnings());
+        $this->assertCount(1, $kositValidator->getValidationInformation());
+        $this->assertFalse($kositValidator->hasNoValidationInformation());
+        $this->assertTrue($kositValidator->hasValidationInformation());
+        $this->assertSame('SomeError', $kositValidator->getProcessErrors()[0]);
+
+        $this->assertClearMessageBag($kositValidator);
+    }
+
+    public function testInstanciateFromStringFactory(): void
+    {
+        $kositValidator = ZugferdKositValidator::fromString(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertIsString($this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivateMethodFromObject($kositValidator, 'getDocumentContent')->invokeArgs($kositValidator, []));
+    }
+
+    public function testInstanciateFromDocumentFactory(): void
+    {
+        $zugferdDocumentReader = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../assets/xml_en16931_1.xml');
+        $kositValidator = ZugferdKositValidator::fromZugferdDocument($zugferdDocumentReader);
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertInstanceOf(ZugferdDocument::class, $this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $this->getPrivateMethodFromObject($kositValidator, 'getDocumentContent')->invokeArgs($kositValidator, []));
+    }
+
+    public function testInstanciateFromStringDirect(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertIsString($this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivateMethodFromObject($kositValidator, 'getDocumentContent')->invokeArgs($kositValidator, []));
+    }
+
+    public function testInstanciateFromDocumentDirect(): void
+    {
+        $zugferdDocumentReader = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../assets/xml_en16931_1.xml');
+        $kositValidator = new ZugferdKositValidator($zugferdDocumentReader);
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertInstanceOf(ZugferdDocument::class, $this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $this->getPrivateMethodFromObject($kositValidator, 'getDocumentContent')->invokeArgs($kositValidator, []));
+    }
+
+    public function testInstanciateFromNullDirect(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertNull($this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+        $this->assertNull($this->getPrivatePropertyFromObject($kositValidator, 'document')->getValue($kositValidator));
+    }
+
+    public function testSetBaseDirectoryWhichExists(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setBaseDirectory(__DIR__);
+
+        $this->assertSame(__DIR__, $this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+    }
+
+    public function testSetBaseDirectoryWhichNotExists(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setBaseDirectory("/dummydirectory");
+
+        $this->assertNotEquals("/dummydirectory", $this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+        $this->assertSame(sys_get_temp_dir(), $this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+    }
+
+    public function testSetValidValidatorDownloadUrl(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorDownloadUrl("https://some.url");
+
+        $this->assertSame("https://some.url", $this->getPrivatePropertyFromObject($kositValidator, 'validatorDownloadUrl')->getValue($kositValidator));
+    }
+
+    public function testSetInvalidValidatorDownloadUrl(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorDownloadUrl("dummy");
+
+        $this->assertSame("https://github.com/itplr-kosit/validator/releases/download/v1.5.0/validator-1.5.0-distribution.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorDownloadUrl')->getValue($kositValidator));
+    }
+
+    public function testSetValidValidatorScenarioDownloadUrl(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorScenarioDownloadUrl("https://some.url");
+
+        $this->assertSame("https://some.url", $this->getPrivatePropertyFromObject($kositValidator, 'validatorScenarioDownloadUrl')->getValue($kositValidator));
+    }
+
+    public function testSetInvalidValidatorScenarioDownloadUrl(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorDownloadUrl("dummy");
+
+        $this->assertSame("https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-03-21/validator-configuration-xrechnung_3.0.2_2025-03-21.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorScenarioDownloadUrl')->getValue($kositValidator));
+    }
+
+    public function testSetValidatorAppZipFilename(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorAppZipFilename("dummy.zip");
+
+        $this->assertSame("dummy.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppZipFilename')->getValue($kositValidator));
+    }
+
+    public function testSetValidatorScenarioZipFilename(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorScenarioZipFilename("dummyscenario.zip");
+
+        $this->assertSame("dummyscenario.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorScenarioZipFilename')->getValue($kositValidator));
+    }
+
+    public function testSetValidatorAppJarFilename(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorAppJarFilename("dummy.jar");
+
+        $this->assertSame("dummy.jar", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppJarFilename')->getValue($kositValidator));
+    }
+
+    public function testSetValidatorAppScenarioFilename(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorAppScenarioFilename("dummyscenario.xml");
+
+        $this->assertSame("dummyscenario.xml", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppScenarioFilename')->getValue($kositValidator));
+    }
+
+    public function testDisableCleanup(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->disableCleanup();
+
+        $this->assertTrue($this->getPrivatePropertyFromObject($kositValidator, 'cleanupBaseDirectoryIsDisabled')->getValue($kositValidator));
+    }
+
+    public function testEnableCleanup(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableCleanup();
+
+        $this->assertFalse($this->getPrivatePropertyFromObject($kositValidator, 'cleanupBaseDirectoryIsDisabled')->getValue($kositValidator));
+    }
+
+    public function testDisableRemoteMode(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->disableRemoteMode();
+
+        $this->assertFalse($this->getPrivatePropertyFromObject($kositValidator, 'remoteModeEnabled')->getValue($kositValidator));
+    }
+
+    public function testEnableRemoteMode(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+
+        $this->assertTrue($this->getPrivatePropertyFromObject($kositValidator, 'remoteModeEnabled')->getValue($kositValidator));
+    }
+
+    public function testSetRemoteModeHostWhichIsValid(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+
+        $this->assertSame("127.0.0.1", $this->getPrivatePropertyFromObject($kositValidator, 'remoteModeHost')->getValue($kositValidator));
+    }
+
+    public function testSetRemoteModeHostWhichIsInvalid(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+
+        $this->assertSame("127.0.0.1", $this->getPrivatePropertyFromObject($kositValidator, 'remoteModeHost')->getValue($kositValidator));
+
+        $kositValidator->setRemoteModeHost("");
+
+        $this->assertSame("127.0.0.1", $this->getPrivatePropertyFromObject($kositValidator, 'remoteModeHost')->getValue($kositValidator));
+    }
+
+    public function testSetRemoteModePortWhichIsValid(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setRemoteModePort(8080);
+
+        $this->assertSame(8080, $this->getPrivatePropertyFromObject($kositValidator, 'remoteModePort')->getValue($kositValidator));
+    }
+
+    public function testSetRemoteModePortWhichIsInvalid(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setRemoteModePort(8080);
+
+        $this->assertSame(8080, $this->getPrivatePropertyFromObject($kositValidator, 'remoteModePort')->getValue($kositValidator));
+
+        $kositValidator->setRemoteModePort(-1);
+
+        $this->assertSame(8080, $this->getPrivatePropertyFromObject($kositValidator, 'remoteModePort')->getValue($kositValidator));
+    }
+
+    public function testGetRemoteModeUrl(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertSame("http://:0", $kositValidator->getRemoteModeUrl());
+    }
+
+    public function testCheckRequirementsLocalNoDocument(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []), 'A document is missing');
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertSame("You must specify an instance of the ZugferdDocument class", $kositValidator->getProcessErrors()[0]);
+    }
+
+    public function testCheckRequirementsLocalWithDocument(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        if ($this->isJavaAvailable()) {
+            $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []));
+            $this->assertEmpty($kositValidator->getProcessErrors());
+        } else {
+            $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []));
+            $this->assertCount(1, $kositValidator->getProcessErrors());
+            $this->assertSame("JAVA not installed on this machine", $kositValidator->getProcessErrors()[0]);
+        }
+    }
+
+    public function testCheckRequirementsRemoteNoDocument(): void
+    {
+        $kositValidator = new ZugferdKositValidator();
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+        $kositValidator->setRemoteModePort(8080);
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []), 'A document is missing');
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertSame("You must specify an instance of the ZugferdDocument class", $kositValidator->getProcessErrors()[0]);
+        $this->assertClearMessageBag($kositValidator);
+    }
+
+    public function testCheckRequirementsRemoteWithDocumentNoRemoteHost(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []));
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertSame("You must specify the hostname or it's IP where the Validator is running in daemon mode", $kositValidator->getProcessErrors()[0]);
+        $this->assertClearMessageBag($kositValidator);
+    }
+
+    public function testCheckRequirementsRemoteWithDocumentNoRemotePort(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []));
+        $this->assertCount(1, $kositValidator->getProcessErrors());
+        $this->assertSame("You must specify the port of the host where the Validator is running in daemon mode", $kositValidator->getProcessErrors()[0]);
+        $this->assertClearMessageBag($kositValidator);
+    }
+
+    public function testCheckRequirementsRemoteWithCompleteSetup(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+        $kositValidator->setRemoteModePort(8080);
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'checkRequirements')->invokeArgs($kositValidator, []));
+        $this->assertCount(2, $kositValidator->getProcessErrors());
+        $this->assertSame("Failed to connect to the host where the Validator is running in daemon mode", $kositValidator->getProcessErrors()[0]);
+        $this->assertClearMessageBag($kositValidator);
+    }
+
+    public function testDownloadRequiredFilesLocal(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileExists($filenameAppZip);
+        $this->assertFileExists($filenameScenarioZip);
+        $this->assertEmpty($kositValidator->getProcessErrors());
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testDownloadRequiredFilesRemote(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+        $kositValidator->setRemoteModePort(8080);
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileDoesNotExist($filenameAppZip);
+        $this->assertFileDoesNotExist($filenameScenarioZip);
+        $this->assertEmpty($kositValidator->getProcessErrors());
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testDownloadRequiredFilesLocalWithNotExistingValidatorDownload(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorDownloadUrl('https://github.com/itplr-kosit/validator/releases/download/v1.5.0/validator-1.5.0-distribution-unknown.zip');
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileDoesNotExist($filenameAppZip);
+        $this->assertFileDoesNotExist($filenameScenarioZip);
+        $this->assertCount(2, $kositValidator->getProcessErrors());
+        $this->assertStringContainsString("HTTP/1.1 404 Not Found", (string) $kositValidator->getProcessErrors()[0]);
+        $this->assertStringContainsString("Unable to download from", (string) $kositValidator->getProcessErrors()[1]);
+        $this->assertStringContainsString("containing the JAVA-Application", (string) $kositValidator->getProcessErrors()[1]);
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testDownloadRequiredFilesLocalWithNotExistingScenarioDownload(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->setValidatorScenarioDownloadUrl('https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-03-21/validator-configuration-xrechnung_3.0.2_2024-10-31-unknown.zip');
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertFalse($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileExists($filenameAppZip);
+        $this->assertFileDoesNotExist($filenameScenarioZip);
+        $this->assertCount(2, $kositValidator->getProcessErrors());
+        $this->assertStringContainsString("HTTP/1.1 404 Not Found", (string) $kositValidator->getProcessErrors()[0]);
+        $this->assertStringContainsString("Unable to download from", (string) $kositValidator->getProcessErrors()[1]);
+        $this->assertStringContainsString("containing the validation scenarios", (string) $kositValidator->getProcessErrors()[1]);
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testUnpackRequiredFilesLocal(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $baseDirectory = $this->getPrivateMethodFromObject($kositValidator, 'resolveBaseDirectory')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileExists($filenameAppZip);
+        $this->assertFileExists($filenameScenarioZip);
+        $this->assertEmpty($kositValidator->getProcessErrors());
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'unpackRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileExists(PathUtils::combinePathWithFile($baseDirectory, "scenarios.xml"));
+        $this->assertFileExists(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0.jar"));
+        $this->assertFileExists(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0-java8-standalone.jar"));
+        $this->assertFileExists(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0-standalone.jar"));
+        $this->assertDirectoryExists(PathUtils::combinePathWithPath($baseDirectory, "resources"));
+        $this->assertDirectoryExists(PathUtils::combinePathWithPath($baseDirectory, "libs"));
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testUnpackRequiredFilesRemote(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->enableRemoteMode();
+        $kositValidator->setRemoteModeHost("127.0.0.1");
+        $kositValidator->setRemoteModePort(8080);
+
+        $filenameAppZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []);
+        $filenameScenarioZip = $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []);
+
+        $baseDirectory = $this->getPrivateMethodFromObject($kositValidator, 'resolveBaseDirectory')->invokeArgs($kositValidator, []);
+
+        $this->registerFileForTeardown($filenameAppZip);
+        $this->registerFileForTeardown($filenameScenarioZip);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'downloadRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileDoesNotExist($filenameAppZip);
+        $this->assertFileDoesNotExist($filenameScenarioZip);
+        $this->assertEmpty($kositValidator->getProcessErrors());
+        $this->assertClearMessageBag($kositValidator);
+
+        $this->assertTrue($this->getPrivateMethodFromObject($kositValidator, 'unpackRequiredFiles')->invokeArgs($kositValidator, []));
+        $this->assertFileDoesNotExist(PathUtils::combinePathWithFile($baseDirectory, "scenarios.xml"));
+        $this->assertFileDoesNotExist(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0.jar"));
+        $this->assertFileDoesNotExist(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0-java8-standalone.jar"));
+        $this->assertFileDoesNotExist(PathUtils::combinePathWithFile($baseDirectory, "validationtool-1.5.0-standalone.jar"));
+        $this->assertDirectoryDoesNotExist(PathUtils::combinePathWithPath($baseDirectory, "resources"));
+        $this->assertDirectoryDoesNotExist(PathUtils::combinePathWithPath($baseDirectory, "libs"));
+
+        $this->invokeCleanup($kositValidator);
+    }
+
+    public function testValidateValidDocument(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_en16931_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->validate();
+
+        if ($this->isJavaAvailable()) {
+            $this->assertTrue($kositValidator->hasNoProcessErrors());
+            $this->assertFalse($kositValidator->hasProcessErrors());
+            $this->assertTrue($kositValidator->hasNoValidationErrors());
+            $this->assertFalse($kositValidator->hasValidationErrors());
+            $this->assertTrue($kositValidator->hasNoValidationWarnings());
+            $this->assertFalse($kositValidator->hasValidationWarnings());
+            $this->assertTrue($kositValidator->hasNoValidationInformation());
+            $this->assertFalse($kositValidator->hasValidationInformation());
+            $this->assertEmpty($kositValidator->getProcessErrors());
+            $this->assertNotEmpty($kositValidator->getProcessOutput());
+        } else {
+            $this->assertFalse($kositValidator->hasNoProcessErrors());
+            $this->assertTrue($kositValidator->hasProcessErrors());
+            $this->assertTrue($kositValidator->hasNoValidationErrors());
+            $this->assertFalse($kositValidator->hasValidationErrors());
+            $this->assertTrue($kositValidator->hasNoValidationWarnings());
+            $this->assertFalse($kositValidator->hasValidationWarnings());
+            $this->assertTrue($kositValidator->hasNoValidationInformation());
+            $this->assertFalse($kositValidator->hasValidationInformation());
+            $this->assertCount(1, $kositValidator->getProcessErrors());
+            $this->assertStringContainsString("JAVA not installed on this machine", (string) $kositValidator->getProcessErrors()[0]);
+            $this->assertEmpty($kositValidator->getProcessOutput());
+        }
+    }
+
+    public function testValidateInvalidDocument(): void
+    {
+        $kositValidator = new ZugferdKositValidator(file_get_contents(__DIR__ . '/../assets/xml_invalid_1.xml'));
+
+        $this->assertInitialValues($kositValidator);
+
+        $kositValidator->validate();
+
+        if ($this->isJavaAvailable()) {
+            $this->assertTrue($kositValidator->hasNoProcessErrors());
+            $this->assertFalse($kositValidator->hasProcessErrors());
+            $this->assertFalse($kositValidator->hasNoValidationErrors());
+            $this->assertTrue($kositValidator->hasValidationErrors());
+            $this->assertTrue($kositValidator->hasNoValidationWarnings());
+            $this->assertFalse($kositValidator->hasValidationWarnings());
+            $this->assertTrue($kositValidator->hasNoValidationInformation());
+            $this->assertFalse($kositValidator->hasValidationInformation());
+            $this->assertEmpty($kositValidator->getProcessErrors());
+            $this->assertNotEmpty($kositValidator->getProcessOutput());
+            $this->assertCount(1, $kositValidator->getValidationErrors());
+            $this->assertContains("Validation error. One ore more files were rejected", $kositValidator->getValidationErrors());
+        } else {
+            $this->assertFalse($kositValidator->hasNoProcessErrors());
+            $this->assertTrue($kositValidator->hasProcessErrors());
+            $this->assertTrue($kositValidator->hasNoValidationErrors());
+            $this->assertFalse($kositValidator->hasValidationErrors());
+            $this->assertTrue($kositValidator->hasNoValidationWarnings());
+            $this->assertFalse($kositValidator->hasValidationWarnings());
+            $this->assertTrue($kositValidator->hasNoValidationInformation());
+            $this->assertFalse($kositValidator->hasValidationInformation());
+            $this->assertCount(1, $kositValidator->getProcessErrors());
+            $this->assertEmpty($kositValidator->getProcessOutput());
+            $this->assertEmpty($kositValidator->getValidationErrors());
+            $this->assertStringContainsString("JAVA not installed on this machine", (string) $kositValidator->getProcessErrors()[0]);
+        }
+    }
+
+    /**
+     * Check initial values after instanciation
+     *
+     * @param  ZugferdKositValidator $kositValidator
+     * @return void
+     */
+    private function assertInitialValues(ZugferdKositValidator $kositValidator): void
+    {
+        $this->assertMessageBagIsEmpty($kositValidator);
+        $this->assertIsString($this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+        $this->assertNotSame("", $this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+        $this->assertSame(sys_get_temp_dir(), $this->getPrivatePropertyFromObject($kositValidator, 'baseDirectory')->getValue($kositValidator));
+        $this->assertSame("https://github.com/itplr-kosit/validator/releases/download/v1.5.0/validator-1.5.0-distribution.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorDownloadUrl')->getValue($kositValidator));
+        $this->assertSame("https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-03-21/validator-configuration-xrechnung_3.0.2_2025-03-21.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorScenarioDownloadUrl')->getValue($kositValidator));
+        $this->assertSame("validator.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppZipFilename')->getValue($kositValidator));
+        $this->assertSame("validator-configuration.zip", $this->getPrivatePropertyFromObject($kositValidator, 'validatorScenarioZipFilename')->getValue($kositValidator));
+        $this->assertSame("validationtool-1.5.0-standalone.jar", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppJarFilename')->getValue($kositValidator));
+        $this->assertSame("scenarios.xml", $this->getPrivatePropertyFromObject($kositValidator, 'validatorAppScenarioFilename')->getValue($kositValidator));
+        $this->assertSame("", $this->getPrivatePropertyFromObject($kositValidator, 'fileToValidateFilename')->getValue($kositValidator));
+        $this->assertFalse($this->getPrivatePropertyFromObject($kositValidator, 'cleanupBaseDirectoryIsDisabled')->getValue($kositValidator));
+        $this->assertFalse($this->getPrivatePropertyFromObject($kositValidator, 'remoteModeEnabled')->getValue($kositValidator));
+        $this->assertSame("", $this->getPrivatePropertyFromObject($kositValidator, 'remoteModeHost')->getValue($kositValidator));
+        $this->assertSame(0, $this->getPrivatePropertyFromObject($kositValidator, 'remoteModePort')->getValue($kositValidator));
+
+        $this->assertStringStartsWith(sys_get_temp_dir(), $this->getPrivateMethodFromObject($kositValidator, 'resolveBaseDirectory')->invokeArgs($kositValidator, []));
+        $this->assertStringEndsWith('validator.zip', $this->getPrivateMethodFromObject($kositValidator, 'resolveAppZipFilename')->invokeArgs($kositValidator, []));
+        $this->assertStringEndsWith('validator-configuration.zip', $this->getPrivateMethodFromObject($kositValidator, 'resolveScenatioZipFilename')->invokeArgs($kositValidator, []));
+        $this->assertStringEndsWith('validationtool-1.5.0-standalone.jar', $this->getPrivateMethodFromObject($kositValidator, 'resolveAppJarFilename')->invokeArgs($kositValidator, []));
+        $this->assertStringEndsWith('scenarios.xml', $this->getPrivateMethodFromObject($kositValidator, 'resolveAppScenarioFilename')->invokeArgs($kositValidator, []));
+        $this->assertStringStartsWith(sys_get_temp_dir(), $this->getPrivateMethodFromObject($kositValidator, 'resolveFileToValidateFilename')->invokeArgs($kositValidator, []));
+        $this->assertStringEndsWith('.xml', $this->getPrivateMethodFromObject($kositValidator, 'resolveFileToValidateFilename')->invokeArgs($kositValidator, []));
+    }
+
+    /**
+     * Check for empty message bag
+     *
+     * @param  ZugferdKositValidator $kositValidator
+     * @return void
+     */
+    private function assertMessageBagIsEmpty(ZugferdKositValidator $kositValidator): void
+    {
+        $this->assertEmpty($this->getPrivatePropertyFromObject($kositValidator, 'messageBag')->getValue($kositValidator));
+    }
+
+    /**
+     * Clear message bag assertions
+     *
+     * @param  ZugferdKositValidator $kositValidator
+     * @return void
+     */
+    private function assertClearMessageBag(ZugferdKositValidator $kositValidator): void
+    {
+        $this->getPrivateMethodFromObject($kositValidator, 'clearMessageBag')->invokeArgs($kositValidator, []);
+        $this->assertMessageBagIsEmpty($kositValidator);
+    }
+
+    /**
+     * Invoke cleanup directories
+     *
+     * @param  ZugferdKositValidator $kositValidator
+     * @return void
+     */
+    private function invokeCleanup(ZugferdKositValidator $kositValidator): void
+    {
+        $this->getPrivateMethodFromObject($kositValidator, 'cleanupBaseDirectory')->invokeArgs($kositValidator, []);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfMergerTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfMergerTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfMergerTest.php	(revision 8542)
@@ -0,0 +1,105 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\tests\TestCase;
+use Smalot\PdfParser\Parser as PdfParser;
+use horstoeko\zugferd\ZugferdDocumentPdfMerger;
+use horstoeko\zugferd\ZugferdDocumentPdfBuilder;
+use horstoeko\zugferd\exception\ZugferdUnknownProfileParameterException;
+
+class PdfMergerTest extends TestCase
+{
+    public function testConstructByXmlFileAndPdfFile(): void
+    {
+        $xmlFilename = __DIR__ . '/../assets/xml_en16931_1.xml';
+        $pdfFilename = __DIR__ . '/../assets/pdf_plain.pdf';
+
+        $pdfMerger = new ZugferdDocumentPdfMerger($xmlFilename, $pdfFilename);
+
+        $this->assertSame($xmlFilename, $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataOrFilename')->getValue($pdfMerger));
+
+        $this->checkAndValidateMerger($pdfMerger);
+    }
+
+    public function testConstructByXmlContentAndPdfFile(): void
+    {
+        $xmlFilename = __DIR__ . '/../assets/xml_en16931_1.xml';
+        $pdfFilename = __DIR__ . '/../assets/pdf_plain.pdf';
+
+        $xmlContent = file_get_contents($xmlFilename);
+
+        $pdfMerger = new ZugferdDocumentPdfMerger($xmlContent, $pdfFilename);
+
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataOrFilename')->getValue($pdfMerger));
+
+        $this->checkAndValidateMerger($pdfMerger);
+    }
+
+    public function testConstructByXmlFileAndPdfContent(): void
+    {
+        $xmlFilename = __DIR__ . '/../assets/xml_en16931_1.xml';
+        $pdfFilename = __DIR__ . '/../assets/pdf_plain.pdf';
+
+        $pdfContent = file_get_contents($pdfFilename);
+
+        $pdfMerger = new ZugferdDocumentPdfMerger($xmlFilename, $pdfContent);
+
+        $this->assertSame($xmlFilename, $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataOrFilename')->getValue($pdfMerger));
+
+        $this->checkAndValidateMerger($pdfMerger);
+    }
+
+    public function testConstructByXmlContentAndPdfContent(): void
+    {
+        $xmlFilename = __DIR__ . '/../assets/xml_en16931_1.xml';
+        $pdfFilename = __DIR__ . '/../assets/pdf_plain.pdf';
+
+        $xmlContent = file_get_contents($xmlFilename);
+        $pdfContent = file_get_contents($pdfFilename);
+
+        $pdfMerger = new ZugferdDocumentPdfMerger($xmlContent, $pdfContent);
+
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataOrFilename')->getValue($pdfMerger));
+
+        $this->checkAndValidateMerger($pdfMerger);
+    }
+
+    private function checkAndValidateMerger(ZugferdDocumentPdfMerger $pdfMerger): void
+    {
+        $this->assertSame("", $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataCache')->getValue($pdfMerger));
+
+        $pdfMerger->generateDocument();
+        $pdfContent = $pdfMerger->downloadString();
+
+        $this->assertStringStartsWith("<?xml version='1.0' encoding='UTF-8'?>", $this->getPrivatePropertyFromObject($pdfMerger, 'xmlDataCache')->getValue($pdfMerger));
+
+        $pdfParser = new PdfParser();
+        $pdfParsed = $pdfParser->parseContent($pdfContent);
+        $pdfFilespecs = $pdfParsed->getObjectsByType('Filespec');
+
+        $this->assertCount(1, $pdfFilespecs);
+        $this->assertArrayHasKey("8_0", $pdfFilespecs);
+
+        $pdfFilespec = $pdfFilespecs["8_0"];
+        $pdfFilespecDetails = $pdfFilespec->getDetails();
+
+        $this->assertIsArray($pdfFilespecDetails);
+        $this->assertArrayHasKey("F", $pdfFilespecDetails);
+        $this->assertArrayHasKey("Type", $pdfFilespecDetails);
+        $this->assertArrayHasKey("UF", $pdfFilespecDetails);
+        $this->assertArrayHasKey("AFRelationship", $pdfFilespecDetails);
+        $this->assertArrayHasKey("Desc", $pdfFilespecDetails);
+        $this->assertArrayHasKey("EF", $pdfFilespecDetails);
+        $this->assertEquals("factur-x.xml", $pdfFilespecDetails["F"]);
+        $this->assertEquals("Filespec", $pdfFilespecDetails["Type"]);
+        $this->assertEquals("factur-x.xml", $pdfFilespecDetails["UF"]);
+        $this->assertEquals(ZugferdDocumentPdfBuilder::AF_RELATIONSHIP_DATA, $pdfFilespecDetails["AFRelationship"]);
+        $this->assertEquals("Factur-X Invoice", $pdfFilespecDetails["Desc"]);
+
+        $this->assertSame('EN 16931', $this->getPrivateMethodFromObject($pdfMerger, 'getProfileDefinitionParameter')->invokeArgs($pdfMerger, ['xmpname']));
+        $this->assertSame('EN 16931 (COMFORT)', $this->getPrivateMethodFromObject($pdfMerger, 'getProfileDefinitionParameter')->invokeArgs($pdfMerger, ['altname']));
+        $this->expectException(ZugferdUnknownProfileParameterException::class);
+        $this->getPrivateMethodFromObject($pdfMerger, 'getProfileDefinitionParameter')->invokeArgs($pdfMerger, ['unknown']);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderEn16931Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderEn16931Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderEn16931Test.php	(revision 8542)
@@ -0,0 +1,1153 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentPdfReader;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class PdfReaderEn16931Test extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public function testCanReadPdf(): void
+    {
+        self::$document = ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+        $this->assertNotNull(self::$document);
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_XRECHNUNG, self::$document->getProfileId());
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('471102', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\en16931\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertNotEmpty($notes);
+        $this->assertCount(2, $notes);
+        $this->assertArrayHasKey(0, $notes);
+        $this->assertArrayHasKey(1, $notes);
+        $this->assertIsArray($notes[0]);
+        $this->assertNotEmpty($notes[0]);
+        $this->assertArrayHasKey("content", $notes[0]);
+        $this->assertArrayHasKey("subjectcode", $notes[0]);
+        $this->assertArrayHasKey("contentcode", $notes[0]);
+        $this->assertIsArray($notes[1]);
+        $this->assertNotEmpty($notes[1]);
+        $this->assertArrayHasKey("content", $notes[1]);
+        $this->assertArrayHasKey("subjectcode", $notes[1]);
+        $this->assertArrayHasKey("contentcode", $notes[1]);
+        $this->assertEquals("", $notes[0]["contentcode"]);
+        $this->assertEquals("", $notes[0]["subjectcode"]);
+        $this->assertEquals("Rechnung gemÃ€Ã Bestellung vom 01.03.2018.", $notes[0]["content"]);
+        $this->assertEquals("", $notes[1]["contentcode"]);
+        $this->assertEquals("REG", $notes[1]["subjectcode"]);
+        $this->assertStringContainsString("Lieferant GmbH", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("LieferantenstraÃe 20", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("80333 MÃŒnchen", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Deutschland", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("GeschÃ€ftsfÃŒhrer: Hans Muster", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Handelsregisternummer: H A 123", (string) $notes[1]["content"]);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(529.87, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(529.87, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(56.87, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("Lieferant GmbH", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertEquals("549910", $sellerids[0]);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertArrayHasKey("0088", $sellerglobalids);
+        $this->assertEquals("4000001123452", $sellerglobalids["0088"]);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("201/113/40209", $sellertaxreg["FC"]);
+        $this->assertEquals("DE123456789", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("LieferantenstraÃe 20", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("80333", $sellerpostcode);
+        $this->assertSame("MÃŒnchen", $sellercity);
+        $this->assertSame("DE", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("", $sellerlegalorgid);
+        $this->assertSame("", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerContact());
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("Kunden AG Mitte", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertEquals("GE2020211", $buyerids[0]);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("KundenstraÃe 15", $buyerlineone);
+        $this->assertSame("", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("69876", $buyerpostcode);
+        $this->assertSame("Frankfurt", $buyercity);
+        $this->assertSame("DE", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("", $buyerlegalorgid);
+        $this->assertSame("", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertInstanceOf(\DateTime::class, $supplychainevent);
+        $this->assertInstanceOf("DateTime", $supplychainevent);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $supplychainevent->format('Ymd'));
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertNotEmpty($docpaymentterms);
+        $this->assertArrayHasKey(0, $docpaymentterms);
+        $this->assertIsArray($docpaymentterms[0]);
+        $this->assertArrayHasKey("description", $docpaymentterms[0]);
+        $this->assertArrayHasKey("duedate", $docpaymentterms[0]);
+        $this->assertArrayHasKey("directdebitmandateid", $docpaymentterms[0]);
+        $this->assertArrayHasKey("partialpaymentamount", $docpaymentterms[0]);
+        $this->assertEquals("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $docpaymentterms[0]["description"]);
+        $this->assertNull($docpaymentterms[0]["duedate"]);
+        $this->assertNotInstanceOf("DateTime", $docpaymentterms[0]["duedate"]);
+        $this->assertEquals("", $docpaymentterms[0]["directdebitmandateid"]);
+        $this->assertEqualsWithDelta(0.0, $docpaymentterms[0]["partialpaymentamount"], PHP_FLOAT_EPSILON);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertFalse(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        $this->assertTrue(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(275.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.25, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+
+        $this->assertTrue(self::$document->nextDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(198.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        self::$document->getDocumentPaymentTerm($termdescription, $termduedate, $termmandate);
+        self::$document->getDiscountTermsFromPaymentTerm($dispercent, $discbasedatetime, $discmeasureval, $discmeasureunit, $discbaseamount, $discamount);
+        self::$document->getPenaltyTermsFromPaymentTerm($penaltypercent, $penaltybasedatetime, $penaltymeasureval, $penaltymeasureunit, $penaltybaseamount, $penaltyamount);
+
+        $this->assertSame("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $termdescription);
+        $this->assertNotInstanceOf(\DateTime::class, $termduedate);
+        $this->assertSame("", $termmandate);
+        $this->assertEquals(0, $dispercent);
+        $this->assertNotInstanceOf(\DateTime::class, $discbasedatetime);
+        $this->assertEquals(0, $discmeasureval);
+        $this->assertSame("", $discmeasureunit);
+        $this->assertEquals(0, $discbaseamount);
+        $this->assertEquals(0, $discamount);
+        $this->assertNotInstanceOf(\DateTime::class, $penaltybasedatetime);
+        $this->assertEquals(0, $penaltymeasureval);
+        $this->assertSame("", $penaltymeasureunit);
+        $this->assertEquals(0, $penaltybaseamount);
+        $this->assertEquals(0, $penaltyamount);
+
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertTrue(self::$document->nextDocumentPosition(), "has a second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("TrennblÃ€tter A4", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("TB100A4", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4012345001235", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(20.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionSecond(): void
+    {
+        $this->assertTrue(self::$document->nextDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("2", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("Joghurt Banane", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("ARNR2", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4000050986428", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(50.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(275.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionAdditionalReferencedDocument(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPositionAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderExtGeneralTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderExtGeneralTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderExtGeneralTest.php	(revision 8542)
@@ -0,0 +1,179 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\exception\ZugferdExceptionCodes;
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+use horstoeko\zugferd\exception\ZugferdNoPdfAttachmentFoundException;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocument;
+use horstoeko\zugferd\ZugferdDocumentPdfReaderExt;
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+class PdfReaderExtGeneralTest extends TestCase
+{
+    public function testReadFromFileWhichDoesNotExist(): void
+    {
+        $this->expectException(ZugferdFileNotFoundException::class);
+
+        ZugferdDocumentPdfReaderExt::readAndGuessFromFile(__DIR__ . "/../assets/unknown.pdf");
+    }
+
+    public function testReadFromFileWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        ZugferdDocumentPdfReaderExt::readAndGuessFromFile(__DIR__ . "/../assets/pdf_invalid.pdf");
+    }
+
+    public function testReadFromFileWhichExistsAndHasValidAttachment(): void
+    {
+        $document = ZugferdDocumentPdfReaderExt::readAndGuessFromFile(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $this->checkDocumentReader($document);
+    }
+
+    public function testReadFromContentWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_invalid.pdf");
+
+        ZugferdDocumentPdfReaderExt::readAndGuessFromContent($pdfContent);
+    }
+
+    public function testReadFromContentWhichHasValidAttachment(): void
+    {
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $document = ZugferdDocumentPdfReaderExt::readAndGuessFromContent($pdfContent);
+
+        $this->checkDocumentReader($document);
+    }
+
+    public function testGetXmlFromFileWhichDoesNotExist(): void
+    {
+        $this->expectException(ZugferdFileNotFoundException::class);
+
+        ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromFile(__DIR__ . "/../assets/unknown.pdf");
+    }
+
+    public function testGetXmlFromFileWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromFile(__DIR__ . "/../assets/pdf_invalid.pdf");
+    }
+
+    public function testGetXmlFromFileWhichExistsAndHasValidAttachment(): void
+    {
+        $xmlString = ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromFile(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $this->checkInvoiceDocumentXml($xmlString);
+    }
+
+    public function testGetXmlFromContentWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_invalid.pdf");
+
+        ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromContent($pdfContent);
+    }
+
+    public function testGetXmlFromContentWhichHasValidAttachment(): void
+    {
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $xmlString = ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromContent($pdfContent);
+
+        $this->checkInvoiceDocumentXml($xmlString);
+    }
+
+    public function testAdditionalAttachments(): void
+    {
+        $filename = __DIR__ . "/../assets/pdf_zf_en16931_2.pdf";
+
+        $xmlString = ZugferdDocumentPdfReaderExt::getInvoiceDocumentContentFromFile($filename);
+
+        $this->checkInvoiceDocumentXml($xmlString);
+
+        $additionalDocuments = ZugferdDocumentPdfReaderExt::getAdditionalDocumentContentsFromFile($filename);
+
+        $this->checkAdditionalAttachments($additionalDocuments);
+
+        $pdfContent = file_get_contents($filename);
+        $additionalDocuments = ZugferdDocumentPdfReaderExt::getAdditionalDocumentContentsFromContent($pdfContent);
+
+        $this->checkAdditionalAttachments($additionalDocuments);
+    }
+
+    public function testInvoiceDocumentAndAttachmentsNoStatic(): void
+    {
+        $pdfReaderExt = ZugferdDocumentPdfReaderExt::fromFile(__DIR__ . "/../assets/pdf_zf_en16931_2.pdf");
+
+        $documentReader = $pdfReaderExt->resolveInvoiceDocumentReader();
+
+        $this->checkDocumentReader($documentReader);
+
+        $xmlString = $pdfReaderExt->resolveInvoiceDocumentContent();
+
+        $this->checkInvoiceDocumentXml($xmlString);
+
+        $additionalDocuments = $pdfReaderExt->resolveAdditionalDocumentContents();
+
+        $this->checkAdditionalAttachments($additionalDocuments);
+    }
+
+    private function checkDocumentReader($documentReader): void
+    {
+        $this->assertNotNull($documentReader);
+        $this->assertInstanceOf(ZugferdDocument::class, $documentReader);
+        $this->assertInstanceOf(ZugferdDocumentReader::class, $documentReader);
+    }
+
+    private function checkInvoiceDocumentXml($xmlString): void
+    {
+        $this->assertNotNull($xmlString);
+        $this->assertIsString($xmlString);
+        $this->assertStringContainsString("<?xml version='1.0'", $xmlString);
+        $this->assertStringContainsString("<rsm:CrossIndustryInvoice", $xmlString);
+        $this->assertStringContainsString("</rsm:CrossIndustryInvoice>", $xmlString);
+    }
+
+    private function checkAdditionalAttachments($additionalDocuments): void
+    {
+        $this->assertNotEmpty($additionalDocuments);
+        $this->assertCount(2, $additionalDocuments);
+        $this->assertArrayHasKey(0, $additionalDocuments);
+        $this->assertArrayHasKey(1, $additionalDocuments);
+        $this->assertArrayNotHasKey(2, $additionalDocuments);
+        $this->assertArrayNotHasKey(3, $additionalDocuments);
+
+        $this->assertIsArray($additionalDocuments[0]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE, $additionalDocuments[0]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_CONTENT, $additionalDocuments[0]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_FILENAME, $additionalDocuments[0]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_MIMETYPE, $additionalDocuments[0]);
+        $this->assertEquals(1, $additionalDocuments[0][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE]);
+        $this->assertEquals('Aufmass.png', $additionalDocuments[0][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_FILENAME]);
+        $this->assertEquals('image/png', $additionalDocuments[0][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_MIMETYPE]);
+
+        $this->assertIsArray($additionalDocuments[1]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE, $additionalDocuments[1]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_CONTENT, $additionalDocuments[1]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_FILENAME, $additionalDocuments[1]);
+        $this->assertArrayHasKey(ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_MIMETYPE, $additionalDocuments[1]);
+        $this->assertEquals(1, $additionalDocuments[1][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_TYPE]);
+        $this->assertEquals('ElektronRapport.pdf', $additionalDocuments[1][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_FILENAME]);
+        $this->assertEquals('application/pdf', $additionalDocuments[1][ZugferdDocumentPdfReaderExt::ATTACHMENT_KEY_MIMETYPE]);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderGeneralTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderGeneralTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderGeneralTest.php	(revision 8542)
@@ -0,0 +1,111 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\exception\ZugferdExceptionCodes;
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+use horstoeko\zugferd\exception\ZugferdNoPdfAttachmentFoundException;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocument;
+use horstoeko\zugferd\ZugferdDocumentPdfReader;
+
+class PdfReaderGeneralTest extends TestCase
+{
+    /* ZugferdPdfReader::readAndGuessFromFile */
+
+    public function testReadFromFileWhichDoesNotExist(): void
+    {
+        $this->expectException(ZugferdFileNotFoundException::class);
+
+        ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/unknown.pdf");
+    }
+
+    public function testReadFromFileWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/pdf_invalid.pdf");
+    }
+
+    public function testReadFromFileWhichExistsAndHasValidAttachment(): void
+    {
+        $document = ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $this->assertInstanceOf(ZugferdDocument::class, $document);
+    }
+
+    /* ZugferdPdfReader::readAndGuessFromContent */
+
+    public function testReadFromContentWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_invalid.pdf");
+
+        ZugferdDocumentPdfReader::readAndGuessFromContent($pdfContent);
+    }
+
+    public function testReadFromContentWhichHasValidAttachment(): void
+    {
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $document = ZugferdDocumentPdfReader::readAndGuessFromContent($pdfContent);
+
+        $this->assertInstanceOf(ZugferdDocument::class, $document);
+    }
+
+    /* ZugferdPdfReader::getXmlFromFile */
+
+    public function testGetXmlFromFileWhichDoesNotExist(): void
+    {
+        $this->expectException(ZugferdFileNotFoundException::class);
+
+        ZugferdDocumentPdfReader::getXmlFromFile(__DIR__ . "/../assets/unknown.pdf");
+    }
+
+    public function testGetXmlFromFileWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        ZugferdDocumentPdfReader::getXmlFromFile(__DIR__ . "/../assets/pdf_invalid.pdf");
+    }
+
+    public function testGetXmlFromFileWhichExistsAndHasValidAttachment(): void
+    {
+        $xmlString = ZugferdDocumentPdfReader::getXmlFromFile(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $this->assertStringContainsString("<?xml version='1.0'", $xmlString);
+        $this->assertStringContainsString("<rsm:CrossIndustryInvoice", $xmlString);
+        $this->assertStringContainsString("</rsm:CrossIndustryInvoice>", $xmlString);
+    }
+
+    /* ZugferdPdfReader::getXmlFromContent */
+
+    public function testGetXmlFromContentWhichHasNoValidAttachment(): void
+    {
+        $this->expectException(ZugferdNoPdfAttachmentFoundException::class);
+        $this->expectExceptionMessage('No PDF attachment found');
+        $this->expectExceptionCode(ZugferdExceptionCodes::NOPDFATTACHMENTFOUND);
+
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_invalid.pdf");
+
+        ZugferdDocumentPdfReader::getXmlFromContent($pdfContent);
+    }
+
+    public function testGetXmlFromContentWhichHasValidAttachment(): void
+    {
+        $pdfContent = file_get_contents(__DIR__ . "/../assets/pdf_zf_en16931_1.pdf");
+
+        $xmlString = ZugferdDocumentPdfReader::getXmlFromContent($pdfContent);
+
+        $this->assertStringContainsString("<?xml version='1.0'", $xmlString);
+        $this->assertStringContainsString("<rsm:CrossIndustryInvoice", $xmlString);
+        $this->assertStringContainsString("</rsm:CrossIndustryInvoice>", $xmlString);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderMinimumTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderMinimumTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderMinimumTest.php	(revision 8542)
@@ -0,0 +1,872 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentPdfReader;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class PdfReaderMinimumTest extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public function testCanReadPdf(): void
+    {
+        self::$document = ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/pdf_fx_minimum_1.pdf");
+        $this->assertNotNull(self::$document);
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertEquals(ZugferdProfiles::PROFILE_MINIMUM, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_XRECHNUNG, self::$document->getProfileId());
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('F20220027', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20220131'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\minimum\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertEmpty($notes);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(110.00, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(100.00, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(100.00, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(10.00, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("SERVEXEC", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("LE FOURNISSEUR", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayNotHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertEmpty($sellerglobalids);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayNotHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("FR11123456782", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("", $sellerpostcode);
+        $this->assertSame("", $sellercity);
+        $this->assertSame("FR", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("123456782", $sellerlegalorgid);
+        $this->assertSame("0002", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerContact());
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("LE CLIENT", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayNotHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("", $buyerlineone);
+        $this->assertSame("", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("", $buyerpostcode);
+        $this->assertSame("", $buyercity);
+        $this->assertSame("", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("987654321", $buyerlegalorgid);
+        $this->assertSame("0002", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("PO201925478", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertNotInstanceOf(\DateTime::class, $supplychainevent);
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertEmpty($docpaymentterms);
+        $this->assertArrayNotHasKey(0, $docpaymentterms);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertFalse(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentTax());
+        $this->assertFalse(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentTax());
+        $this->assertFalse(self::$document->nextDocumentTax());
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has a second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertfalse(self::$document->firstDocumentPosition());
+    }
+
+    public function testDocumentPositionSecond(): void
+    {
+        $this->assertFalse(self::$document->nextDocumentPosition());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderXRechnungTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderXRechnungTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/PdfReaderXRechnungTest.php	(revision 8542)
@@ -0,0 +1,1169 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentPdfReader;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class PdfReaderXRechnungTest extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public function testCanReadPdf(): void
+    {
+        self::$document = ZugferdDocumentPdfReader::readAndGuessFromFile(__DIR__ . "/../assets/pdf_zf_xrechnung_1.pdf");
+        $this->assertNotNull(self::$document);
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+        $this->assertEquals(ZugferdProfiles::PROFILE_XRECHNUNG, self::$document->getProfileId());
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('471102', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\en16931\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertNotEmpty($notes);
+        $this->assertCount(2, $notes);
+        $this->assertArrayHasKey(0, $notes);
+        $this->assertArrayHasKey(1, $notes);
+        $this->assertIsArray($notes[0]);
+        $this->assertNotEmpty($notes[0]);
+        $this->assertArrayHasKey("content", $notes[0]);
+        $this->assertArrayHasKey("subjectcode", $notes[0]);
+        $this->assertArrayHasKey("contentcode", $notes[0]);
+        $this->assertIsArray($notes[1]);
+        $this->assertNotEmpty($notes[1]);
+        $this->assertArrayHasKey("content", $notes[1]);
+        $this->assertArrayHasKey("subjectcode", $notes[1]);
+        $this->assertArrayHasKey("contentcode", $notes[1]);
+        $this->assertEquals("", $notes[0]["contentcode"]);
+        $this->assertEquals("", $notes[0]["subjectcode"]);
+        $this->assertEquals("Rechnung gemÃ€Ã Bestellung vom 01.03.2018.", $notes[0]["content"]);
+        $this->assertEquals("", $notes[1]["contentcode"]);
+        $this->assertEquals("REG", $notes[1]["subjectcode"]);
+        $this->assertStringContainsString("Lieferant GmbH", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("LieferantenstraÃe 20", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("80333 MÃŒnchen", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Deutschland", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("GeschÃ€ftsfÃŒhrer: Hans Muster", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Handelsregisternummer: H A 123", (string) $notes[1]["content"]);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(529.87, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(529.87, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(56.87, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("04011000-12345-34", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("Lieferant GmbH", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayNotHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertArrayHasKey("0088", $sellerglobalids);
+        $this->assertEquals("4000001123452", $sellerglobalids["0088"]);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("201/113/40209", $sellertaxreg["FC"]);
+        $this->assertEquals("DE123456789", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("LieferantenstraÃe 20", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("80333", $sellerpostcode);
+        $this->assertSame("MÃŒnchen", $sellercity);
+        $this->assertSame("DE", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("", $sellerlegalorgid);
+        $this->assertSame("", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentSellerContact());
+        self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+        $this->assertSame("Max Mustermann", $sellercontactpersonname);
+        $this->assertSame("Muster-Einkauf", $sellercontactdepartmentname);
+        $this->assertSame("+49891234567", $sellercontactphoneno);
+        $this->assertSame("", $sellercontactfaxno);
+        $this->assertSame("Max@Mustermann.de", $sellercontactemailaddr);
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("Kunden AG Mitte", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertEquals("GE2020211", $buyerids[0]);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("KundenstraÃe 15", $buyerlineone);
+        $this->assertSame("", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("69876", $buyerpostcode);
+        $this->assertSame("Frankfurt", $buyercity);
+        $this->assertSame("DE", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("", $buyerlegalorgid);
+        $this->assertSame("", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertInstanceOf(\DateTime::class, $supplychainevent);
+        $this->assertInstanceOf("DateTime", $supplychainevent);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $supplychainevent->format('Ymd'));
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertNotEmpty($docpaymentterms);
+        $this->assertArrayHasKey(0, $docpaymentterms);
+        $this->assertIsArray($docpaymentterms[0]);
+        $this->assertArrayHasKey("description", $docpaymentterms[0]);
+        $this->assertArrayHasKey("duedate", $docpaymentterms[0]);
+        $this->assertArrayHasKey("directdebitmandateid", $docpaymentterms[0]);
+        $this->assertArrayHasKey("partialpaymentamount", $docpaymentterms[0]);
+        $this->assertEquals("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $docpaymentterms[0]["description"]);
+        $this->assertNull($docpaymentterms[0]["duedate"]);
+        $this->assertNotInstanceOf("DateTime", $docpaymentterms[0]["duedate"]);
+        $this->assertEquals("", $docpaymentterms[0]["directdebitmandateid"]);
+        $this->assertEqualsWithDelta(0.0, $docpaymentterms[0]["partialpaymentamount"], PHP_FLOAT_EPSILON);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testGetDocumentPaymentMeans(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        self::$document->getDocumentPaymentMeans($typeCode, $information, $cardType, $cardId, $cardHolderName, $buyerIban, $payeeIban, $payeeAccountName, $payeePropId, $payeeBic);
+        $this->assertSame("58", $typeCode);
+        $this->assertSame("Zahlung per SEPA Ãberweisung.", $information);
+        $this->assertSame("", $cardType);
+        $this->assertSame("", $cardId);
+        $this->assertSame("", $cardHolderName);
+        $this->assertSame("", $buyerIban);
+        $this->assertSame("DE02120300000000202051", $payeeIban);
+        $this->assertSame("Kunden AG", $payeeAccountName);
+        $this->assertSame("", $payeePropId);
+        $this->assertSame("BYLADEM1001", $payeeBic);
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        $this->assertTrue(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(275.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.25, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+
+        $this->assertTrue(self::$document->nextDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(198.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        self::$document->getDocumentPaymentTerm($termdescription, $termduedate, $termmandate);
+        self::$document->getDiscountTermsFromPaymentTerm($dispercent, $discbasedatetime, $discmeasureval, $discmeasureunit, $discbaseamount, $discamount);
+        self::$document->getPenaltyTermsFromPaymentTerm($penaltypercent, $penaltybasedatetime, $penaltymeasureval, $penaltymeasureunit, $penaltybaseamount, $penaltyamount);
+
+        $this->assertSame("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $termdescription);
+        $this->assertNotInstanceOf(\DateTime::class, $termduedate);
+        $this->assertSame("", $termmandate);
+        $this->assertEquals(0, $dispercent);
+        $this->assertNotInstanceOf(\DateTime::class, $discbasedatetime);
+        $this->assertEquals(0, $discmeasureval);
+        $this->assertSame("", $discmeasureunit);
+        $this->assertEquals(0, $discbaseamount);
+        $this->assertEquals(0, $discamount);
+        $this->assertNotInstanceOf(\DateTime::class, $penaltybasedatetime);
+        $this->assertEquals(0, $penaltymeasureval);
+        $this->assertSame("", $penaltymeasureunit);
+        $this->assertEquals(0, $penaltybaseamount);
+        $this->assertEquals(0, $penaltyamount);
+
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertTrue(self::$document->nextDocumentPosition(), "has a second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("TrennblÃ€tter A4", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("TB100A4", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4012345001235", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(20.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionSecond(): void
+    {
+        $this->assertTrue(self::$document->nextDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("2", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("Joghurt Banane", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("ARNR2", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4000050986428", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(50.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(275.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionAdditionalReferencedDocument(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPositionAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ProfileConverterTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ProfileConverterTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ProfileConverterTest.php	(revision 8542)
@@ -0,0 +1,226 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdProfiles;
+use horstoeko\zugferd\tests\traits\HandlesXmlTests;
+use horstoeko\zugferd\ZugferdDocumentProfileConverter;
+use horstoeko\zugferd\exception\ZugferdFileNotFoundException;
+
+class ProfileConverterTest extends TestCase
+{
+    use HandlesXmlTests;
+
+    public function testComvertFromFileToFileXRechnung3(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $tofile = __DIR__ . "/../assets/converterresult.xml";
+
+        ZugferdDocumentProfileConverter::convertFromFileToFile($fromfile, $tofile, ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+        $this->registerFileForTeardown($tofile);
+
+        $this->assertFileExists($tofile);
+
+        $tofileContent = file_get_contents($tofile);
+
+        $this->assertIsString($tofileContent);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $tofileContent);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+    }
+
+    public function testConvertFromFileToStringXRechnung3(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $converterResult = ZugferdDocumentProfileConverter::convertFromFileToString($fromfile, ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+        $this->assertIsString($converterResult);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $converterResult);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+    }
+
+    public function testConvertFromContentToFileXRechnung3(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $tofile = __DIR__ . "/../assets/converterresult.xml";
+        $fromfileContent = file_get_contents($fromfile);
+
+        ZugferdDocumentProfileConverter::convertFromContentToFile($fromfileContent, $tofile, ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+        $this->registerFileForTeardown($tofile);
+
+        $this->assertFileExists($tofile);
+
+        $tofileContent = file_get_contents($tofile);
+
+        $this->assertIsString($tofileContent);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $tofileContent);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+    }
+
+    public function testConvertFromContentToStringXRechnung3(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $fromfileContent = file_get_contents($fromfile);
+
+        $converterResult = ZugferdDocumentProfileConverter::convertFromContentToString($fromfileContent, ZugferdProfiles::PROFILE_XRECHNUNG_3);
+
+        $this->assertIsString($converterResult);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $converterResult);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+    }
+
+    public function testComvertFromFileToFileEn16931(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $tofile = __DIR__ . "/../assets/converterresult.xml";
+
+        ZugferdDocumentProfileConverter::convertFromFileToFile($fromfile, $tofile, ZugferdProfiles::PROFILE_EN16931);
+
+        $this->registerFileForTeardown($tofile);
+
+        $this->assertFileExists($tofile);
+
+        $tofileContent = file_get_contents($tofile);
+
+        $this->assertIsString($tofileContent);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $tofileContent);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringNotContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringNotContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $tofileContent);
+        $this->assertStringNotContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+    }
+
+    public function testConvertFromFileToStringEn16931(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $converterResult = ZugferdDocumentProfileConverter::convertFromFileToString($fromfile, ZugferdProfiles::PROFILE_EN16931);
+
+        $this->assertIsString($converterResult);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $converterResult);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $converterResult);
+        $this->assertStringNotContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+    }
+
+    public function testConvertFromContentToFileEn16931(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $tofile = __DIR__ . "/../assets/converterresult.xml";
+        $fromfileContent = file_get_contents($fromfile);
+
+        ZugferdDocumentProfileConverter::convertFromContentToFile($fromfileContent, $tofile, ZugferdProfiles::PROFILE_EN16931);
+
+        $this->registerFileForTeardown($tofile);
+
+        $this->assertFileExists($tofile);
+
+        $tofileContent = file_get_contents($tofile);
+
+        $this->assertIsString($tofileContent);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $tofileContent);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017</ram:ID>', $tofileContent);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringNotContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+        $this->assertStringNotContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $tofileContent);
+        $this->assertStringNotContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $tofileContent);
+    }
+
+    public function testConvertFromContentToStringEn16931(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_en16931_1.xml";
+        $fromfileContent = file_get_contents($fromfile);
+        $converterResult = ZugferdDocumentProfileConverter::convertFromContentToString($fromfileContent, ZugferdProfiles::PROFILE_EN16931);
+
+        $this->assertIsString($converterResult);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $converterResult);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $converterResult);
+        $this->assertStringNotContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+    }
+
+    public function testComvertFromFileWhichNotExistsToFile(): void
+    {
+        $this->expectException(ZugferdFileNotFoundException::class);
+
+        $fromfile = __DIR__ . "/../assets/not_existing_file.xml";
+        $tofile = __DIR__ . "/../assets/converterresult.xml";
+
+        ZugferdDocumentProfileConverter::convertFromFileToFile($fromfile, $tofile, ZugferdProfiles::PROFILE_XRECHNUNG_3);
+    }
+
+    public function testComvertFromFileToFileExtendedToEn16931(): void
+    {
+        $fromfile = __DIR__ . "/../assets/xml_extended_1.xml";
+        $converterResult = ZugferdDocumentProfileConverter::convertFromFileToString($fromfile, ZugferdProfiles::PROFILE_EN16931);
+
+        $this->assertIsString($converterResult);
+        $this->assertStringStartsWith('<?xml version="1.0" encoding="UTF-8"?>', $converterResult);
+        $this->assertStringContainsString('<ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringContainsString('<ram:ID>urn:cen.eu:en16931:2017</ram:ID>', $converterResult);
+        $this->assertStringContainsString('</ram:GuidelineSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+        $this->assertStringNotContainsString('<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>', $converterResult);
+        $this->assertStringNotContainsString('</ram:BusinessProcessSpecifiedDocumentContextParameter>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:TestIndicator>', $converterResult);
+        $this->assertStringNotContainsString('<udt:Indicator>true</udt:Indicator>', $converterResult);
+        $this->assertStringNotContainsString('</ram:TestIndicator>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:Name>KOSTENRECHNUNG</ram:Name>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:ContentCode>ST3</ram:ContentCode>', $converterResult);
+        $this->assertStringNotContainsString('<ram:ContentCode>EEV</ram:ContentCode>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:IndustryAssignedID>IndustryId</ram:IndustryAssignedID>', $converterResult);
+        $this->assertStringNotContainsString('<ram:BatchID>BatchId</ram:BatchID>', $converterResult);
+        $this->assertStringNotContainsString('<ram:BrandName>BrandeName</ram:BrandName>', $converterResult);
+        $this->assertStringNotContainsString('<ram:ModelName>ModelName</ram:ModelName>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:DeliveryNoteReferencedDocument>', $converterResult);
+        $this->assertStringNotContainsString('<ram:IssuerAssignedID>L87654321012</ram:IssuerAssignedID>', $converterResult);
+        $this->assertStringNotContainsString('</ram:DeliveryNoteReferencedDocument>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:InvoiceeTradeParty>', $converterResult);
+        $this->assertStringNotContainsString('</ram:InvoiceeTradeParty>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:SpecifiedLogisticsServiceCharge>', $converterResult);
+        $this->assertStringNotContainsString('</ram:SpecifiedLogisticsServiceCharge>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:ApplicableTradePaymentDiscountTerms>', $converterResult);
+        $this->assertStringNotContainsString('</ram:ApplicableTradePaymentDiscountTerms>', $converterResult);
+
+        $this->assertStringNotContainsString('<ram:ApplicableTradePaymentPenaltyTerms>', $converterResult);
+        $this->assertStringNotContainsString('</ram:ApplicableTradePaymentPenaltyTerms>', $converterResult);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderBasicTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderBasicTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderBasicTest.php	(revision 8542)
@@ -0,0 +1,1056 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class ReaderBasicTest extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public static function setUpBeforeClass(): void
+    {
+        self::$document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . "/../assets/xml_basic_1.xml");
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+    }
+
+    public function testDocumentGetters(): void
+    {
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\basic\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertInstanceOf(\JMS\Serializer\Serializer::class, $this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertInstanceOf('horstoeko\zugferd\ZugferdObjectHelper', $this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertEquals('basic', self::$document->getProfileDefinitionParameter('name'));
+        $this->assertEquals('BASIC', self::$document->getProfileDefinitionParameter('altname'));
+        $this->assertEquals('urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic', self::$document->getProfileDefinitionParameter('contextparameter'));
+        $this->assertEquals('factur-x.xml', self::$document->getProfileDefinitionParameter('attachmentfilename'));
+        $this->assertEquals('BASIC', self::$document->getProfileDefinitionParameter('xmpname'));
+        $this->assertEquals('1.0', self::$document->getProfileDefinitionParameter('xmpversion'));
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getProfileDefinitionParameter('unknownparameter');
+            }
+        );
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('471102', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20200305'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertNotEmpty($notes);
+        $this->assertCount(3, $notes);
+        $this->assertArrayHasKey(0, $notes);
+        $this->assertArrayHasKey(1, $notes);
+        $this->assertIsArray($notes[0]);
+        $this->assertNotEmpty($notes[0]);
+        $this->assertArrayHasKey("content", $notes[0]);
+        $this->assertArrayHasKey("subjectcode", $notes[0]);
+        $this->assertArrayHasKey("contentcode", $notes[0]);
+        $this->assertIsArray($notes[1]);
+        $this->assertNotEmpty($notes[1]);
+        $this->assertArrayHasKey("content", $notes[1]);
+        $this->assertArrayHasKey("subjectcode", $notes[1]);
+        $this->assertArrayHasKey("contentcode", $notes[1]);
+        $this->assertEquals("", $notes[0]["contentcode"]);
+        $this->assertEquals("", $notes[0]["subjectcode"]);
+        $this->assertEquals("Rechnung gemÃ€Ã Bestellung vom 01.03.2020.", $notes[0]["content"]);
+        $this->assertEquals("", $notes[1]["contentcode"]);
+        $this->assertEquals("", $notes[1]["subjectcode"]);
+        $this->assertStringContainsString("Lieferant GmbH", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("LieferantenstraÃe 20", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("80333 MÃŒnchen", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Deutschland", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("GeschÃ€ftsfÃŒhrer: Hans Muster", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Handelsregisternummer: H A 123", (string) $notes[1]["content"]);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(235.62, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(235.62, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(198.0, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("Lieferant GmbH", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayNotHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertArrayNotHasKey("0088", $sellerglobalids);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("201/113/40209", $sellertaxreg["FC"]);
+        $this->assertEquals("DE123456789", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("LieferantenstraÃe 20", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("80333", $sellerpostcode);
+        $this->assertSame("MÃŒnchen", $sellercity);
+        $this->assertSame("DE", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("", $sellerlegalorgid);
+        $this->assertSame("", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerContact());
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("Kunden AG Mitte", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayNotHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("Hans Muster", $buyerlineone);
+        $this->assertSame("KundenstraÃe 15", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("69876", $buyerpostcode);
+        $this->assertSame("Frankfurt", $buyercity);
+        $this->assertSame("DE", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("", $buyerlegalorgid);
+        $this->assertSame("", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertInstanceOf(\DateTime::class, $supplychainevent);
+        $this->assertInstanceOf("DateTime", $supplychainevent);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20200305'))->format('Ymd'), $supplychainevent->format('Ymd'));
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertNotEmpty($docpaymentterms);
+        $this->assertArrayHasKey(0, $docpaymentterms);
+        $this->assertIsArray($docpaymentterms[0]);
+        $this->assertArrayHasKey("description", $docpaymentterms[0]);
+        $this->assertArrayHasKey("duedate", $docpaymentterms[0]);
+        $this->assertArrayHasKey("directdebitmandateid", $docpaymentterms[0]);
+        $this->assertArrayHasKey("partialpaymentamount", $docpaymentterms[0]);
+        $this->assertEquals("", $docpaymentterms[0]["description"]);
+        $this->assertNotNull($docpaymentterms[0]["duedate"]);
+        $this->assertInstanceOf("DateTime", $docpaymentterms[0]["duedate"]);
+        $this->assertEquals("", $docpaymentterms[0]["directdebitmandateid"]);
+        $this->assertEqualsWithDelta(0.0, $docpaymentterms[0]["partialpaymentamount"], PHP_FLOAT_EPSILON);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertFalse(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testGetDocumentPaymentMeans(): void
+    {
+        $this->assertFalse(self::$document->firstGetDocumentPaymentMeans());
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        $this->assertFalse(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(198.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        self::$document->getDocumentPaymentTerm($termdescription, $termduedate, $termmandate);
+        self::$document->getDiscountTermsFromPaymentTerm($dispercent, $discbasedatetime, $discmeasureval, $discmeasureunit, $discbaseamount, $discamount);
+        self::$document->getPenaltyTermsFromPaymentTerm($penaltypercent, $penaltybasedatetime, $penaltymeasureval, $penaltymeasureunit, $penaltybaseamount, $penaltyamount);
+
+        $this->assertSame("", $termdescription);
+        $this->assertInstanceOf(\DateTime::class, $termduedate);
+        $this->assertSame("", $termmandate);
+        $this->assertEquals(0, $dispercent);
+        $this->assertNotInstanceOf(\DateTime::class, $discbasedatetime);
+        $this->assertEquals(0, $discmeasureval);
+        $this->assertSame("", $discmeasureunit);
+        $this->assertEquals(0, $discbaseamount);
+        $this->assertEquals(0, $discamount);
+        $this->assertNotInstanceOf(\DateTime::class, $penaltybasedatetime);
+        $this->assertEquals(0, $penaltymeasureval);
+        $this->assertSame("", $penaltymeasureunit);
+        $this->assertEquals(0, $penaltybaseamount);
+        $this->assertEquals(0, $penaltyamount);
+
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("GTIN: 4012345001235, Unsere Art.-Nr.: TB100A4, TrennblÃ€tter A4", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4012345001235", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(20.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionAdditionalReferencedDocument(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPositionAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderEn16931Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderEn16931Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderEn16931Test.php	(revision 8542)
@@ -0,0 +1,1185 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class ReaderEn16931Test extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public static function setUpBeforeClass(): void
+    {
+        self::$document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . "/../assets/xml_en16931_1.xml");
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+    }
+
+    public function testDocumentGetters(): void
+    {
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\en16931\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertInstanceOf(\JMS\Serializer\Serializer::class, $this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertInstanceOf('horstoeko\zugferd\ZugferdObjectHelper', $this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertEquals('en16931', self::$document->getProfileDefinitionParameter('name'));
+        $this->assertEquals('EN 16931 (COMFORT)', self::$document->getProfileDefinitionParameter('altname'));
+        $this->assertEquals('urn:cen.eu:en16931:2017', self::$document->getProfileDefinitionParameter('contextparameter'));
+        $this->assertEquals('factur-x.xml', self::$document->getProfileDefinitionParameter('attachmentfilename'));
+        $this->assertEquals('EN 16931', self::$document->getProfileDefinitionParameter('xmpname'));
+        $this->assertEquals('1.0', self::$document->getProfileDefinitionParameter('xmpversion'));
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getProfileDefinitionParameter('unknownparameter');
+            }
+        );
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('471102', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertNotEmpty($notes);
+        $this->assertCount(2, $notes);
+        $this->assertArrayHasKey(0, $notes);
+        $this->assertArrayHasKey(1, $notes);
+        $this->assertIsArray($notes[0]);
+        $this->assertNotEmpty($notes[0]);
+        $this->assertArrayHasKey("content", $notes[0]);
+        $this->assertArrayHasKey("subjectcode", $notes[0]);
+        $this->assertArrayHasKey("contentcode", $notes[0]);
+        $this->assertIsArray($notes[1]);
+        $this->assertNotEmpty($notes[1]);
+        $this->assertArrayHasKey("content", $notes[1]);
+        $this->assertArrayHasKey("subjectcode", $notes[1]);
+        $this->assertArrayHasKey("contentcode", $notes[1]);
+        $this->assertEquals("", $notes[0]["contentcode"]);
+        $this->assertEquals("", $notes[0]["subjectcode"]);
+        $this->assertEquals("Rechnung gemÃ€Ã Bestellung vom 01.03.2018.", $notes[0]["content"]);
+        $this->assertEquals("", $notes[1]["contentcode"]);
+        $this->assertEquals("REG", $notes[1]["subjectcode"]);
+        $this->assertStringContainsString("Lieferant GmbH", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("LieferantenstraÃe 20", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("80333 MÃŒnchen", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Deutschland", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("GeschÃ€ftsfÃŒhrer: Hans Muster", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Handelsregisternummer: H A 123", (string) $notes[1]["content"]);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(529.87, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(529.87, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(56.87, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("08154711", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("Lieferant GmbH", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertEquals("549910", $sellerids[0]);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertArrayHasKey("0088", $sellerglobalids);
+        $this->assertEquals("4000001123452", $sellerglobalids["0088"]);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("201/113/40209", $sellertaxreg["FC"]);
+        $this->assertEquals("DE123456789", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("LieferantenstraÃe 20", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("80333", $sellerpostcode);
+        $this->assertSame("MÃŒnchen", $sellercity);
+        $this->assertSame("DE", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("", $sellerlegalorgid);
+        $this->assertSame("", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerContact());
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("Kunden AG Mitte", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertEquals("GE2020211", $buyerids[0]);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("KundenstraÃe 15", $buyerlineone);
+        $this->assertSame("", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("69876", $buyerpostcode);
+        $this->assertSame("Frankfurt", $buyercity);
+        $this->assertSame("DE", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("", $buyerlegalorgid);
+        $this->assertSame("", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertInstanceOf(\DateTime::class, $supplychainevent);
+        $this->assertInstanceOf("DateTime", $supplychainevent);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $supplychainevent->format('Ymd'));
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertNotEmpty($docpaymentterms);
+        $this->assertArrayHasKey(0, $docpaymentterms);
+        $this->assertIsArray($docpaymentterms[0]);
+        $this->assertArrayHasKey("description", $docpaymentterms[0]);
+        $this->assertArrayHasKey("duedate", $docpaymentterms[0]);
+        $this->assertArrayHasKey("directdebitmandateid", $docpaymentterms[0]);
+        $this->assertArrayHasKey("partialpaymentamount", $docpaymentterms[0]);
+        $this->assertEquals("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $docpaymentterms[0]["description"]);
+        $this->assertNull($docpaymentterms[0]["duedate"]);
+        $this->assertNotInstanceOf("DateTime", $docpaymentterms[0]["duedate"]);
+        $this->assertEquals("", $docpaymentterms[0]["directdebitmandateid"]);
+        $this->assertEqualsWithDelta(0.0, $docpaymentterms[0]["partialpaymentamount"], PHP_FLOAT_EPSILON);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testGetDocumentPaymentMeans(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        self::$document->getDocumentPaymentMeans($typeCode, $information, $cardType, $cardId, $cardHolderName, $buyerIban, $payeeIban, $payeeAccountName, $payeePropId, $payeeBic);
+        $this->assertSame("58", $typeCode);
+        $this->assertSame("", $information);
+        $this->assertSame("", $cardType);
+        $this->assertSame("", $cardId);
+        $this->assertSame("", $cardHolderName);
+        $this->assertSame("", $buyerIban);
+        $this->assertSame("DE5467894567876500", $payeeIban);
+        $this->assertSame("", $payeeAccountName);
+        $this->assertSame("", $payeePropId);
+        $this->assertSame("", $payeeBic);
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        $this->assertTrue(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(275.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.25, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+
+        $this->assertTrue(self::$document->nextDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(198.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        self::$document->getDocumentPaymentTerm($termdescription, $termduedate, $termmandate);
+        self::$document->getDiscountTermsFromPaymentTerm($dispercent, $discbasedatetime, $discmeasureval, $discmeasureunit, $discbaseamount, $discamount);
+        self::$document->getPenaltyTermsFromPaymentTerm($penaltypercent, $penaltybasedatetime, $penaltymeasureval, $penaltymeasureunit, $penaltybaseamount, $penaltyamount);
+
+        $this->assertSame("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $termdescription);
+        $this->assertNotInstanceOf(\DateTime::class, $termduedate);
+        $this->assertSame("", $termmandate);
+        $this->assertEquals(0, $dispercent);
+        $this->assertNotInstanceOf(\DateTime::class, $discbasedatetime);
+        $this->assertEquals(0, $discmeasureval);
+        $this->assertSame("", $discmeasureunit);
+        $this->assertEquals(0, $discbaseamount);
+        $this->assertEquals(0, $discamount);
+        $this->assertNotInstanceOf(\DateTime::class, $penaltybasedatetime);
+        $this->assertEquals(0, $penaltymeasureval);
+        $this->assertSame("", $penaltymeasureunit);
+        $this->assertEquals(0, $penaltybaseamount);
+        $this->assertEquals(0, $penaltyamount);
+
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertTrue(self::$document->nextDocumentPosition(), "has a second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("TrennblÃ€tter A4", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("TB100A4", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4012345001235", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(20.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionSecond(): void
+    {
+        $this->assertTrue(self::$document->nextDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("2", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("Joghurt Banane", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("ARNR2", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4000050986428", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(50.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(275.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionAdditionalReferencedDocument(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPositionAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderXRechnungTest.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderXRechnungTest.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/ReaderXRechnungTest.php	(revision 8542)
@@ -0,0 +1,1186 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases;
+
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class ReaderXRechnungTest extends TestCase
+{
+    /**
+     * @var ZugferdDocumentReader
+     */
+    protected static $document;
+
+    public static function setUpBeforeClass(): void
+    {
+        self::$document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . "/../assets/xml_xrechnung_1.xml");
+    }
+
+    public function testDocumentProfile(): void
+    {
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EN16931, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASIC, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_BASICWL, self::$document->getProfileId());
+        $this->assertNotEquals(ZugferdProfiles::PROFILE_EXTENDED, self::$document->getProfileId());
+        $this->assertEquals(ZugferdProfiles::PROFILE_XRECHNUNG, self::$document->getProfileId());
+    }
+
+    public function testDocumentGetters(): void
+    {
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertInstanceOf('horstoeko\zugferd\entities\en16931\rsm\CrossIndustryInvoice', $this->invokePrivateMethodFromObject(self::$document, 'getInvoiceObject'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertInstanceOf(\JMS\Serializer\Serializer::class, $this->invokePrivateMethodFromObject(self::$document, 'getSerializer'));
+        $this->assertNotNull($this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertInstanceOf('horstoeko\zugferd\ZugferdObjectHelper', $this->invokePrivateMethodFromObject(self::$document, 'getObjectHelper'));
+        $this->assertEquals('en16931', self::$document->getProfileDefinitionParameter('name'));
+        $this->assertEquals('XRECHNUNG', self::$document->getProfileDefinitionParameter('altname'));
+        $this->assertEquals('urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2', self::$document->getProfileDefinitionParameter('contextparameter'));
+        $this->assertEquals('xrechnung.xml', self::$document->getProfileDefinitionParameter('attachmentfilename'));
+        $this->assertEquals('XRECHNUNG', self::$document->getProfileDefinitionParameter('xmpname'));
+        $this->assertEquals('1.2', self::$document->getProfileDefinitionParameter('xmpversion'));
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getProfileDefinitionParameter('unknownparameter');
+            }
+        );
+    }
+
+    public function testDocumentGenerals(): void
+    {
+        self::$document->getDocumentInformation($documentno, $documenttypecode, $documentdate, $invoiceCurrency, $taxCurrency, $documentname, $documentlanguage, $effectiveSpecifiedPeriod);
+        $this->assertSame('471102', $documentno);
+        $this->assertSame(ZugferdInvoiceType::INVOICE, $documenttypecode);
+        $this->assertInstanceOf(\DateTime::class, $documentdate);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $documentdate->format('Ymd'));
+        $this->assertSame("EUR", $invoiceCurrency);
+        $this->assertSame("", $taxCurrency);
+        $this->assertSame("", $documentname);
+        $this->assertSame("", $documentlanguage);
+        $this->assertNotInstanceOf(\DateTime::class, $effectiveSpecifiedPeriod);
+    }
+
+    public function testDocumentNotes(): void
+    {
+        self::$document->getDocumentNotes($notes);
+        $this->assertIsArray($notes);
+        $this->assertNotEmpty($notes);
+        $this->assertCount(2, $notes);
+        $this->assertArrayHasKey(0, $notes);
+        $this->assertArrayHasKey(1, $notes);
+        $this->assertIsArray($notes[0]);
+        $this->assertNotEmpty($notes[0]);
+        $this->assertArrayHasKey("content", $notes[0]);
+        $this->assertArrayHasKey("subjectcode", $notes[0]);
+        $this->assertArrayHasKey("contentcode", $notes[0]);
+        $this->assertIsArray($notes[1]);
+        $this->assertNotEmpty($notes[1]);
+        $this->assertArrayHasKey("content", $notes[1]);
+        $this->assertArrayHasKey("subjectcode", $notes[1]);
+        $this->assertArrayHasKey("contentcode", $notes[1]);
+        $this->assertEquals("", $notes[0]["contentcode"]);
+        $this->assertEquals("", $notes[0]["subjectcode"]);
+        $this->assertEquals("Rechnung gemÃ€Ã Bestellung vom 01.03.2018.", $notes[0]["content"]);
+        $this->assertEquals("", $notes[1]["contentcode"]);
+        $this->assertEquals("REG", $notes[1]["subjectcode"]);
+        $this->assertStringContainsString("Lieferant GmbH", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("LieferantenstraÃe 20", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("80333 MÃŒnchen", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Deutschland", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("GeschÃ€ftsfÃŒhrer: Hans Muster", (string) $notes[1]["content"]);
+        $this->assertStringContainsString("Handelsregisternummer: H A 123", (string) $notes[1]["content"]);
+    }
+
+    public function testDocumentGeneralPaymentInformation(): void
+    {
+        self::$document->getDocumentGeneralPaymentInformation($creditorReferenceID, $paymentReference);
+        $this->assertSame("", $creditorReferenceID);
+        $this->assertSame("", $paymentReference);
+    }
+
+    public function testDocumentIsCopy(): void
+    {
+        self::$document->getIsDocumentCopy($iscopy);
+        $this->assertFalse($iscopy);
+    }
+
+    public function testDocumentIsTestDocument(): void
+    {
+        self::$document->getIsTestDocument($istest);
+        $this->assertFalse($istest);
+    }
+
+    public function testDocumentSummation(): void
+    {
+        self::$document->getDocumentSummation($grandTotalAmount, $duePayableAmount, $lineTotalAmount, $chargeTotalAmount, $allowanceTotalAmount, $taxBasisTotalAmount, $taxTotalAmount, $roundingAmount, $totalPrepaidAmount);
+        $this->assertEqualsWithDelta(529.87, $grandTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(529.87, $duePayableAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $lineTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $chargeTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $allowanceTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(473.00, $taxBasisTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(56.87, $taxTotalAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $roundingAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.00, $totalPrepaidAmount, PHP_FLOAT_EPSILON);
+    }
+
+    public function testGetDocumentBuyerReference(): void
+    {
+        self::$document->getDocumentBuyerReference($buyerReference);
+        $this->assertSame("04011000-12345-34", $buyerReference);
+    }
+
+    public function testDocumentSellerGeneral(): void
+    {
+        self::$document->getDocumentSeller($sellername, $sellerids, $sellerdescription);
+        $this->assertSame("Lieferant GmbH", $sellername);
+        $this->assertIsArray($sellerids);
+        $this->assertArrayNotHasKey(0, $sellerids);
+        $this->assertArrayNotHasKey(1, $sellerids);
+        $this->assertSame("", $sellerdescription);
+    }
+
+    public function testDocumentSellerGlobalId(): void
+    {
+        self::$document->getDocumentSellerGlobalId($sellerglobalids);
+        $this->assertIsArray($sellerglobalids);
+        $this->assertArrayHasKey("0088", $sellerglobalids);
+        $this->assertEquals("4000001123452", $sellerglobalids["0088"]);
+    }
+
+    public function testDocumentSellerTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRegistration($sellertaxreg);
+        $this->assertIsArray($sellertaxreg);
+        $this->assertArrayHasKey("VA", $sellertaxreg);
+        $this->assertArrayHasKey("FC", $sellertaxreg);
+        $this->assertArrayNotHasKey(0, $sellertaxreg);
+        $this->assertArrayNotHasKey(1, $sellertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $sellertaxreg);
+        $this->assertEquals("201/113/40209", $sellertaxreg["FC"]);
+        $this->assertEquals("DE123456789", $sellertaxreg["VA"]);
+    }
+
+    public function testDocumentSellerAddress(): void
+    {
+        self::$document->getDocumentSellerAddress($sellerlineone, $sellerlinetwo, $sellerlinethree, $sellerpostcode, $sellercity, $sellercountry, $sellersubdivision);
+        $this->assertSame("LieferantenstraÃe 20", $sellerlineone);
+        $this->assertSame("", $sellerlinetwo);
+        $this->assertSame("", $sellerlinethree);
+        $this->assertSame("80333", $sellerpostcode);
+        $this->assertSame("MÃŒnchen", $sellercity);
+        $this->assertSame("DE", $sellercountry);
+        $this->assertIsArray($sellersubdivision);
+        $this->assertEmpty($sellersubdivision);
+    }
+
+    public function testDocumentSellerLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerLegalOrganisation($sellerlegalorgid, $sellerlegalorgtype, $sellerlegalorgname);
+        $this->assertSame("", $sellerlegalorgid);
+        $this->assertSame("", $sellerlegalorgtype);
+        $this->assertSame("", $sellerlegalorgname);
+    }
+
+    public function testDocumentSellerContact(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentSellerContact());
+        self::$document->getDocumentSellerContact($sellercontactpersonname, $sellercontactdepartmentname, $sellercontactphoneno, $sellercontactfaxno, $sellercontactemailaddr);
+        $this->assertSame("Max Mustermann", $sellercontactpersonname);
+        $this->assertSame("Muster-Einkauf", $sellercontactdepartmentname);
+        $this->assertSame("+49891234567", $sellercontactphoneno);
+        $this->assertSame("", $sellercontactfaxno);
+        $this->assertSame("Max@Mustermann.de", $sellercontactemailaddr);
+        $this->assertFalse(self::$document->nextDocumentSellerContact());
+    }
+
+    public function testGetDocumentSellerCommunication(): void
+    {
+        self::$document->getDocumentSellerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentBuyerGeneral(): void
+    {
+        self::$document->getDocumentBuyer($buyername, $buyerids, $buyerdescription);
+        $this->assertSame("Kunden AG Mitte", $buyername);
+        $this->assertIsArray($buyerids);
+        $this->assertArrayHasKey(0, $buyerids);
+        $this->assertArrayNotHasKey(1, $buyerids);
+        $this->assertEquals("GE2020211", $buyerids[0]);
+        $this->assertSame("", $buyerdescription);
+    }
+
+    public function testDocumentBuyerGlobalId(): void
+    {
+        self::$document->getDocumentBuyerGlobalId($buyerglobalids);
+        $this->assertIsArray($buyerglobalids);
+        $this->assertEmpty($buyerglobalids);
+    }
+
+    public function testDocumentBuyerTaxRegistration(): void
+    {
+        self::$document->getDocumentBuyerTaxRegistration($buyertaxreg);
+        $this->assertIsArray($buyertaxreg);
+        $this->assertEmpty($buyertaxreg);
+    }
+
+    public function testDocumentBuyerAddress(): void
+    {
+        self::$document->getDocumentBuyerAddress($buyerlineone, $buyerlinetwo, $buyerlinethree, $buyerpostcode, $buyercity, $buyercountry, $buyersubdivision);
+        $this->assertSame("KundenstraÃe 15", $buyerlineone);
+        $this->assertSame("", $buyerlinetwo);
+        $this->assertSame("", $buyerlinethree);
+        $this->assertSame("69876", $buyerpostcode);
+        $this->assertSame("Frankfurt", $buyercity);
+        $this->assertSame("DE", $buyercountry);
+        $this->assertIsArray($buyersubdivision);
+        $this->assertEmpty($buyersubdivision);
+    }
+
+    public function testDocumentBuyerLegalOrganization(): void
+    {
+        self::$document->getDocumentBuyerLegalOrganisation($buyerlegalorgid, $buyerlegalorgtype, $buyerlegalorgname);
+        $this->assertSame("", $buyerlegalorgid);
+        $this->assertSame("", $buyerlegalorgtype);
+        $this->assertSame("", $buyerlegalorgname);
+    }
+
+    public function testDocumentBuyerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentBuyerContact());
+        $this->assertFalse(self::$document->nextDocumentBuyerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentBuyerContact($buyercontactpersonname, $buyercontactdepartmentname, $buyercontactphoneno, $buyercontactfaxno, $buyercontactemailaddr);
+            }
+        );
+    }
+
+    public function testGetDocumentBuyerCommunication(): void
+    {
+        self::$document->getDocumentBuyerCommunication($uriScheme, $uri);
+        $this->assertSame("", $uriScheme);
+        $this->assertSame("", $uri);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGeneral(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentative($sellertaxreprname, $sellertaxreprids, $sellertaxreprdescription);
+        $this->assertSame("", $sellertaxreprname);
+        $this->assertIsArray($sellertaxreprids);
+        $this->assertEmpty($sellertaxreprids);
+        $this->assertSame("", $sellertaxreprdescription);
+    }
+
+    public function testDocumentSellerTaxRepresentativeGlobalId(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeGlobalId($sellertaxreprglobalids);
+        $this->assertIsArray($sellertaxreprglobalids);
+        $this->assertEmpty($sellertaxreprglobalids);
+    }
+
+    public function testDocumentSellerTaxRepresentativeTaxRegistration(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeTaxRegistration($sellertaxreprtaxreg);
+        $this->assertIsArray($sellertaxreprtaxreg);
+        $this->assertEmpty($sellertaxreprtaxreg);
+    }
+
+    public function testDocumentSellerTaxRepresentativeAddress(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeAddress($sellertaxreprlineone, $sellertaxreprlinetwo, $sellertaxreprlinethree, $sellertaxreprpostcode, $sellertaxreprcity, $sellertaxreprcountry, $sellertaxreprsubdivision);
+        $this->assertSame("", $sellertaxreprlineone);
+        $this->assertSame("", $sellertaxreprlinetwo);
+        $this->assertSame("", $sellertaxreprlinethree);
+        $this->assertSame("", $sellertaxreprpostcode);
+        $this->assertSame("", $sellertaxreprcity);
+        $this->assertSame("", $sellertaxreprcountry);
+        $this->assertIsArray($sellertaxreprsubdivision);
+        $this->assertEmpty($sellertaxreprsubdivision);
+    }
+
+    public function testDocumentSellerTaxRepresentativeLegalOrganization(): void
+    {
+        self::$document->getDocumentSellerTaxRepresentativeLegalOrganisation($sellertaxreprlegalorgid, $sellertaxreprlegalorgtype, $sellertaxreprlegalorgname);
+        $this->assertSame("", $sellertaxreprlegalorgid);
+        $this->assertSame("", $sellertaxreprlegalorgtype);
+        $this->assertSame("", $sellertaxreprlegalorgname);
+    }
+
+    public function testDocumentSellerTaxRepresentativeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentSellerTaxRepresentativeContact());
+        $this->assertFalse(self::$document->nextDocumentSellerTaxRepresentativeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentSellerTaxRepresentativeContact($sellertaxreprcontactpersonname, $sellertaxreprcontactdepartmentname, $sellertaxreprcontactphoneno, $sellertaxreprcontactfaxno, $sellertaxreprcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipToGeneral(): void
+    {
+        self::$document->getDocumentShipTo($shiptoname, $shiptoids, $shiptodescription);
+        $this->assertNotNull($shiptoname);
+        $this->assertSame("", $shiptoname);
+        $this->assertIsArray($shiptoids);
+        $this->assertEmpty($shiptoids);
+        $this->assertNotNull($shiptodescription);
+        $this->assertSame("", $shiptodescription);
+    }
+
+    public function testDocumentShipToGlobalId(): void
+    {
+        self::$document->getDocumentShipToGlobalId($shiptoglobalids);
+        $this->assertIsArray($shiptoglobalids);
+        $this->assertEmpty($shiptoglobalids);
+    }
+
+    public function testDocumentShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentShipToTaxRegistration($shiptotaxreg);
+        $this->assertIsArray($shiptotaxreg);
+        $this->assertEmpty($shiptotaxreg);
+    }
+
+    public function testDocumentShipToAddress(): void
+    {
+        self::$document->getDocumentShipToAddress($shiptolineone, $shiptolinetwo, $shiptolinethree, $shiptopostcode, $shiptocity, $shiptocountry, $shiptosubdivision);
+        $this->assertSame("", $shiptolineone);
+        $this->assertSame("", $shiptolinetwo);
+        $this->assertSame("", $shiptolinethree);
+        $this->assertSame("", $shiptopostcode);
+        $this->assertSame("", $shiptocity);
+        $this->assertSame("", $shiptocountry);
+        $this->assertIsArray($shiptosubdivision);
+        $this->assertEmpty($shiptosubdivision);
+    }
+
+    public function testDocumentShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentShipToLegalOrganisation($shiptolegalorgid, $shiptolegalorgtype, $shiptolegalorgname);
+        $this->assertSame("", $shiptolegalorgid);
+        $this->assertSame("", $shiptolegalorgtype);
+        $this->assertSame("", $shiptolegalorgname);
+    }
+
+    public function testDocumentShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipToContact());
+        $this->assertFalse(self::$document->nextDocumentShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipToContact($shiptocontactpersonname, $shiptocontactdepartmentname, $shiptocontactphoneno, $shiptocontactfaxno, $shiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentUltimateShipToGeneral(): void
+    {
+        self::$document->getDocumentUltimateShipTo($ultimateshiptoname, $ultimateshiptoids, $ultimateshiptodescription);
+        $this->assertSame("", $ultimateshiptoname);
+        $this->assertIsArray($ultimateshiptoids);
+        $this->assertEmpty($ultimateshiptoids);
+        $this->assertSame("", $ultimateshiptodescription);
+    }
+
+    public function testDocumentUltimateShipToGlobalId(): void
+    {
+        self::$document->getDocumentUltimateShipToGlobalId($ultimateshiptoglobalids);
+        $this->assertIsArray($ultimateshiptoglobalids);
+        $this->assertEmpty($ultimateshiptoglobalids);
+    }
+
+    public function testDocumentUltimateShipToTaxRegistration(): void
+    {
+        self::$document->getDocumentUltimateShipToTaxRegistration($ultimateshiptotaxreg);
+        $this->assertIsArray($ultimateshiptotaxreg);
+        $this->assertEmpty($ultimateshiptotaxreg);
+    }
+
+    public function testDocumentUltimateShipToAddress(): void
+    {
+        self::$document->getDocumentUltimateShipToAddress($ultimateshiptolineone, $ultimateshiptolinetwo, $ultimateshiptolinethree, $ultimateshiptopostcode, $ultimateshiptocity, $ultimateshiptocountry, $ultimateshiptosubdivision);
+        $this->assertSame("", $ultimateshiptolineone);
+        $this->assertSame("", $ultimateshiptolinetwo);
+        $this->assertSame("", $ultimateshiptolinethree);
+        $this->assertSame("", $ultimateshiptopostcode);
+        $this->assertSame("", $ultimateshiptocity);
+        $this->assertSame("", $ultimateshiptocountry);
+        $this->assertIsArray($ultimateshiptosubdivision);
+        $this->assertEmpty($ultimateshiptosubdivision);
+    }
+
+    public function testDocumentUltimateShipToLegalOrganization(): void
+    {
+        self::$document->getDocumentUltimateShipToLegalOrganisation($ultimateshiptolegalorgid, $ultimateshiptolegalorgtype, $ultimateshiptolegalorgname);
+        $this->assertSame("", $ultimateshiptolegalorgid);
+        $this->assertSame("", $ultimateshiptolegalorgtype);
+        $this->assertSame("", $ultimateshiptolegalorgname);
+    }
+
+    public function testDocumentUltimateShipToContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentUltimateShipToContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentUltimateShipToContact($ultimateshiptocontactpersonname, $ultimateshiptocontactdepartmentname, $ultimateshiptocontactphoneno, $ultimateshiptocontactfaxno, $ultimateshiptocontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentShipFromGeneral(): void
+    {
+        self::$document->getDocumentShipFrom($shipfromname, $shipfromids, $shipfromdescription);
+        $this->assertSame("", $shipfromname);
+        $this->assertIsArray($shipfromids);
+        $this->assertEmpty($shipfromids);
+        $this->assertSame("", $shipfromdescription);
+    }
+
+    public function testDocumentShipFromGlobalId(): void
+    {
+        self::$document->getDocumentShipFromGlobalId($shipfromglobalids);
+        $this->assertIsArray($shipfromglobalids);
+        $this->assertEmpty($shipfromglobalids);
+    }
+
+    public function testDocumentShipFromTaxRegistration(): void
+    {
+        self::$document->getDocumentShipFromTaxRegistration($shipfromtaxreg);
+        $this->assertIsArray($shipfromtaxreg);
+        $this->assertEmpty($shipfromtaxreg);
+    }
+
+    public function testDocumentShipFromAddress(): void
+    {
+        self::$document->getDocumentShipFromAddress($shipfromlineone, $shipfromlinetwo, $shipfromlinethree, $shipfrompostcode, $shipfromcity, $shipfromcountry, $shipfromsubdivision);
+        $this->assertSame("", $shipfromlineone);
+        $this->assertSame("", $shipfromlinetwo);
+        $this->assertSame("", $shipfromlinethree);
+        $this->assertSame("", $shipfrompostcode);
+        $this->assertSame("", $shipfromcity);
+        $this->assertSame("", $shipfromcountry);
+        $this->assertIsArray($shipfromsubdivision);
+        $this->assertEmpty($shipfromsubdivision);
+    }
+
+    public function testDocumentShipFromLegalOrganization(): void
+    {
+        self::$document->getDocumentShipFromLegalOrganisation($shipfromlegalorgid, $shipfromlegalorgtype, $shipfromlegalorgname);
+        $this->assertSame("", $shipfromlegalorgid);
+        $this->assertSame("", $shipfromlegalorgtype);
+        $this->assertSame("", $shipfromlegalorgname);
+    }
+
+    public function testDocumentShipFromContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentShipFromContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentShipFromContact($shipfromcontactpersonname, $shipfromcontactdepartmentname, $shipfromcontactphoneno, $shipfromcontactfaxno, $shipfromcontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoicerGeneral(): void
+    {
+        self::$document->getDocumentInvoicer($invoicername, $invoicerids, $invoicerdescription);
+        $this->assertSame("", $invoicername);
+        $this->assertIsArray($invoicerids);
+        $this->assertEmpty($invoicerids);
+        $this->assertSame("", $invoicerdescription);
+    }
+
+    public function testDocumentInvoicerGlobalId(): void
+    {
+        self::$document->getDocumentInvoicerGlobalId($invoicerglobalids);
+        $this->assertIsArray($invoicerglobalids);
+        $this->assertEmpty($invoicerglobalids);
+    }
+
+    public function testDocumentInvoicerTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoicerTaxRegistration($invoicertaxreg);
+        $this->assertIsArray($invoicertaxreg);
+        $this->assertEmpty($invoicertaxreg);
+    }
+
+    public function testDocumentInvoicerAddress(): void
+    {
+        self::$document->getDocumentInvoicerAddress($invoicerlineone, $invoicerlinetwo, $invoicerlinethree, $invoicerpostcode, $invoicercity, $invoicercountry, $invoicersubdivision);
+        $this->assertSame("", $invoicerlineone);
+        $this->assertSame("", $invoicerlinetwo);
+        $this->assertSame("", $invoicerlinethree);
+        $this->assertSame("", $invoicerpostcode);
+        $this->assertSame("", $invoicercity);
+        $this->assertSame("", $invoicercountry);
+        $this->assertIsArray($invoicersubdivision);
+        $this->assertEmpty($invoicersubdivision);
+    }
+
+    public function testDocumentInvoicerLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoicerLegalOrganisation($invoicerlegalorgid, $invoicerlegalorgtype, $invoicerlegalorgname);
+        $this->assertSame("", $invoicerlegalorgid);
+        $this->assertSame("", $invoicerlegalorgtype);
+        $this->assertSame("", $invoicerlegalorgname);
+    }
+
+    public function testDocumentInvoicerContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoicerContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoicerContact($invoicercontactpersonname, $invoicercontactdepartmentname, $invoicercontactphoneno, $invoicercontactfaxno, $invoicercontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentInvoiceeGeneral(): void
+    {
+        self::$document->getDocumentInvoicee($invoiceename, $invoiceeids, $invoiceedescription);
+        $this->assertSame("", $invoiceename);
+        $this->assertIsArray($invoiceeids);
+        $this->assertEmpty($invoiceeids);
+        $this->assertSame("", $invoiceedescription);
+    }
+
+    public function testDocumentInvoiceeGlobalId(): void
+    {
+        self::$document->getDocumentInvoiceeGlobalId($invoiceeglobalids);
+        $this->assertIsArray($invoiceeglobalids);
+        $this->assertEmpty($invoiceeglobalids);
+    }
+
+    public function testDocumentInvoiceeTaxRegistration(): void
+    {
+        self::$document->getDocumentInvoiceeTaxRegistration($invoiceetaxreg);
+        $this->assertIsArray($invoiceetaxreg);
+        $this->assertEmpty($invoiceetaxreg);
+    }
+
+    public function testDocumentInvoiceeAddress(): void
+    {
+        self::$document->getDocumentInvoiceeAddress($invoiceelineone, $invoiceelinetwo, $invoiceelinethree, $invoiceepostcode, $invoiceecity, $invoiceecountry, $invoiceesubdivision);
+        $this->assertSame("", $invoiceelineone);
+        $this->assertSame("", $invoiceelinetwo);
+        $this->assertSame("", $invoiceelinethree);
+        $this->assertSame("", $invoiceepostcode);
+        $this->assertSame("", $invoiceecity);
+        $this->assertSame("", $invoiceecountry);
+        $this->assertIsArray($invoiceesubdivision);
+        $this->assertEmpty($invoiceesubdivision);
+    }
+
+    public function testDocumentInvoiceeLegalOrganization(): void
+    {
+        self::$document->getDocumentInvoiceeLegalOrganisation($invoiceelegalorgid, $invoiceelegalorgtype, $invoiceelegalorgname);
+        $this->assertSame("", $invoiceelegalorgid);
+        $this->assertSame("", $invoiceelegalorgtype);
+        $this->assertSame("", $invoiceelegalorgname);
+    }
+
+    public function testDocumentInvoiceeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentInvoiceeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentInvoiceeContact($invoiceecontactpersonname, $invoiceecontactdepartmentname, $invoiceecontactphoneno, $invoiceecontactfaxno, $invoiceecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentPayeeGeneral(): void
+    {
+        self::$document->getDocumentPayee($payeename, $payeeids, $payeedescription);
+        $this->assertSame("", $payeename);
+        $this->assertIsArray($payeeids);
+        $this->assertEmpty($payeeids);
+        $this->assertSame("", $payeedescription);
+    }
+
+    public function testDocumentPayeeGlobalId(): void
+    {
+        self::$document->getDocumentPayeeGlobalId($payeeglobalids);
+        $this->assertIsArray($payeeglobalids);
+        $this->assertEmpty($payeeglobalids);
+    }
+
+    public function testDocumentPayeeTaxRegistration(): void
+    {
+        self::$document->getDocumentPayeeTaxRegistration($payeetaxreg);
+        $this->assertIsArray($payeetaxreg);
+        $this->assertEmpty($payeetaxreg);
+    }
+
+    public function testDocumentPayeeAddress(): void
+    {
+        self::$document->getDocumentPayeeAddress($payeelineone, $payeelinetwo, $payeelinethree, $payeepostcode, $payeecity, $payeecountry, $payeesubdivision);
+        $this->assertSame("", $payeelineone);
+        $this->assertSame("", $payeelinetwo);
+        $this->assertSame("", $payeelinethree);
+        $this->assertSame("", $payeepostcode);
+        $this->assertSame("", $payeecity);
+        $this->assertSame("", $payeecountry);
+        $this->assertIsArray($payeesubdivision);
+        $this->assertEmpty($payeesubdivision);
+    }
+
+    public function testDocumentPayeeLegalOrganization(): void
+    {
+        self::$document->getDocumentPayeeLegalOrganisation($payeelegalorgid, $payeelegalorgtype, $payeelegalorgname);
+        $this->assertSame("", $payeelegalorgid);
+        $this->assertSame("", $payeelegalorgtype);
+        $this->assertSame("", $payeelegalorgname);
+    }
+
+    public function testDocumentPayeeContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentPayeeContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentPayeeContact($payeecontactpersonname, $payeecontactdepartmentname, $payeecontactphoneno, $payeecontactfaxno, $payeecontactemailaddr);
+            }
+        );
+    }
+
+    public function testDocumentProductEndUserGeneral(): void
+    {
+        self::$document->getDocumentProductEndUser($producendusername, $producenduserids, $producenduserdescription);
+        $this->assertSame("", $producendusername);
+        $this->assertIsArray($producenduserids);
+        $this->assertArrayNotHasKey(0, $producenduserids);
+        $this->assertArrayNotHasKey(1, $producenduserids);
+        $this->assertSame("", $producenduserdescription);
+    }
+
+    public function testDocumentProductEndUserGlobalId(): void
+    {
+        self::$document->getDocumentProductEndUserGlobalId($producenduserglobalids);
+        $this->assertIsArray($producenduserglobalids);
+        $this->assertArrayNotHasKey("0088", $producenduserglobalids);
+    }
+
+    public function testDocumentProductEndUserTaxRegistration(): void
+    {
+        self::$document->getDocumentProductEndUserTaxRegistration($producendusertaxreg);
+        $this->assertIsArray($producendusertaxreg);
+        $this->assertArrayNotHasKey("VA", $producendusertaxreg);
+        $this->assertArrayNotHasKey("FC", $producendusertaxreg);
+        $this->assertArrayNotHasKey(0, $producendusertaxreg);
+        $this->assertArrayNotHasKey(1, $producendusertaxreg);
+        $this->assertArrayNotHasKey("ZZ", $producendusertaxreg);
+    }
+
+    public function testDocumentProductEndUserAddress(): void
+    {
+        self::$document->getDocumentProductEndUserAddress($producenduserlineone, $producenduserlinetwo, $producenduserlinethree, $producenduserpostcode, $producendusercity, $producendusercountry, $producendusersubdivision);
+        $this->assertSame("", $producenduserlineone);
+        $this->assertSame("", $producenduserlinetwo);
+        $this->assertSame("", $producenduserlinethree);
+        $this->assertSame("", $producenduserpostcode);
+        $this->assertSame("", $producendusercity);
+        $this->assertSame("", $producendusercountry);
+        $this->assertIsArray($producendusersubdivision);
+        $this->assertEmpty($producendusersubdivision);
+    }
+
+    public function testDocumentProductEndUserLegalOrganization(): void
+    {
+        self::$document->getDocumentProductEndUserLegalOrganisation($producenduserlegalorgid, $producenduserlegalorgtype, $producenduserlegalorgname);
+        $this->assertSame("", $producenduserlegalorgid);
+        $this->assertSame("", $producenduserlegalorgtype);
+        $this->assertSame("", $producenduserlegalorgname);
+    }
+
+    public function testDocumentProductEndUserContact(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentProductEndUserContactContact());
+        $this->expectNoticeOrWarningExt(
+            function () {
+                self::$document->getDocumentProductEndUserContact($producendusercontactpersonname, $producendusercontactdepartmentname, $producendusercontactphoneno, $producendusercontactfaxno, $producendusercontactemailaddr);
+            }
+        );
+        $this->assertFalse(self::$document->nextDocumentProductEndUserContactContact());
+    }
+
+    public function testDocumentSellerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentSellerOrderReferencedDocument($sellerorderrefdocid, $sellerorderrefdocdate);
+        $this->assertSame("", $sellerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $sellerorderrefdocdate);
+    }
+
+    public function testDocumentBuyerOrderReferencedDocument(): void
+    {
+        self::$document->getDocumentBuyerOrderReferencedDocument($buyerorderrefdocid, $buyerorderrefdocdate);
+        $this->assertSame("", $buyerorderrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $buyerorderrefdocdate);
+    }
+
+    public function testDocumentQuotationReferencedDocument(): void
+    {
+        self::$document->getDocumentQuotationReferencedDocument($quotationrefdocid, $quotationrefdocdate);
+        $this->assertSame("", $quotationrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $quotationrefdocdate);
+    }
+
+    public function testDocumentContractReferencedDocument(): void
+    {
+        self::$document->getDocumentContractReferencedDocument($contractrefdocid, $contractrefdocdate);
+        $this->assertSame("", $contractrefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $contractrefdocdate);
+    }
+
+    public function testDocumentAdditionalReferencedDocuments(): void
+    {
+        self::$document->getDocumentAdditionalReferencedDocuments($additionalrefdocs);
+        $this->assertIsArray($additionalrefdocs);
+        $this->assertEmpty($additionalrefdocs);
+    }
+
+    public function testDocumentProcuringProject(): void
+    {
+        self::$document->getDocumentProcuringProject($projectid, $projectname);
+        $this->assertSame("", $projectid);
+        $this->assertSame("", $projectname);
+    }
+
+    public function testDocumentSupplyChainEvent(): void
+    {
+        self::$document->getDocumentSupplyChainEvent($supplychainevent);
+        $this->assertInstanceOf(\DateTime::class, $supplychainevent);
+        $this->assertInstanceOf("DateTime", $supplychainevent);
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20180305'))->format('Ymd'), $supplychainevent->format('Ymd'));
+    }
+
+    public function testDocumentDespatchAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentDespatchAdviceReferencedDocument($despatchdocid, $despatchdocdate);
+        $this->assertSame("", $despatchdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $despatchdocdate);
+    }
+
+    public function testDocumentReceivingAdviceReferencedDocument(): void
+    {
+        self::$document->getDocumentReceivingAdviceReferencedDocument($recadvid, $recadvdate);
+        $this->assertSame("", $recadvid);
+        $this->assertNotInstanceOf(\DateTime::class, $recadvdate);
+    }
+
+    public function testDocumentDeliveryNoteReferencedDocument(): void
+    {
+        self::$document->getDocumentDeliveryNoteReferencedDocument($deliverynoterefdocid, $deliverynoterefdocdate);
+        $this->assertSame("", $deliverynoterefdocid);
+        $this->assertNotInstanceOf(\DateTime::class, $deliverynoterefdocdate);
+    }
+
+    public function testDocumentBillingPeriod(): void
+    {
+        self::$document->getDocumentBillingPeriod($docbillingperiodstart, $docbillingperiodend);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodstart);
+        $this->assertNotInstanceOf(\DateTime::class, $docbillingperiodend);
+    }
+
+    public function testDocumentAllowanceCharges(): void
+    {
+        self::$document->getDocumentAllowanceCharges($docallowancecharge);
+        $this->assertIsArray($docallowancecharge);
+        $this->assertEmpty($docallowancecharge);
+    }
+
+    public function testDocumentPaymentTerms(): void
+    {
+        self::$document->getDocumentPaymentTerms($docpaymentterms);
+        $this->assertIsArray($docpaymentterms);
+        $this->assertNotEmpty($docpaymentterms);
+        $this->assertArrayHasKey(0, $docpaymentterms);
+        $this->assertIsArray($docpaymentterms[0]);
+        $this->assertArrayHasKey("description", $docpaymentterms[0]);
+        $this->assertArrayHasKey("duedate", $docpaymentterms[0]);
+        $this->assertArrayHasKey("directdebitmandateid", $docpaymentterms[0]);
+        $this->assertArrayHasKey("partialpaymentamount", $docpaymentterms[0]);
+        $this->assertEquals("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $docpaymentterms[0]["description"]);
+        $this->assertNull($docpaymentterms[0]["duedate"]);
+        $this->assertNotInstanceOf("DateTime", $docpaymentterms[0]["duedate"]);
+        $this->assertEquals("", $docpaymentterms[0]["directdebitmandateid"]);
+        $this->assertEqualsWithDelta(0.0, $docpaymentterms[0]["partialpaymentamount"], PHP_FLOAT_EPSILON);
+    }
+
+    public function testDocumentDeliveryTerms(): void
+    {
+        self::$document->getDocumentDeliveryTerms($devtermcode);
+        $this->assertSame("", $devtermcode);
+    }
+
+    public function testDocumentAdditionalReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentAdditionalReferencedDocument());
+    }
+
+    public function testDocumentUltimateCustomerOrderReferencedDocumentLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentUltimateCustomerOrderReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentUltimateCustomerOrderReferencedDocument());
+    }
+
+    public function testDocumentPaymentMeansLoop(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        $this->assertFalse(self::$document->nextGetDocumentPaymentMeans());
+    }
+
+    public function testGetDocumentPaymentMeans(): void
+    {
+        $this->assertTrue(self::$document->firstGetDocumentPaymentMeans());
+        self::$document->getDocumentPaymentMeans($typeCode, $information, $cardType, $cardId, $cardHolderName, $buyerIban, $payeeIban, $payeeAccountName, $payeePropId, $payeeBic);
+        $this->assertSame("58", $typeCode);
+        $this->assertSame("Zahlung per SEPA Ãberweisung.", $information);
+        $this->assertSame("", $cardType);
+        $this->assertSame("", $cardId);
+        $this->assertSame("", $cardHolderName);
+        $this->assertSame("", $buyerIban);
+        $this->assertSame("DE02120300000000202051", $payeeIban);
+        $this->assertSame("Kunden AG", $payeeAccountName);
+        $this->assertSame("", $payeePropId);
+        $this->assertSame("BYLADEM1001", $payeeBic);
+    }
+
+    public function testDocumentTaxLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        $this->assertTrue(self::$document->nextDocumentTax());
+    }
+
+    public function testDocumentTax(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(275.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.25, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+
+        $this->assertTrue(self::$document->nextDocumentTax());
+        self::$document->getDocumentTax($categoryCode, $typeCode, $basisAmount, $calculatedAmount, $rateApplicablePercent, $exemptionReason, $exemptionReasonCode, $lineTotalBasisAmount, $allowanceChargeBasisAmount, $taxPointDate, $dueDateTypeCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(198.0, $basisAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(37.62, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+    }
+
+    public function testtDocumentAllowanceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentAllowanceCharge());
+    }
+
+    public function testtDocumentLogisticsServiceChargeLoop(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentLogisticsServiceCharge());
+        $this->assertFalse(self::$document->nextDocumentLogisticsServiceCharge());
+    }
+
+    public function testtDocumentPaymentTermsLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testtDocumentPaymentTerms(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPaymentTerms());
+        self::$document->getDocumentPaymentTerm($termdescription, $termduedate, $termmandate);
+        self::$document->getDiscountTermsFromPaymentTerm($dispercent, $discbasedatetime, $discmeasureval, $discmeasureunit, $discbaseamount, $discamount);
+        self::$document->getPenaltyTermsFromPaymentTerm($penaltypercent, $penaltybasedatetime, $penaltymeasureval, $penaltymeasureunit, $penaltybaseamount, $penaltyamount);
+
+        $this->assertSame("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018", $termdescription);
+        $this->assertNotInstanceOf(\DateTime::class, $termduedate);
+        $this->assertSame("", $termmandate);
+        $this->assertEquals(0, $dispercent);
+        $this->assertNotInstanceOf(\DateTime::class, $discbasedatetime);
+        $this->assertEquals(0, $discmeasureval);
+        $this->assertSame("", $discmeasureunit);
+        $this->assertEquals(0, $discbaseamount);
+        $this->assertEquals(0, $discamount);
+        $this->assertNotInstanceOf(\DateTime::class, $penaltybasedatetime);
+        $this->assertEquals(0, $penaltymeasureval);
+        $this->assertSame("", $penaltymeasureunit);
+        $this->assertEquals(0, $penaltybaseamount);
+        $this->assertEquals(0, $penaltyamount);
+
+        $this->assertFalse(self::$document->nextDocumentPaymentTerms());
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+        $this->assertFalse(self::$document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionLoop(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition(), "has a first position");
+        $this->assertTrue(self::$document->nextDocumentPosition(), "has a second position");
+        $this->assertFalse(self::$document->nextDocumentPosition(), "has no third position");
+    }
+
+    public function testDocumentPositionFirst(): void
+    {
+        $this->assertTrue(self::$document->firstDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("TrennblÃ€tter A4", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("TB100A4", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4012345001235", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(9.90, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(20.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(19.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(198.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionSecond(): void
+    {
+        $this->assertTrue(self::$document->nextDocumentPosition());
+
+        self::$document->getDocumentPositionGenerals($lineid, $linestatuscode, $linestatusreasoncode);
+        $this->assertSame("2", $lineid);
+        $this->assertSame("", $linestatuscode);
+        $this->assertSame("", $linestatusreasoncode);
+
+        self::$document->getDocumentPositionProductDetails($prodname, $proddesc, $prodsellerid, $prodbuyerid, $prodglobalidtype, $prodglobalid);
+        $this->assertSame("Joghurt Banane", $prodname);
+        $this->assertSame("", $proddesc);
+        $this->assertSame("ARNR2", $prodsellerid);
+        $this->assertSame("", $prodbuyerid);
+        $this->assertSame("0160", $prodglobalidtype);
+        $this->assertSame("4000050986428", $prodglobalid);
+
+        self::$document->getDocumentPositionSellerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionBuyerOrderReferencedDocument($doclineorderid, $doclineorderlineid, $doclineorderdate);
+        $this->assertSame("", $doclineorderid);
+        $this->assertSame("", $doclineorderlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclineorderdate);
+
+        self::$document->getDocumentPositionQuotationReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionContractReferencedDocument($doclinecontid, $doclinecontlineid, $doclinecontdate);
+        $this->assertSame("", $doclinecontid);
+        $this->assertSame("", $doclinecontlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $doclinecontdate);
+
+        self::$document->getDocumentPositionGrossPrice($grosspriceamount, $grosspricebasisquantity, $grosspricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $grosspriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $grosspricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $grosspricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPrice($netpriceamount, $netpricebasisquantity, $netpricebasisquantityunitcode);
+        $this->assertEqualsWithDelta(5.50, $netpriceamount, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $netpricebasisquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $netpricebasisquantityunitcode);
+
+        self::$document->getDocumentPositionNetPriceTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("", $categoryCode);
+        $this->assertSame("", $typeCode);
+        $this->assertEqualsWithDelta(0.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionQuantity($billedquantity, $billedquantityunitcode, $chargeFreeQuantity, $chargeFreeQuantityunitcode, $packageQuantity, $packageQuantityunitcode);
+        $this->assertEqualsWithDelta(50.0, $billedquantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("H87", $billedquantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $chargeFreeQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $chargeFreeQuantityunitcode);
+        $this->assertEqualsWithDelta(0.0, $packageQuantity, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $packageQuantityunitcode);
+
+        self::$document->getDocumentPositionDespatchAdviceReferencedDocument($docposdespadvid, $docposdespadvlineid, $docposdespadvdatetime);
+        $this->assertSame("", $docposdespadvid);
+        $this->assertSame("", $docposdespadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdespadvdatetime);
+
+        self::$document->getDocumentPositionReceivingAdviceReferencedDocument($docposrecadvid, $docposrecadvlineid, $docposrecadvdatetime);
+        $this->assertSame("", $docposrecadvid);
+        $this->assertSame("", $docposrecadvlineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposrecadvdatetime);
+
+        self::$document->getDocumentPositionDeliveryNoteReferencedDocument($docposdelnoteid, $docposdelnotelineid, $docposdelnotedatetime);
+        $this->assertSame("", $docposdelnoteid);
+        $this->assertSame("", $docposdelnotelineid);
+        $this->assertNotInstanceOf(\DateTime::class, $docposdelnotedatetime);
+
+        self::$document->getDocumentPositionBillingPeriod($docposstartdate, $docpostenddate);
+        $this->assertNotInstanceOf(\DateTime::class, $docposstartdate);
+        $this->assertNotInstanceOf(\DateTime::class, $docpostenddate);
+
+        $this->assertFalse(self::$document->firstDocumentPositionNote());
+        $this->assertFalse(self::$document->nextDocumentPositionNote());
+
+        $this->assertFalse(self::$document->firstDocumentPositionGrossPriceAllowanceCharge());
+        $this->assertFalse(self::$document->nextDocumentPositionGrossPriceAllowanceCharge());
+
+        $this->assertTrue(self::$document->firstDocumentPositionTax());
+        $this->assertFalse(self::$document->nextDocumentPositionTax());
+
+        self::$document->firstDocumentPositionTax();
+        self::$document->getDocumentPositionTax($categoryCode, $typeCode, $rateApplicablePercent, $calculatedAmount, $exemptionReason, $exemptionReasonCode);
+        $this->assertSame("S", $categoryCode);
+        $this->assertSame("VAT", $typeCode);
+        $this->assertEqualsWithDelta(7.0, $rateApplicablePercent, PHP_FLOAT_EPSILON);
+        $this->assertEqualsWithDelta(0.0, $calculatedAmount, PHP_FLOAT_EPSILON);
+        $this->assertSame("", $exemptionReason);
+        $this->assertSame("", $exemptionReasonCode);
+
+        self::$document->getDocumentPositionLineSummationSimple($lineTotalAmount);
+        $this->assertEqualsWithDelta(275.0, $lineTotalAmount, PHP_FLOAT_EPSILON);
+
+        self::$document->getDocumentPositionSupplyChainEvent($supplyeventdatetime);
+        $this->assertNotInstanceOf(\DateTime::class, $supplyeventdatetime);
+    }
+
+    public function testDocumentPositionAdditionalReferencedDocument(): void
+    {
+        $this->assertFalse(self::$document->firstDocumentPositionAdditionalReferencedDocument());
+        $this->assertFalse(self::$document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue104Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue104Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue104Test.php	(revision 8542)
@@ -0,0 +1,32 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+use horstoeko\zugferd\exception\ZugferdUnknownXmlContentException;
+
+class Issue104Test extends TestCase
+{
+    /**
+     * @return void
+     * @issue  104
+     */
+    public function testInvalidException1()
+    {
+        $this->expectException(ZugferdUnknownXmlContentException::class);
+
+        ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/xml_invalid_1.xml');
+    }
+
+    /**
+     * @return void
+     * @issue  104
+     */
+    public function testInvalidException2()
+    {
+        $this->expectException(ZugferdUnknownXmlContentException::class);
+
+        ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/xml_invalid_2.xml');
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue113Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue113Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue113Test.php	(revision 8542)
@@ -0,0 +1,30 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\tests\traits\HandlesXmlTests;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\ZugferdProfiles;
+
+class Issue113Test extends TestCase
+{
+    use HandlesXmlTests;
+
+    public function testSummationWithoutTotalVatAmount(): void
+    {
+        self::$document = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_EN16931);
+        self::$document->setDocumentSummation(100.0, 100.0);
+
+        $this->disableRenderXmlContent();
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount', 0);
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount', 0);
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount', 0);
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount', 0);
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount', 0);
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount', 0);
+        $this->assertXPathValueWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount', 0, "100.00");
+        $this->assertXPathNotExistsWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount', 0);
+        $this->assertXPathValueWithIndex('/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount', 0, "100.00");
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue206Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue206Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue206Test.php	(revision 8542)
@@ -0,0 +1,26 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+class Issue206Test extends TestCase
+{
+    public function testDateTimeString(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_206.xml');
+        $document->getDocumentInformation(
+            $documentNo,
+            $documentTypeCode,
+            $documentDate,
+            $invoiceCurrency,
+            $taxCurrency,
+            $documentName,
+            $documentLanguage,
+            $effectiveSpecifiedPeriod
+        );
+
+        $this->assertEquals((\DateTime::createFromFormat('Ymd', '20200305'))->format('Ymd'), $documentDate->format('Ymd'));
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue268Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue268Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue268Test.php	(revision 8542)
@@ -0,0 +1,97 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+class Issue268Test extends TestCase
+{
+    public function testBTX27(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268.xml');
+
+        $this->assertFalse($document->firstDocumentPositionAdditionalReferencedDocument());
+    }
+
+    public function testBT128(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268.xml');
+
+        $this->assertTrue($document->firstDocumentPositionAdditionalReferencedObjDocument());
+
+        $document->getDocumentPositionAdditionalReferencedObjDocument($issuerAssignedId, $typeCode, $refTypeCode);
+
+        $this->assertSame("WAT PL 120", $issuerAssignedId);
+        $this->assertSame("130", $typeCode);
+        $this->assertSame("ABZ", $refTypeCode);
+
+        $this->assertFalse($document->nextDocumentPositionAdditionalReferencedObjDocument());
+    }
+
+    public function testBTX331(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268.xml');
+
+        $this->assertTrue($document->firstDocumentPositionAdditionalReferencedObjDocument());
+
+        $document->getDocumentPositionInvoiceReferencedDocument($issuerAssignedId, $lineid, $typeCode, $issueDate);
+
+        $this->assertSame("", $issuerAssignedId);
+        $this->assertSame("", $lineid);
+        $this->assertSame("", $typeCode);
+        $this->assertNotInstanceOf(\DateTime::class, $issueDate);
+    }
+
+    public function testBTX27Extended(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268_extended.xml');
+
+        $this->assertTrue($document->firstDocumentPositionAdditionalReferencedDocument());
+
+        $document->getDocumentPositionAdditionalReferencedDocument($issuerAssignedId, $typeCode, $uriId, $lineId, $name, $refTypeCode, $issueDate, $binaryDataFilename);
+
+        $this->assertSame("WAT PL 120", $issuerAssignedId);
+        $this->assertSame("130", $typeCode);
+        $this->assertSame("ABZ", $refTypeCode);
+
+        $this->assertFalse($document->nextDocumentPositionAdditionalReferencedDocument());
+    }
+
+    public function testBT128Extended(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268_extended.xml');
+
+        $this->assertTrue($document->firstDocumentPositionAdditionalReferencedObjDocument());
+
+        $document->getDocumentPositionAdditionalReferencedObjDocument($issuerAssignedId, $typeCode, $refTypeCode);
+
+        $this->assertSame("WAT PL 120", $issuerAssignedId);
+        $this->assertSame("130", $typeCode);
+        $this->assertSame("ABZ", $refTypeCode);
+
+        $this->assertTrue($document->nextDocumentPositionAdditionalReferencedObjDocument());
+
+        $document->getDocumentPositionAdditionalReferencedObjDocument($issuerAssignedId, $typeCode, $refTypeCode);
+
+        $this->assertSame("WAT PL 120 (2)", $issuerAssignedId);
+        $this->assertSame("130 (2)", $typeCode);
+        $this->assertSame("ABZ (2)", $refTypeCode);
+
+        $this->assertFalse($document->nextDocumentPositionAdditionalReferencedObjDocument());
+    }
+
+    public function testBTX331Extended(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268_extended.xml');
+
+        $this->assertTrue($document->firstDocumentPositionAdditionalReferencedObjDocument());
+
+        $document->getDocumentPositionInvoiceReferencedDocument($issuerAssignedId, $lineid, $typeCode, $issueDate);
+
+        $this->assertSame("INV-1", $issuerAssignedId);
+        $this->assertSame("1", $lineid);
+        $this->assertSame("71", $typeCode);
+        $this->assertInstanceOf(\DateTime::class, $issueDate);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue270Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue270Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue270Test.php	(revision 8542)
@@ -0,0 +1,96 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdDocumentReader;
+
+class Issue270Test extends TestCase
+{
+    public function testDocumentReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268.xml');
+
+        $this->assertTrue($document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+
+        $document->getDocumentReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("", $accountType);
+
+        $this->assertFalse($document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionReceivableSpecifiedTradeAccountingAccount(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268.xml');
+
+        $this->assertTrue($document->firstDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("", $accountType);
+
+        $this->assertTrue($document->nextDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("", $accountType);
+
+        $this->assertTrue($document->nextDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("740", $accountId);
+        $this->assertSame("", $accountType);
+    }
+
+    public function testDocumentReceivableSpecifiedTradeAccountingAccountExtended(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268_extended.xml');
+
+        $this->assertTrue($document->firstDocumentReceivableSpecifiedTradeAccountingAccount());
+
+        $document->getDocumentReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("1", $accountType);
+
+        $this->assertTrue($document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+
+        $document->getDocumentReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("740", $accountId);
+        $this->assertSame("2", $accountType);
+
+        $this->assertFalse($document->nextDocumentReceivableSpecifiedTradeAccountingAccount());
+    }
+
+    public function testDocumentPositionReceivableSpecifiedTradeAccountingAccountExtended(): void
+    {
+        $document = ZugferdDocumentReader::readAndGuessFromFile(__DIR__ . '/../../assets/issues/xml_issue_268_extended.xml');
+
+        $this->assertTrue($document->firstDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("1", $accountType);
+
+        $this->assertTrue($document->nextDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("567", $accountId);
+        $this->assertSame("2", $accountType);
+
+        $this->assertTrue($document->nextDocumentPosition());
+
+        $document->getDocumentPositionReceivableSpecifiedTradeAccountingAccount($accountId, $accountType);
+
+        $this->assertSame("740", $accountId);
+        $this->assertSame("3", $accountType);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue337Test.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue337Test.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/testcases/issues/Issue337Test.php	(revision 8542)
@@ -0,0 +1,98 @@
+<?php
+
+namespace horstoeko\zugferd\tests\testcases\issues;
+
+use DateTime;
+use horstoeko\zugferd\tests\TestCase;
+use horstoeko\zugferd\ZugferdProfiles;
+use horstoeko\zugferd\ZugferdDocumentBuilder;
+use horstoeko\zugferd\codelists\ZugferdInvoiceType;
+use horstoeko\zugferd\tests\traits\HandlesXmlTests;
+use horstoeko\zugferd\codelists\ZugferdCurrencyCodes;
+use horstoeko\zugferd\exception\ZugferdUnsupportedMimetype;
+
+class Issue337Test extends TestCase
+{
+    use HandlesXmlTests;
+
+    public static function setUpBeforeClass(): void
+    {
+        self::$document = ZugferdDocumentBuilder::CreateNew(ZugferdProfiles::PROFILE_EN16931);
+
+        self::$document->setDocumentInformation(
+            'R-2024/00001',
+            ZugferdInvoiceType::INVOICE,
+            DateTime::createFromFormat("Ymd", "20241231"),
+            ZugferdCurrencyCodes::EURO
+        );
+    }
+
+    public function testBase64(): void
+    {
+        $csvDummyNativeFormat = __DIR__ . '/../../assets/csv_dummy_native_format.csv';
+        $csvDummyCustomFormat = __DIR__ . '/../../assets/csv_dummy_custom_format.csv';
+
+        self::$document->addDocumentInvoiceSupportingDocumentWithBase64Data('REFDOC-2024/00001-1', '00_AdditionalDocument.unknwon', $this->deliverBase64EncodedPdf(), 'Attachment 1');
+        self::$document->addDocumentInvoiceSupportingDocumentWithFile('REFDOC-2024/00001-2', __DIR__ . '/../../assets/pdf_plain.pdf', 'Attachment 2');
+        self::$document->addDocumentInvoiceSupportingDocumentWithBase64Data('REFDOC-2024/00001-3', '02_AdditionalDocument.unknwon', $this->deliverBase64EncodedJpeg(), 'Attachment 3');
+        self::$document->addDocumentInvoiceSupportingDocumentWithBase64Data('REFDOC-2024/00001-4', $csvDummyNativeFormat, $this->deliverBase64EncodedCsv($csvDummyNativeFormat), 'Attachment 4');
+        self::$document->addDocumentInvoiceSupportingDocumentWithBase64Data('REFDOC-2024/00001-5', $csvDummyCustomFormat, $this->deliverBase64EncodedCsv($csvDummyCustomFormat), 'Attachment 5');
+
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID', 0, 'REFDOC-2024/00001-1');
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode', 0, '916');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 0, $this->deliverBase64EncodedPdf(), 'mimeCode', 'application/pdf');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 0, $this->deliverBase64EncodedPdf(), 'filename', '00_AdditionalDocument.pdf');
+
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID', 1, 'REFDOC-2024/00001-2');
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode', 1, '916');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 1, $this->deliverBase64EncodedPdf(), 'mimeCode', 'application/pdf');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 1, $this->deliverBase64EncodedPdf(), 'filename', 'pdf_plain.pdf');
+
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID', 2, 'REFDOC-2024/00001-3');
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode', 2, '916');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 2, $this->deliverBase64EncodedJpeg(), 'mimeCode', 'image/jpeg');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 2, $this->deliverBase64EncodedJpeg(), 'filename', '02_AdditionalDocument.jpeg');
+
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID', 3, 'REFDOC-2024/00001-4');
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode', 3, '916');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 3, $this->deliverBase64EncodedCsv($csvDummyNativeFormat), 'mimeCode', 'text/csv');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 3, $this->deliverBase64EncodedCsv($csvDummyNativeFormat), 'filename', 'csv_dummy_native_format.csv');
+
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID', 4, 'REFDOC-2024/00001-5');
+        $this->assertXPathValueWithIndex('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:TypeCode', 4, '916');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 4, $this->deliverBase64EncodedCsv($csvDummyCustomFormat), 'mimeCode', 'text/csv');
+        $this->assertXPathValueWithIndexAndAttribute('//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject', 4, $this->deliverBase64EncodedCsv($csvDummyCustomFormat), 'filename', 'csv_dummy_custom_format.csv');
+    }
+
+    public function testBase64UnknownMimeType(): void
+    {
+        $this->expectException(ZugferdUnsupportedMimetype::class);
+        $this->expectExceptionMessageMatches('/text\/xml/');
+
+        self::$document->addDocumentInvoiceSupportingDocumentWithBase64Data('REFDOC-2024/00001-1', '00_AdditionalDocument.unknwon', $this->deliverBase64UnknownMimeType(), 'Attachment 1');
+    }
+
+    private function deliverBase64EncodedPdf(): string
+    {
+        $content = file_get_contents(__DIR__ . '/../../assets/pdf_plain.pdf');
+        return base64_encode($content);
+    }
+
+    private function deliverBase64EncodedJpeg(): string
+    {
+        $content = file_get_contents(__DIR__ . '/../../assets/dummy_picture.jpg');
+        return base64_encode($content);
+    }
+
+    private function deliverBase64EncodedCsv(string $filename): string
+    {
+        $content = file_get_contents($filename);
+        return base64_encode($content);
+    }
+
+    private function deliverBase64UnknownMimeType(): string
+    {
+        $content = file_get_contents(__DIR__ . '/../../assets/xml_dummy.xml');
+        return base64_encode($content);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/traits/RunsOnlyWithJavaEnvironmentTrait.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/traits/RunsOnlyWithJavaEnvironmentTrait.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/horstoeko/zugferd/tests/traits/RunsOnlyWithJavaEnvironmentTrait.php	(revision 8542)
@@ -0,0 +1,49 @@
+<?php
+
+namespace horstoeko\zugferd\tests\traits;
+
+use Throwable;
+use Symfony\Component\Process\ExecutableFinder;
+
+trait RunsOnlyWithJavaEnvironmentTrait
+{
+    /**
+     * Status of JAVA checks
+     *
+     * @var null|boolean
+     */
+    private $javaAvailable;
+
+    /**
+     * Checking availability of Java
+     *
+     * @return boolean
+     */
+    private function isJavaAvailable(): bool
+    {
+        if (!is_null($this->javaAvailable)) {
+            return $this->javaAvailable;
+        }
+
+        try {
+            $executableFinder = new ExecutableFinder();
+            $this->javaAvailable = !is_null($executableFinder->find('java'));
+        } catch (Throwable $throwable) {
+            $this->javaAvailable = false;
+        }
+
+        return $this->javaAvailable;
+    }
+
+    /**
+     * Mark a test as skipped
+     *
+     * @return void
+     */
+    private function markAsSkippedIfJavaIsNotAvailable(): void
+    {
+        if ($this->isJavaAvailable() === false) {
+            $this->markTestSkipped('Java environment not available. Test is skipped.');
+        }
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/CHANGELOG.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/CHANGELOG.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/CHANGELOG.md	(revision 8542)
@@ -0,0 +1,103 @@
+CHANGELOG
+=========
+
+6.4
+---
+
+ * Add early directory pruning to `Finder::filter()`
+
+6.2
+---
+
+ * Add `Finder::sortByExtension()` and `Finder::sortBySize()`
+ * Add `Finder::sortByCaseInsensitiveName()` to sort by name with case insensitive sorting methods
+
+6.0
+---
+
+ * Remove `Comparator::setTarget()` and `Comparator::setOperator()`
+
+5.4.0
+-----
+
+ * Deprecate `Comparator::setTarget()` and `Comparator::setOperator()`
+ * Add a constructor to `Comparator` that allows setting target and operator
+ * Finder's iterator has now `Symfony\Component\Finder\SplFileInfo` inner type specified
+ * Add recursive .gitignore files support
+
+5.0.0
+-----
+
+ * added `$useNaturalSort` argument to `Finder::sortByName()`
+
+4.3.0
+-----
+
+ * added Finder::ignoreVCSIgnored() to ignore files based on rules listed in .gitignore
+
+4.2.0
+-----
+
+ * added $useNaturalSort option to Finder::sortByName() method
+ * the `Finder::sortByName()` method will have a new `$useNaturalSort`
+   argument in version 5.0, not defining it is deprecated
+ * added `Finder::reverseSorting()` to reverse the sorting
+
+4.0.0
+-----
+
+ * removed `ExceptionInterface`
+ * removed `Symfony\Component\Finder\Iterator\FilterIterator`
+
+3.4.0
+-----
+
+ * deprecated `Symfony\Component\Finder\Iterator\FilterIterator`
+ * added Finder::hasResults() method to check if any results were found
+
+3.3.0
+-----
+
+ * added double-star matching to Glob::toRegex()
+
+3.0.0
+-----
+
+ * removed deprecated classes
+
+2.8.0
+-----
+
+ * deprecated adapters and related classes
+
+2.5.0
+-----
+ * added support for GLOB_BRACE in the paths passed to Finder::in()
+
+2.3.0
+-----
+
+ * added a way to ignore unreadable directories (via Finder::ignoreUnreadableDirs())
+ * unified the way subfolders that are not executable are handled by always throwing an AccessDeniedException exception
+
+2.2.0
+-----
+
+ * added Finder::path() and Finder::notPath() methods
+ * added finder adapters to improve performance on specific platforms
+ * added support for wildcard characters (glob patterns) in the paths passed
+   to Finder::in()
+
+2.1.0
+-----
+
+ * added Finder::sortByAccessedTime(), Finder::sortByChangedTime(), and
+   Finder::sortByModifiedTime()
+ * added Countable to Finder
+ * added support for an array of directories as an argument to
+   Finder::exclude()
+ * added searching based on the file content via Finder::contains() and
+   Finder::notContains()
+ * added support for the != operator in the Comparator
+ * [BC BREAK] filter expressions (used for file name and content) are no more
+   considered as regexps but glob patterns when they are enclosed in '*' or '?'
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/Comparator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/Comparator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/Comparator.php	(revision 8542)
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Comparator;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class Comparator
+{
+    private string $operator;
+
+    public function __construct(
+        private string $target,
+        string $operator = '==',
+    ) {
+        if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) {
+            throw new \InvalidArgumentException(\sprintf('Invalid operator "%s".', $operator));
+        }
+
+        $this->operator = $operator;
+    }
+
+    /**
+     * Gets the target value.
+     */
+    public function getTarget(): string
+    {
+        return $this->target;
+    }
+
+    /**
+     * Gets the comparison operator.
+     */
+    public function getOperator(): string
+    {
+        return $this->operator;
+    }
+
+    /**
+     * Tests against the target.
+     */
+    public function test(mixed $test): bool
+    {
+        return match ($this->operator) {
+            '>' => $test > $this->target,
+            '>=' => $test >= $this->target,
+            '<' => $test < $this->target,
+            '<=' => $test <= $this->target,
+            '!=' => $test != $this->target,
+            default => $test == $this->target,
+        };
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/DateComparator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/DateComparator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/DateComparator.php	(revision 8542)
@@ -0,0 +1,50 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Comparator;
+
+/**
+ * DateCompare compiles date comparisons.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class DateComparator extends Comparator
+{
+    /**
+     * @param string $test A comparison string
+     *
+     * @throws \InvalidArgumentException If the test is not understood
+     */
+    public function __construct(string $test)
+    {
+        if (!preg_match('#^\s*(==|!=|[<>]=?|after|since|before|until)?\s*(.+?)\s*$#i', $test, $matches)) {
+            throw new \InvalidArgumentException(\sprintf('Don\'t understand "%s" as a date test.', $test));
+        }
+
+        try {
+            $date = new \DateTimeImmutable($matches[2]);
+            $target = $date->format('U');
+        } catch (\Exception) {
+            throw new \InvalidArgumentException(\sprintf('"%s" is not a valid date.', $matches[2]));
+        }
+
+        $operator = $matches[1] ?: '==';
+        if ('since' === $operator || 'after' === $operator) {
+            $operator = '>';
+        }
+
+        if ('until' === $operator || 'before' === $operator) {
+            $operator = '<';
+        }
+
+        parent::__construct($target, $operator);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/NumberComparator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/NumberComparator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Comparator/NumberComparator.php	(revision 8542)
@@ -0,0 +1,78 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Comparator;
+
+/**
+ * NumberComparator compiles a simple comparison to an anonymous
+ * subroutine, which you can call with a value to be tested again.
+ *
+ * Now this would be very pointless, if NumberCompare didn't understand
+ * magnitudes.
+ *
+ * The target value may use magnitudes of kilobytes (k, ki),
+ * megabytes (m, mi), or gigabytes (g, gi). Those suffixed
+ * with an i use the appropriate 2**n version in accordance with the
+ * IEC standard: http://physics.nist.gov/cuu/Units/binary.html
+ *
+ * Based on the Perl Number::Compare module.
+ *
+ * @author    Fabien Potencier <fabien@symfony.com> PHP port
+ * @author    Richard Clamp <richardc@unixbeard.net> Perl version
+ * @copyright 2004-2005 Fabien Potencier <fabien@symfony.com>
+ * @copyright 2002 Richard Clamp <richardc@unixbeard.net>
+ *
+ * @see http://physics.nist.gov/cuu/Units/binary.html
+ */
+class NumberComparator extends Comparator
+{
+    /**
+     * @param string|null $test A comparison string or null
+     *
+     * @throws \InvalidArgumentException If the test is not understood
+     */
+    public function __construct(?string $test)
+    {
+        if (null === $test || !preg_match('#^\s*(==|!=|[<>]=?)?\s*([0-9\.]+)\s*([kmg]i?)?\s*$#i', $test, $matches)) {
+            throw new \InvalidArgumentException(\sprintf('Don\'t understand "%s" as a number test.', $test ?? 'null'));
+        }
+
+        $target = $matches[2];
+        if (!is_numeric($target)) {
+            throw new \InvalidArgumentException(\sprintf('Invalid number "%s".', $target));
+        }
+        if (isset($matches[3])) {
+            // magnitude
+            switch (strtolower($matches[3])) {
+                case 'k':
+                    $target *= 1000;
+                    break;
+                case 'ki':
+                    $target *= 1024;
+                    break;
+                case 'm':
+                    $target *= 1000000;
+                    break;
+                case 'mi':
+                    $target *= 1024 * 1024;
+                    break;
+                case 'g':
+                    $target *= 1000000000;
+                    break;
+                case 'gi':
+                    $target *= 1024 * 1024 * 1024;
+                    break;
+            }
+        }
+
+        parent::__construct($target, $matches[1] ?: '==');
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/AccessDeniedException.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/AccessDeniedException.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/AccessDeniedException.php	(revision 8542)
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Exception;
+
+/**
+ * @author Jean-FranÃ§ois Simon <jeanfrancois.simon@sensiolabs.com>
+ */
+class AccessDeniedException extends \UnexpectedValueException
+{
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/DirectoryNotFoundException.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/DirectoryNotFoundException.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Exception/DirectoryNotFoundException.php	(revision 8542)
@@ -0,0 +1,19 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Exception;
+
+/**
+ * @author Andreas Erhard <andreas.erhard@i-med.ac.at>
+ */
+class DirectoryNotFoundException extends \InvalidArgumentException
+{
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Finder.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Finder.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Finder.php	(revision 8542)
@@ -0,0 +1,852 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder;
+
+use Symfony\Component\Finder\Comparator\DateComparator;
+use Symfony\Component\Finder\Comparator\NumberComparator;
+use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
+use Symfony\Component\Finder\Iterator\CustomFilterIterator;
+use Symfony\Component\Finder\Iterator\DateRangeFilterIterator;
+use Symfony\Component\Finder\Iterator\DepthRangeFilterIterator;
+use Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator;
+use Symfony\Component\Finder\Iterator\FilecontentFilterIterator;
+use Symfony\Component\Finder\Iterator\FilenameFilterIterator;
+use Symfony\Component\Finder\Iterator\LazyIterator;
+use Symfony\Component\Finder\Iterator\SizeRangeFilterIterator;
+use Symfony\Component\Finder\Iterator\SortableIterator;
+
+/**
+ * Finder allows to build rules to find files and directories.
+ *
+ * It is a thin wrapper around several specialized iterator classes.
+ *
+ * All rules may be invoked several times.
+ *
+ * All methods return the current Finder object to allow chaining:
+ *
+ *     $finder = Finder::create()->files()->name('*.php')->in(__DIR__);
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @implements \IteratorAggregate<string, SplFileInfo>
+ */
+class Finder implements \IteratorAggregate, \Countable
+{
+    public const IGNORE_VCS_FILES = 1;
+    public const IGNORE_DOT_FILES = 2;
+    public const IGNORE_VCS_IGNORED_FILES = 4;
+
+    private int $mode = 0;
+    private array $names = [];
+    private array $notNames = [];
+    private array $exclude = [];
+    private array $filters = [];
+    private array $pruneFilters = [];
+    private array $depths = [];
+    private array $sizes = [];
+    private bool $followLinks = false;
+    private bool $reverseSorting = false;
+    private \Closure|int|false $sort = false;
+    private int $ignore = 0;
+    private array $dirs = [];
+    private array $dates = [];
+    private array $iterators = [];
+    private array $contains = [];
+    private array $notContains = [];
+    private array $paths = [];
+    private array $notPaths = [];
+    private bool $ignoreUnreadableDirs = false;
+
+    private static array $vcsPatterns = ['.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg'];
+
+    public function __construct()
+    {
+        $this->ignore = static::IGNORE_VCS_FILES | static::IGNORE_DOT_FILES;
+    }
+
+    /**
+     * Creates a new Finder.
+     */
+    public static function create(): static
+    {
+        return new static();
+    }
+
+    /**
+     * Restricts the matching to directories only.
+     *
+     * @return $this
+     */
+    public function directories(): static
+    {
+        $this->mode = Iterator\FileTypeFilterIterator::ONLY_DIRECTORIES;
+
+        return $this;
+    }
+
+    /**
+     * Restricts the matching to files only.
+     *
+     * @return $this
+     */
+    public function files(): static
+    {
+        $this->mode = Iterator\FileTypeFilterIterator::ONLY_FILES;
+
+        return $this;
+    }
+
+    /**
+     * Adds tests for the directory depth.
+     *
+     * Usage:
+     *
+     *     $finder->depth('> 1') // the Finder will start matching at level 1.
+     *     $finder->depth('< 3') // the Finder will descend at most 3 levels of directories below the starting point.
+     *     $finder->depth(['>= 1', '< 3'])
+     *
+     * @param string|int|string[]|int[] $levels The depth level expression or an array of depth levels
+     *
+     * @return $this
+     *
+     * @see DepthRangeFilterIterator
+     * @see NumberComparator
+     */
+    public function depth(string|int|array $levels): static
+    {
+        foreach ((array) $levels as $level) {
+            $this->depths[] = new NumberComparator($level);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds tests for file dates (last modified).
+     *
+     * The date must be something that strtotime() is able to parse:
+     *
+     *     $finder->date('since yesterday');
+     *     $finder->date('until 2 days ago');
+     *     $finder->date('> now - 2 hours');
+     *     $finder->date('>= 2005-10-15');
+     *     $finder->date(['>= 2005-10-15', '<= 2006-05-27']);
+     *
+     * @param string|string[] $dates A date range string or an array of date ranges
+     *
+     * @return $this
+     *
+     * @see strtotime
+     * @see DateRangeFilterIterator
+     * @see DateComparator
+     */
+    public function date(string|array $dates): static
+    {
+        foreach ((array) $dates as $date) {
+            $this->dates[] = new DateComparator($date);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds rules that files must match.
+     *
+     * You can use patterns (delimited with / sign), globs or simple strings.
+     *
+     *     $finder->name('/\.php$/')
+     *     $finder->name('*.php') // same as above, without dot files
+     *     $finder->name('test.php')
+     *     $finder->name(['test.py', 'test.php'])
+     *
+     * @param string|string[] $patterns A pattern (a regexp, a glob, or a string) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilenameFilterIterator
+     */
+    public function name(string|array $patterns): static
+    {
+        $this->names = array_merge($this->names, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds rules that files must not match.
+     *
+     * @param string|string[] $patterns A pattern (a regexp, a glob, or a string) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilenameFilterIterator
+     */
+    public function notName(string|array $patterns): static
+    {
+        $this->notNames = array_merge($this->notNames, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds tests that file contents must match.
+     *
+     * Strings or PCRE patterns can be used:
+     *
+     *     $finder->contains('Lorem ipsum')
+     *     $finder->contains('/Lorem ipsum/i')
+     *     $finder->contains(['dolor', '/ipsum/i'])
+     *
+     * @param string|string[] $patterns A pattern (string or regexp) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilecontentFilterIterator
+     */
+    public function contains(string|array $patterns): static
+    {
+        $this->contains = array_merge($this->contains, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds tests that file contents must not match.
+     *
+     * Strings or PCRE patterns can be used:
+     *
+     *     $finder->notContains('Lorem ipsum')
+     *     $finder->notContains('/Lorem ipsum/i')
+     *     $finder->notContains(['lorem', '/dolor/i'])
+     *
+     * @param string|string[] $patterns A pattern (string or regexp) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilecontentFilterIterator
+     */
+    public function notContains(string|array $patterns): static
+    {
+        $this->notContains = array_merge($this->notContains, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds rules that filenames must match.
+     *
+     * You can use patterns (delimited with / sign) or simple strings.
+     *
+     *     $finder->path('some/special/dir')
+     *     $finder->path('/some\/special\/dir/') // same as above
+     *     $finder->path(['some dir', 'another/dir'])
+     *
+     * Use only / as dirname separator.
+     *
+     * @param string|string[] $patterns A pattern (a regexp or a string) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilenameFilterIterator
+     */
+    public function path(string|array $patterns): static
+    {
+        $this->paths = array_merge($this->paths, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds rules that filenames must not match.
+     *
+     * You can use patterns (delimited with / sign) or simple strings.
+     *
+     *     $finder->notPath('some/special/dir')
+     *     $finder->notPath('/some\/special\/dir/') // same as above
+     *     $finder->notPath(['some/file.txt', 'another/file.log'])
+     *
+     * Use only / as dirname separator.
+     *
+     * @param string|string[] $patterns A pattern (a regexp or a string) or an array of patterns
+     *
+     * @return $this
+     *
+     * @see FilenameFilterIterator
+     */
+    public function notPath(string|array $patterns): static
+    {
+        $this->notPaths = array_merge($this->notPaths, (array) $patterns);
+
+        return $this;
+    }
+
+    /**
+     * Adds tests for file sizes.
+     *
+     *     $finder->size('> 10K');
+     *     $finder->size('<= 1Ki');
+     *     $finder->size(4);
+     *     $finder->size(['> 10K', '< 20K'])
+     *
+     * @param string|int|string[]|int[] $sizes A size range string or an integer or an array of size ranges
+     *
+     * @return $this
+     *
+     * @see SizeRangeFilterIterator
+     * @see NumberComparator
+     */
+    public function size(string|int|array $sizes): static
+    {
+        foreach ((array) $sizes as $size) {
+            $this->sizes[] = new NumberComparator($size);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Excludes directories.
+     *
+     * Directories passed as argument must be relative to the ones defined with the `in()` method. For example:
+     *
+     *     $finder->in(__DIR__)->exclude('ruby');
+     *
+     * @param string|array $dirs A directory path or an array of directories
+     *
+     * @return $this
+     *
+     * @see ExcludeDirectoryFilterIterator
+     */
+    public function exclude(string|array $dirs): static
+    {
+        $this->exclude = array_merge($this->exclude, (array) $dirs);
+
+        return $this;
+    }
+
+    /**
+     * Excludes "hidden" directories and files (starting with a dot).
+     *
+     * This option is enabled by default.
+     *
+     * @return $this
+     *
+     * @see ExcludeDirectoryFilterIterator
+     */
+    public function ignoreDotFiles(bool $ignoreDotFiles): static
+    {
+        if ($ignoreDotFiles) {
+            $this->ignore |= static::IGNORE_DOT_FILES;
+        } else {
+            $this->ignore &= ~static::IGNORE_DOT_FILES;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Forces the finder to ignore version control directories.
+     *
+     * This option is enabled by default.
+     *
+     * @return $this
+     *
+     * @see ExcludeDirectoryFilterIterator
+     */
+    public function ignoreVCS(bool $ignoreVCS): static
+    {
+        if ($ignoreVCS) {
+            $this->ignore |= static::IGNORE_VCS_FILES;
+        } else {
+            $this->ignore &= ~static::IGNORE_VCS_FILES;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Forces Finder to obey .gitignore and ignore files based on rules listed there.
+     *
+     * This option is disabled by default.
+     *
+     * @return $this
+     */
+    public function ignoreVCSIgnored(bool $ignoreVCSIgnored): static
+    {
+        if ($ignoreVCSIgnored) {
+            $this->ignore |= static::IGNORE_VCS_IGNORED_FILES;
+        } else {
+            $this->ignore &= ~static::IGNORE_VCS_IGNORED_FILES;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds VCS patterns.
+     *
+     * @see ignoreVCS()
+     *
+     * @param string|string[] $pattern VCS patterns to ignore
+     */
+    public static function addVCSPattern(string|array $pattern): void
+    {
+        foreach ((array) $pattern as $p) {
+            self::$vcsPatterns[] = $p;
+        }
+
+        self::$vcsPatterns = array_unique(self::$vcsPatterns);
+    }
+
+    /**
+     * Sorts files and directories by an anonymous function.
+     *
+     * The anonymous function receives two \SplFileInfo instances to compare.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sort(\Closure $closure): static
+    {
+        $this->sort = $closure;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by extension.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByExtension(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_EXTENSION;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by name.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByName(bool $useNaturalSort = false): static
+    {
+        $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL : SortableIterator::SORT_BY_NAME;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by name case insensitive.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByCaseInsensitiveName(bool $useNaturalSort = false): static
+    {
+        $this->sort = $useNaturalSort ? SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by size.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortBySize(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_SIZE;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by type (directories before files), then by name.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByType(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_TYPE;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by the last accessed time.
+     *
+     * This is the time that the file was last accessed, read or written to.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByAccessedTime(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_ACCESSED_TIME;
+
+        return $this;
+    }
+
+    /**
+     * Reverses the sorting.
+     *
+     * @return $this
+     */
+    public function reverseSorting(): static
+    {
+        $this->reverseSorting = true;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by the last inode changed time.
+     *
+     * This is the time that the inode information was last modified (permissions, owner, group or other metadata).
+     *
+     * On Windows, since inode is not available, changed time is actually the file creation time.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByChangedTime(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_CHANGED_TIME;
+
+        return $this;
+    }
+
+    /**
+     * Sorts files and directories by the last modified time.
+     *
+     * This is the last time the actual contents of the file were last modified.
+     *
+     * This can be slow as all the matching files and directories must be retrieved for comparison.
+     *
+     * @return $this
+     *
+     * @see SortableIterator
+     */
+    public function sortByModifiedTime(): static
+    {
+        $this->sort = SortableIterator::SORT_BY_MODIFIED_TIME;
+
+        return $this;
+    }
+
+    /**
+     * Filters the iterator with an anonymous function.
+     *
+     * The anonymous function receives a \SplFileInfo and must return false
+     * to remove files.
+     *
+     * @param \Closure(SplFileInfo): bool $closure
+     * @param bool                        $prune   Whether to skip traversing directories further
+     *
+     * @return $this
+     *
+     * @see CustomFilterIterator
+     */
+    public function filter(\Closure $closure, bool $prune = false): static
+    {
+        $this->filters[] = $closure;
+
+        if ($prune) {
+            $this->pruneFilters[] = $closure;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Forces the following of symlinks.
+     *
+     * @return $this
+     */
+    public function followLinks(): static
+    {
+        $this->followLinks = true;
+
+        return $this;
+    }
+
+    /**
+     * Tells finder to ignore unreadable directories.
+     *
+     * By default, scanning unreadable directories content throws an AccessDeniedException.
+     *
+     * @return $this
+     */
+    public function ignoreUnreadableDirs(bool $ignore = true): static
+    {
+        $this->ignoreUnreadableDirs = $ignore;
+
+        return $this;
+    }
+
+    /**
+     * Searches files and directories which match defined rules.
+     *
+     * @param string|string[] $dirs A directory path or an array of directories
+     *
+     * @return $this
+     *
+     * @throws DirectoryNotFoundException if one of the directories does not exist
+     */
+    public function in(string|array $dirs): static
+    {
+        $resolvedDirs = [];
+
+        foreach ((array) $dirs as $dir) {
+            if (is_dir($dir)) {
+                $resolvedDirs[] = [$this->normalizeDir($dir)];
+            } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? \GLOB_BRACE : 0) | \GLOB_ONLYDIR | \GLOB_NOSORT)) {
+                sort($glob);
+                $resolvedDirs[] = array_map($this->normalizeDir(...), $glob);
+            } else {
+                throw new DirectoryNotFoundException(\sprintf('The "%s" directory does not exist.', $dir));
+            }
+        }
+
+        $this->dirs = array_merge($this->dirs, ...$resolvedDirs);
+
+        return $this;
+    }
+
+    /**
+     * Returns an Iterator for the current Finder configuration.
+     *
+     * This method implements the IteratorAggregate interface.
+     *
+     * @return \Iterator<string, SplFileInfo>
+     *
+     * @throws \LogicException if the in() method has not been called
+     */
+    public function getIterator(): \Iterator
+    {
+        if (0 === \count($this->dirs) && 0 === \count($this->iterators)) {
+            throw new \LogicException('You must call one of in() or append() methods before iterating over a Finder.');
+        }
+
+        if (1 === \count($this->dirs) && 0 === \count($this->iterators)) {
+            $iterator = $this->searchInDirectory($this->dirs[0]);
+
+            if ($this->sort || $this->reverseSorting) {
+                $iterator = (new SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator();
+            }
+
+            return $iterator;
+        }
+
+        $iterator = new \AppendIterator();
+        foreach ($this->dirs as $dir) {
+            $iterator->append(new \IteratorIterator(new LazyIterator(fn () => $this->searchInDirectory($dir))));
+        }
+
+        foreach ($this->iterators as $it) {
+            $iterator->append($it);
+        }
+
+        if ($this->sort || $this->reverseSorting) {
+            $iterator = (new SortableIterator($iterator, $this->sort, $this->reverseSorting))->getIterator();
+        }
+
+        return $iterator;
+    }
+
+    /**
+     * Appends an existing set of files/directories to the finder.
+     *
+     * The set can be another Finder, an Iterator, an IteratorAggregate, or even a plain array.
+     *
+     * @return $this
+     */
+    public function append(iterable $iterator): static
+    {
+        if ($iterator instanceof \IteratorAggregate) {
+            $this->iterators[] = $iterator->getIterator();
+        } elseif ($iterator instanceof \Iterator) {
+            $this->iterators[] = $iterator;
+        } else {
+            $it = new \ArrayIterator();
+            foreach ($iterator as $file) {
+                $file = $file instanceof \SplFileInfo ? $file : new \SplFileInfo($file);
+                $it[$file->getPathname()] = $file;
+            }
+            $this->iterators[] = $it;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Check if any results were found.
+     */
+    public function hasResults(): bool
+    {
+        foreach ($this->getIterator() as $_) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Counts all the results collected by the iterators.
+     */
+    public function count(): int
+    {
+        return iterator_count($this->getIterator());
+    }
+
+    private function searchInDirectory(string $dir): \Iterator
+    {
+        $exclude = $this->exclude;
+        $notPaths = $this->notPaths;
+
+        if ($this->pruneFilters) {
+            $exclude = array_merge($exclude, $this->pruneFilters);
+        }
+
+        if (static::IGNORE_VCS_FILES === (static::IGNORE_VCS_FILES & $this->ignore)) {
+            $exclude = array_merge($exclude, self::$vcsPatterns);
+        }
+
+        if (static::IGNORE_DOT_FILES === (static::IGNORE_DOT_FILES & $this->ignore)) {
+            $notPaths[] = '#(^|/)\..+(/|$)#';
+        }
+
+        $minDepth = 0;
+        $maxDepth = \PHP_INT_MAX;
+
+        foreach ($this->depths as $comparator) {
+            switch ($comparator->getOperator()) {
+                case '>':
+                    $minDepth = $comparator->getTarget() + 1;
+                    break;
+                case '>=':
+                    $minDepth = $comparator->getTarget();
+                    break;
+                case '<':
+                    $maxDepth = $comparator->getTarget() - 1;
+                    break;
+                case '<=':
+                    $maxDepth = $comparator->getTarget();
+                    break;
+                default:
+                    $minDepth = $maxDepth = $comparator->getTarget();
+            }
+        }
+
+        $flags = \RecursiveDirectoryIterator::SKIP_DOTS;
+
+        if ($this->followLinks) {
+            $flags |= \RecursiveDirectoryIterator::FOLLOW_SYMLINKS;
+        }
+
+        $iterator = new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs);
+
+        if ($exclude) {
+            $iterator = new ExcludeDirectoryFilterIterator($iterator, $exclude);
+        }
+
+        $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);
+
+        if ($minDepth > 0 || $maxDepth < \PHP_INT_MAX) {
+            $iterator = new DepthRangeFilterIterator($iterator, $minDepth, $maxDepth);
+        }
+
+        if ($this->mode) {
+            $iterator = new Iterator\FileTypeFilterIterator($iterator, $this->mode);
+        }
+
+        if ($this->names || $this->notNames) {
+            $iterator = new FilenameFilterIterator($iterator, $this->names, $this->notNames);
+        }
+
+        if ($this->contains || $this->notContains) {
+            $iterator = new FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
+        }
+
+        if ($this->sizes) {
+            $iterator = new SizeRangeFilterIterator($iterator, $this->sizes);
+        }
+
+        if ($this->dates) {
+            $iterator = new DateRangeFilterIterator($iterator, $this->dates);
+        }
+
+        if ($this->filters) {
+            $iterator = new CustomFilterIterator($iterator, $this->filters);
+        }
+
+        if ($this->paths || $notPaths) {
+            $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $notPaths);
+        }
+
+        if (static::IGNORE_VCS_IGNORED_FILES === (static::IGNORE_VCS_IGNORED_FILES & $this->ignore)) {
+            $iterator = new Iterator\VcsIgnoredFilterIterator($iterator, $dir);
+        }
+
+        return $iterator;
+    }
+
+    /**
+     * Normalizes given directory names by removing trailing slashes.
+     *
+     * Excluding: (s)ftp:// or ssh2.(s)ftp:// wrapper
+     */
+    private function normalizeDir(string $dir): string
+    {
+        if ('/' === $dir) {
+            return $dir;
+        }
+
+        $dir = rtrim($dir, '/'.\DIRECTORY_SEPARATOR);
+
+        if (preg_match('#^(ssh2\.)?s?ftp://#', $dir)) {
+            $dir .= '/';
+        }
+
+        return $dir;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Gitignore.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Gitignore.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Gitignore.php	(revision 8542)
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder;
+
+/**
+ * Gitignore matches against text.
+ *
+ * @author Michael VoÅÃ­Å¡ek <vorismi3@fel.cvut.cz>
+ * @author Ahmed Abdou <mail@ahmd.io>
+ */
+class Gitignore
+{
+    /**
+     * Returns a regexp which is the equivalent of the gitignore pattern.
+     *
+     * Format specification: https://git-scm.com/docs/gitignore#_pattern_format
+     */
+    public static function toRegex(string $gitignoreFileContent): string
+    {
+        return self::buildRegex($gitignoreFileContent, false);
+    }
+
+    public static function toRegexMatchingNegatedPatterns(string $gitignoreFileContent): string
+    {
+        return self::buildRegex($gitignoreFileContent, true);
+    }
+
+    private static function buildRegex(string $gitignoreFileContent, bool $inverted): string
+    {
+        $gitignoreFileContent = preg_replace('~(?<!\\\\)#[^\n\r]*~', '', $gitignoreFileContent);
+        $gitignoreLines = preg_split('~\r\n?|\n~', $gitignoreFileContent);
+
+        $res = self::lineToRegex('');
+        foreach ($gitignoreLines as $line) {
+            $line = preg_replace('~(?<!\\\\)[ \t]+$~', '', $line);
+
+            if (str_starts_with($line, '!')) {
+                $line = substr($line, 1);
+                $isNegative = true;
+            } else {
+                $isNegative = false;
+            }
+
+            if ('' !== $line) {
+                if ($isNegative xor $inverted) {
+                    $res = '(?!'.self::lineToRegex($line).'$)'.$res;
+                } else {
+                    $res = '(?:'.$res.'|'.self::lineToRegex($line).')';
+                }
+            }
+        }
+
+        return '~^(?:'.$res.')~s';
+    }
+
+    private static function lineToRegex(string $gitignoreLine): string
+    {
+        if ('' === $gitignoreLine) {
+            return '$f'; // always false
+        }
+
+        $slashPos = strpos($gitignoreLine, '/');
+        if (false !== $slashPos && \strlen($gitignoreLine) - 1 !== $slashPos) {
+            if (0 === $slashPos) {
+                $gitignoreLine = substr($gitignoreLine, 1);
+            }
+            $isAbsolute = true;
+        } else {
+            $isAbsolute = false;
+        }
+
+        $regex = preg_quote(str_replace('\\', '', $gitignoreLine), '~');
+        $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', fn (array $matches): string => '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']', $regex);
+        $regex = preg_replace('~(?:(?:\\\\\*){2,}(/?))+~', '(?:(?:(?!//).(?<!//))+$1)?', $regex);
+        $regex = preg_replace('~\\\\\*~', '[^/]*', $regex);
+        $regex = preg_replace('~\\\\\?~', '[^/]', $regex);
+
+        return ($isAbsolute ? '' : '(?:[^/]+/)*')
+            .$regex
+            .(!str_ends_with($gitignoreLine, '/') ? '(?:$|/)' : '');
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Glob.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Glob.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Glob.php	(revision 8542)
@@ -0,0 +1,109 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder;
+
+/**
+ * Glob matches globbing patterns against text.
+ *
+ *     if match_glob("foo.*", "foo.bar") echo "matched\n";
+ *
+ *     // prints foo.bar and foo.baz
+ *     $regex = glob_to_regex("foo.*");
+ *     for (['foo.bar', 'foo.baz', 'foo', 'bar'] as $t)
+ *     {
+ *         if (/$regex/) echo "matched: $car\n";
+ *     }
+ *
+ * Glob implements glob(3) style matching that can be used to match
+ * against text, rather than fetching names from a filesystem.
+ *
+ * Based on the Perl Text::Glob module.
+ *
+ * @author Fabien Potencier <fabien@symfony.com> PHP port
+ * @author     Richard Clamp <richardc@unixbeard.net> Perl version
+ * @copyright  2004-2005 Fabien Potencier <fabien@symfony.com>
+ * @copyright  2002 Richard Clamp <richardc@unixbeard.net>
+ */
+class Glob
+{
+    /**
+     * Returns a regexp which is the equivalent of the glob pattern.
+     */
+    public static function toRegex(string $glob, bool $strictLeadingDot = true, bool $strictWildcardSlash = true, string $delimiter = '#'): string
+    {
+        $firstByte = true;
+        $escaping = false;
+        $inCurlies = 0;
+        $regex = '';
+        $sizeGlob = \strlen($glob);
+        for ($i = 0; $i < $sizeGlob; ++$i) {
+            $car = $glob[$i];
+            if ($firstByte && $strictLeadingDot && '.' !== $car) {
+                $regex .= '(?=[^\.])';
+            }
+
+            $firstByte = '/' === $car;
+
+            if ($firstByte && $strictWildcardSlash && isset($glob[$i + 2]) && '**' === $glob[$i + 1].$glob[$i + 2] && (!isset($glob[$i + 3]) || '/' === $glob[$i + 3])) {
+                $car = '[^/]++/';
+                if (!isset($glob[$i + 3])) {
+                    $car .= '?';
+                }
+
+                if ($strictLeadingDot) {
+                    $car = '(?=[^\.])'.$car;
+                }
+
+                $car = '/(?:'.$car.')*';
+                $i += 2 + isset($glob[$i + 3]);
+
+                if ('/' === $delimiter) {
+                    $car = str_replace('/', '\\/', $car);
+                }
+            }
+
+            if ($delimiter === $car || '.' === $car || '(' === $car || ')' === $car || '|' === $car || '+' === $car || '^' === $car || '$' === $car) {
+                $regex .= "\\$car";
+            } elseif ('*' === $car) {
+                $regex .= $escaping ? '\\*' : ($strictWildcardSlash ? '[^/]*' : '.*');
+            } elseif ('?' === $car) {
+                $regex .= $escaping ? '\\?' : ($strictWildcardSlash ? '[^/]' : '.');
+            } elseif ('{' === $car) {
+                $regex .= $escaping ? '\\{' : '(';
+                if (!$escaping) {
+                    ++$inCurlies;
+                }
+            } elseif ('}' === $car && $inCurlies) {
+                $regex .= $escaping ? '}' : ')';
+                if (!$escaping) {
+                    --$inCurlies;
+                }
+            } elseif (',' === $car && $inCurlies) {
+                $regex .= $escaping ? ',' : '|';
+            } elseif ('\\' === $car) {
+                if ($escaping) {
+                    $regex .= '\\\\';
+                    $escaping = false;
+                } else {
+                    $escaping = true;
+                }
+
+                continue;
+            } else {
+                $regex .= $car;
+            }
+            $escaping = false;
+        }
+
+        return $delimiter.'^'.$regex.'$'.$delimiter;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/CustomFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/CustomFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/CustomFilterIterator.php	(revision 8542)
@@ -0,0 +1,61 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * CustomFilterIterator filters files by applying anonymous functions.
+ *
+ * The anonymous function receives a \SplFileInfo and must return false
+ * to remove files.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends \FilterIterator<string, \SplFileInfo>
+ */
+class CustomFilterIterator extends \FilterIterator
+{
+    private array $filters = [];
+
+    /**
+     * @param \Iterator<string, \SplFileInfo> $iterator The Iterator to filter
+     * @param callable[]                      $filters  An array of PHP callbacks
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function __construct(\Iterator $iterator, array $filters)
+    {
+        foreach ($filters as $filter) {
+            if (!\is_callable($filter)) {
+                throw new \InvalidArgumentException('Invalid PHP callback.');
+            }
+        }
+        $this->filters = $filters;
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        $fileinfo = $this->current();
+
+        foreach ($this->filters as $filter) {
+            if (false === $filter($fileinfo)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php	(revision 8542)
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\Comparator\DateComparator;
+
+/**
+ * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates).
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends \FilterIterator<string, \SplFileInfo>
+ */
+class DateRangeFilterIterator extends \FilterIterator
+{
+    private array $comparators = [];
+
+    /**
+     * @param \Iterator<string, \SplFileInfo> $iterator
+     * @param DateComparator[]                $comparators
+     */
+    public function __construct(\Iterator $iterator, array $comparators)
+    {
+        $this->comparators = $comparators;
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        $fileinfo = $this->current();
+
+        if (!file_exists($fileinfo->getPathname())) {
+            return false;
+        }
+
+        $filedate = $fileinfo->getMTime();
+        foreach ($this->comparators as $compare) {
+            if (!$compare->test($filedate)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php	(revision 8542)
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * DepthRangeFilterIterator limits the directory depth.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @template-covariant TKey
+ * @template-covariant TValue
+ *
+ * @extends \FilterIterator<TKey, TValue>
+ */
+class DepthRangeFilterIterator extends \FilterIterator
+{
+    private int $minDepth = 0;
+
+    /**
+     * @param \RecursiveIteratorIterator<\RecursiveIterator<TKey, TValue>> $iterator The Iterator to filter
+     * @param int                                                          $minDepth The min depth
+     * @param int                                                          $maxDepth The max depth
+     */
+    public function __construct(\RecursiveIteratorIterator $iterator, int $minDepth = 0, int $maxDepth = \PHP_INT_MAX)
+    {
+        $this->minDepth = $minDepth;
+        $iterator->setMaxDepth(\PHP_INT_MAX === $maxDepth ? -1 : $maxDepth);
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        return $this->getInnerIterator()->getDepth() >= $this->minDepth;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php	(revision 8542)
@@ -0,0 +1,110 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\SplFileInfo;
+
+/**
+ * ExcludeDirectoryFilterIterator filters out directories.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends \FilterIterator<string, SplFileInfo>
+ *
+ * @implements \RecursiveIterator<string, SplFileInfo>
+ */
+class ExcludeDirectoryFilterIterator extends \FilterIterator implements \RecursiveIterator
+{
+    /** @var \Iterator<string, SplFileInfo> */
+    private \Iterator $iterator;
+    private bool $isRecursive;
+    /** @var array<string, true> */
+    private array $excludedDirs = [];
+    private ?string $excludedPattern = null;
+    /** @var list<callable(SplFileInfo):bool> */
+    private array $pruneFilters = [];
+
+    /**
+     * @param \Iterator<string, SplFileInfo>          $iterator    The Iterator to filter
+     * @param list<string|callable(SplFileInfo):bool> $directories An array of directories to exclude
+     */
+    public function __construct(\Iterator $iterator, array $directories)
+    {
+        $this->iterator = $iterator;
+        $this->isRecursive = $iterator instanceof \RecursiveIterator;
+        $patterns = [];
+        foreach ($directories as $directory) {
+            if (!\is_string($directory)) {
+                if (!\is_callable($directory)) {
+                    throw new \InvalidArgumentException('Invalid PHP callback.');
+                }
+
+                $this->pruneFilters[] = $directory;
+
+                continue;
+            }
+
+            $directory = rtrim($directory, '/');
+            if (!$this->isRecursive || str_contains($directory, '/')) {
+                $patterns[] = preg_quote($directory, '#');
+            } else {
+                $this->excludedDirs[$directory] = true;
+            }
+        }
+        if ($patterns) {
+            $this->excludedPattern = '#(?:^|/)(?:'.implode('|', $patterns).')(?:/|$)#';
+        }
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        if ($this->isRecursive && isset($this->excludedDirs[$this->getFilename()]) && $this->isDir()) {
+            return false;
+        }
+
+        if ($this->excludedPattern) {
+            $path = $this->isDir() ? $this->current()->getRelativePathname() : $this->current()->getRelativePath();
+            $path = str_replace('\\', '/', $path);
+
+            return !preg_match($this->excludedPattern, $path);
+        }
+
+        if ($this->pruneFilters && $this->hasChildren()) {
+            foreach ($this->pruneFilters as $pruneFilter) {
+                if (!$pruneFilter($this->current())) {
+                    return false;
+                }
+            }
+        }
+
+        return true;
+    }
+
+    public function hasChildren(): bool
+    {
+        return $this->isRecursive && $this->iterator->hasChildren();
+    }
+
+    public function getChildren(): self
+    {
+        $children = new self($this->iterator->getChildren(), []);
+        $children->excludedDirs = $this->excludedDirs;
+        $children->excludedPattern = $this->excludedPattern;
+
+        return $children;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php	(revision 8542)
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * FileTypeFilterIterator only keeps files, directories, or both.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends \FilterIterator<string, \SplFileInfo>
+ */
+class FileTypeFilterIterator extends \FilterIterator
+{
+    public const ONLY_FILES = 1;
+    public const ONLY_DIRECTORIES = 2;
+
+    /**
+     * @param \Iterator<string, \SplFileInfo> $iterator The Iterator to filter
+     * @param int                             $mode     The mode (self::ONLY_FILES or self::ONLY_DIRECTORIES)
+     */
+    public function __construct(
+        \Iterator $iterator,
+        private int $mode,
+    ) {
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        $fileinfo = $this->current();
+        if (self::ONLY_DIRECTORIES === (self::ONLY_DIRECTORIES & $this->mode) && $fileinfo->isFile()) {
+            return false;
+        } elseif (self::ONLY_FILES === (self::ONLY_FILES & $this->mode) && $fileinfo->isDir()) {
+            return false;
+        }
+
+        return true;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php	(revision 8542)
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\SplFileInfo;
+
+/**
+ * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings).
+ *
+ * @author Fabien Potencier  <fabien@symfony.com>
+ * @author WÅodzimierz Gajda <gajdaw@gajdaw.pl>
+ *
+ * @extends MultiplePcreFilterIterator<string, SplFileInfo>
+ */
+class FilecontentFilterIterator extends MultiplePcreFilterIterator
+{
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        if (!$this->matchRegexps && !$this->noMatchRegexps) {
+            return true;
+        }
+
+        $fileinfo = $this->current();
+
+        if ($fileinfo->isDir() || !$fileinfo->isReadable()) {
+            return false;
+        }
+
+        $content = $fileinfo->getContents();
+        if (!$content) {
+            return false;
+        }
+
+        return $this->isAccepted($content);
+    }
+
+    /**
+     * Converts string to regexp if necessary.
+     *
+     * @param string $str Pattern: string or regexp
+     */
+    protected function toRegex(string $str): string
+    {
+        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilenameFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/FilenameFilterIterator.php	(revision 8542)
@@ -0,0 +1,45 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\Glob;
+
+/**
+ * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string).
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends MultiplePcreFilterIterator<string, \SplFileInfo>
+ */
+class FilenameFilterIterator extends MultiplePcreFilterIterator
+{
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        return $this->isAccepted($this->current()->getFilename());
+    }
+
+    /**
+     * Converts glob to regexp.
+     *
+     * PCRE patterns are left unchanged.
+     * Glob strings are transformed with Glob::toRegex().
+     *
+     * @param string $str Pattern: glob or regexp
+     */
+    protected function toRegex(string $str): string
+    {
+        return $this->isRegex($str) ? $str : Glob::toRegex($str);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/LazyIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/LazyIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/LazyIterator.php	(revision 8542)
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * @author JÃ©rÃ©my DerussÃ© <jeremy@derusse.com>
+ *
+ * @internal
+ */
+class LazyIterator implements \IteratorAggregate
+{
+    private \Closure $iteratorFactory;
+
+    public function __construct(callable $iteratorFactory)
+    {
+        $this->iteratorFactory = $iteratorFactory(...);
+    }
+
+    public function getIterator(): \Traversable
+    {
+        yield from ($this->iteratorFactory)();
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php	(revision 8542)
@@ -0,0 +1,107 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings).
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @template-covariant TKey
+ * @template-covariant TValue
+ *
+ * @extends \FilterIterator<TKey, TValue>
+ */
+abstract class MultiplePcreFilterIterator extends \FilterIterator
+{
+    protected array $matchRegexps = [];
+    protected array $noMatchRegexps = [];
+
+    /**
+     * @param \Iterator<TKey, TValue> $iterator        The Iterator to filter
+     * @param string[]                $matchPatterns   An array of patterns that need to match
+     * @param string[]                $noMatchPatterns An array of patterns that need to not match
+     */
+    public function __construct(\Iterator $iterator, array $matchPatterns, array $noMatchPatterns)
+    {
+        foreach ($matchPatterns as $pattern) {
+            $this->matchRegexps[] = $this->toRegex($pattern);
+        }
+
+        foreach ($noMatchPatterns as $pattern) {
+            $this->noMatchRegexps[] = $this->toRegex($pattern);
+        }
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Checks whether the string is accepted by the regex filters.
+     *
+     * If there is no regexps defined in the class, this method will accept the string.
+     * Such case can be handled by child classes before calling the method if they want to
+     * apply a different behavior.
+     */
+    protected function isAccepted(string $string): bool
+    {
+        // should at least not match one rule to exclude
+        foreach ($this->noMatchRegexps as $regex) {
+            if (preg_match($regex, $string)) {
+                return false;
+            }
+        }
+
+        // should at least match one rule
+        if ($this->matchRegexps) {
+            foreach ($this->matchRegexps as $regex) {
+                if (preg_match($regex, $string)) {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        // If there is no match rules, the file is accepted
+        return true;
+    }
+
+    /**
+     * Checks whether the string is a regex.
+     */
+    protected function isRegex(string $str): bool
+    {
+        $availableModifiers = 'imsxuADUn';
+
+        if (preg_match('/^(.{3,}?)['.$availableModifiers.']*$/', $str, $m)) {
+            $start = substr($m[1], 0, 1);
+            $end = substr($m[1], -1);
+
+            if ($start === $end) {
+                return !preg_match('/[*?[:alnum:] \\\\]/', $start);
+            }
+
+            foreach ([['{', '}'], ['(', ')'], ['[', ']'], ['<', '>']] as $delimiters) {
+                if ($start === $delimiters[0] && $end === $delimiters[1]) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Converts string into regexp.
+     */
+    abstract protected function toRegex(string $str): string;
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/PathFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/PathFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/PathFilterIterator.php	(revision 8542)
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\SplFileInfo;
+
+/**
+ * PathFilterIterator filters files by path patterns (e.g. some/special/dir).
+ *
+ * @author Fabien Potencier  <fabien@symfony.com>
+ * @author WÅodzimierz Gajda <gajdaw@gajdaw.pl>
+ *
+ * @extends MultiplePcreFilterIterator<string, SplFileInfo>
+ */
+class PathFilterIterator extends MultiplePcreFilterIterator
+{
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        $filename = $this->current()->getRelativePathname();
+
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            $filename = str_replace('\\', '/', $filename);
+        }
+
+        return $this->isAccepted($filename);
+    }
+
+    /**
+     * Converts strings to regexp.
+     *
+     * PCRE patterns are left unchanged.
+     *
+     * Default conversion:
+     *     'lorem/ipsum/dolor' ==>  'lorem\/ipsum\/dolor/'
+     *
+     * Use only / as directory separator (on Windows also).
+     *
+     * @param string $str Pattern: regexp or dirname
+     */
+    protected function toRegex(string $str): string
+    {
+        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php	(revision 8542)
@@ -0,0 +1,134 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\Exception\AccessDeniedException;
+use Symfony\Component\Finder\SplFileInfo;
+
+/**
+ * Extends the \RecursiveDirectoryIterator to support relative paths.
+ *
+ * @author Victor Berchet <victor@suumit.com>
+ *
+ * @extends \RecursiveDirectoryIterator<string, SplFileInfo>
+ */
+class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
+{
+    private bool $ignoreUnreadableDirs;
+    private bool $ignoreFirstRewind = true;
+
+    // these 3 properties take part of the performance optimization to avoid redoing the same work in all iterations
+    private string $rootPath;
+    private string $subPath;
+    private string $directorySeparator = '/';
+
+    /**
+     * @throws \RuntimeException
+     */
+    public function __construct(string $path, int $flags, bool $ignoreUnreadableDirs = false)
+    {
+        if ($flags & (self::CURRENT_AS_PATHNAME | self::CURRENT_AS_SELF)) {
+            throw new \RuntimeException('This iterator only support returning current as fileinfo.');
+        }
+
+        parent::__construct($path, $flags);
+        $this->ignoreUnreadableDirs = $ignoreUnreadableDirs;
+        $this->rootPath = $path;
+        if ('/' !== \DIRECTORY_SEPARATOR && !($flags & self::UNIX_PATHS)) {
+            $this->directorySeparator = \DIRECTORY_SEPARATOR;
+        }
+    }
+
+    /**
+     * Return an instance of SplFileInfo with support for relative paths.
+     */
+    public function current(): SplFileInfo
+    {
+        // the logic here avoids redoing the same work in all iterations
+
+        if (!isset($this->subPath)) {
+            $this->subPath = $this->getSubPath();
+        }
+        $subPathname = $this->subPath;
+        if ('' !== $subPathname) {
+            $subPathname .= $this->directorySeparator;
+        }
+        $subPathname .= $this->getFilename();
+        $basePath = $this->rootPath;
+
+        if ('/' !== $basePath && !str_ends_with($basePath, $this->directorySeparator) && !str_ends_with($basePath, '/')) {
+            $basePath .= $this->directorySeparator;
+        }
+
+        return new SplFileInfo($basePath.$subPathname, $this->subPath, $subPathname);
+    }
+
+    public function hasChildren(bool $allowLinks = false): bool
+    {
+        $hasChildren = parent::hasChildren($allowLinks);
+
+        if (!$hasChildren || !$this->ignoreUnreadableDirs) {
+            return $hasChildren;
+        }
+
+        try {
+            parent::getChildren();
+
+            return true;
+        } catch (\UnexpectedValueException) {
+            // If directory is unreadable and finder is set to ignore it, skip children
+            return false;
+        }
+    }
+
+    /**
+     * @throws AccessDeniedException
+     */
+    public function getChildren(): \RecursiveDirectoryIterator
+    {
+        try {
+            $children = parent::getChildren();
+
+            if ($children instanceof self) {
+                // parent method will call the constructor with default arguments, so unreadable dirs won't be ignored anymore
+                $children->ignoreUnreadableDirs = $this->ignoreUnreadableDirs;
+
+                // performance optimization to avoid redoing the same work in all children
+                $children->rootPath = $this->rootPath;
+            }
+
+            return $children;
+        } catch (\UnexpectedValueException $e) {
+            throw new AccessDeniedException($e->getMessage(), $e->getCode(), $e);
+        }
+    }
+
+    public function next(): void
+    {
+        $this->ignoreFirstRewind = false;
+
+        parent::next();
+    }
+
+    public function rewind(): void
+    {
+        // some streams like FTP are not rewindable, ignore the first rewind after creation,
+        // as newly created DirectoryIterator does not need to be rewound
+        if ($this->ignoreFirstRewind) {
+            $this->ignoreFirstRewind = false;
+
+            return;
+        }
+
+        parent::rewind();
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php	(revision 8542)
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\Comparator\NumberComparator;
+
+/**
+ * SizeRangeFilterIterator filters out files that are not in the given size range.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @extends \FilterIterator<string, \SplFileInfo>
+ */
+class SizeRangeFilterIterator extends \FilterIterator
+{
+    private array $comparators = [];
+
+    /**
+     * @param \Iterator<string, \SplFileInfo> $iterator
+     * @param NumberComparator[]              $comparators
+     */
+    public function __construct(\Iterator $iterator, array $comparators)
+    {
+        $this->comparators = $comparators;
+
+        parent::__construct($iterator);
+    }
+
+    /**
+     * Filters the iterator values.
+     */
+    public function accept(): bool
+    {
+        $fileinfo = $this->current();
+        if (!$fileinfo->isFile()) {
+            return true;
+        }
+
+        $filesize = $fileinfo->getSize();
+        foreach ($this->comparators as $compare) {
+            if (!$compare->test($filesize)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SortableIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SortableIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/SortableIterator.php	(revision 8542)
@@ -0,0 +1,103 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+/**
+ * SortableIterator applies a sort on a given Iterator.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @implements \IteratorAggregate<string, \SplFileInfo>
+ */
+class SortableIterator implements \IteratorAggregate
+{
+    public const SORT_BY_NONE = 0;
+    public const SORT_BY_NAME = 1;
+    public const SORT_BY_TYPE = 2;
+    public const SORT_BY_ACCESSED_TIME = 3;
+    public const SORT_BY_CHANGED_TIME = 4;
+    public const SORT_BY_MODIFIED_TIME = 5;
+    public const SORT_BY_NAME_NATURAL = 6;
+    public const SORT_BY_NAME_CASE_INSENSITIVE = 7;
+    public const SORT_BY_NAME_NATURAL_CASE_INSENSITIVE = 8;
+    public const SORT_BY_EXTENSION = 9;
+    public const SORT_BY_SIZE = 10;
+
+    /** @var \Traversable<string, \SplFileInfo> */
+    private \Traversable $iterator;
+    private \Closure|int $sort;
+
+    /**
+     * @param \Traversable<string, \SplFileInfo> $iterator
+     * @param int|callable                       $sort     The sort type (SORT_BY_NAME, SORT_BY_TYPE, or a PHP callback)
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function __construct(\Traversable $iterator, int|callable $sort, bool $reverseOrder = false)
+    {
+        $this->iterator = $iterator;
+        $order = $reverseOrder ? -1 : 1;
+
+        if (self::SORT_BY_NAME === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
+        } elseif (self::SORT_BY_NAME_NATURAL === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
+        } elseif (self::SORT_BY_NAME_CASE_INSENSITIVE === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strcasecmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
+        } elseif (self::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcasecmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
+        } elseif (self::SORT_BY_TYPE === $sort) {
+            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
+                if ($a->isDir() && $b->isFile()) {
+                    return -$order;
+                } elseif ($a->isFile() && $b->isDir()) {
+                    return $order;
+                }
+
+                return $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
+            };
+        } elseif (self::SORT_BY_ACCESSED_TIME === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getATime() - $b->getATime());
+        } elseif (self::SORT_BY_CHANGED_TIME === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getCTime() - $b->getCTime());
+        } elseif (self::SORT_BY_MODIFIED_TIME === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getMTime() - $b->getMTime());
+        } elseif (self::SORT_BY_EXTENSION === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcmp($a->getExtension(), $b->getExtension());
+        } elseif (self::SORT_BY_SIZE === $sort) {
+            $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getSize() - $b->getSize());
+        } elseif (self::SORT_BY_NONE === $sort) {
+            $this->sort = $order;
+        } elseif (\is_callable($sort)) {
+            $this->sort = $reverseOrder ? static fn (\SplFileInfo $a, \SplFileInfo $b) => -$sort($a, $b) : $sort(...);
+        } else {
+            throw new \InvalidArgumentException('The SortableIterator takes a PHP callable or a valid built-in sort algorithm as an argument.');
+        }
+    }
+
+    public function getIterator(): \Traversable
+    {
+        if (1 === $this->sort) {
+            return $this->iterator;
+        }
+
+        $array = iterator_to_array($this->iterator, true);
+
+        if (-1 === $this->sort) {
+            $array = array_reverse($array);
+        } else {
+            uasort($array, $this->sort);
+        }
+
+        return new \ArrayIterator($array);
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php	(revision 8542)
@@ -0,0 +1,173 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder\Iterator;
+
+use Symfony\Component\Finder\Gitignore;
+
+/**
+ * @extends \FilterIterator<string, \SplFileInfo>
+ */
+final class VcsIgnoredFilterIterator extends \FilterIterator
+{
+    private string $baseDir;
+
+    /**
+     * @var array<string, array{0: string, 1: string}|null>
+     */
+    private array $gitignoreFilesCache = [];
+
+    /**
+     * @var array<string, bool>
+     */
+    private array $ignoredPathsCache = [];
+
+    /**
+     * @param \Iterator<string, \SplFileInfo> $iterator
+     */
+    public function __construct(\Iterator $iterator, string $baseDir)
+    {
+        $this->baseDir = $this->normalizePath($baseDir);
+
+        foreach ([$this->baseDir, ...$this->parentDirectoriesUpwards($this->baseDir)] as $directory) {
+            if (@is_dir("{$directory}/.git")) {
+                $this->baseDir = $directory;
+                break;
+            }
+        }
+
+        parent::__construct($iterator);
+    }
+
+    public function accept(): bool
+    {
+        $file = $this->current();
+
+        $fileRealPath = $this->normalizePath($file->getRealPath());
+
+        return !$this->isIgnored($fileRealPath);
+    }
+
+    private function isIgnored(string $fileRealPath): bool
+    {
+        if (is_dir($fileRealPath) && !str_ends_with($fileRealPath, '/')) {
+            $fileRealPath .= '/';
+        }
+
+        if (isset($this->ignoredPathsCache[$fileRealPath])) {
+            return $this->ignoredPathsCache[$fileRealPath];
+        }
+
+        $ignored = false;
+
+        foreach ($this->parentDirectoriesDownwards($fileRealPath) as $parentDirectory) {
+            if ($this->isIgnored($parentDirectory)) {
+                // rules in ignored directories are ignored, no need to check further.
+                break;
+            }
+
+            $fileRelativePath = substr($fileRealPath, \strlen($parentDirectory) + 1);
+
+            if (null === $regexps = $this->readGitignoreFile("{$parentDirectory}/.gitignore")) {
+                continue;
+            }
+
+            [$exclusionRegex, $inclusionRegex] = $regexps;
+
+            if (preg_match($exclusionRegex, $fileRelativePath)) {
+                $ignored = true;
+
+                continue;
+            }
+
+            if (preg_match($inclusionRegex, $fileRelativePath)) {
+                $ignored = false;
+            }
+        }
+
+        return $this->ignoredPathsCache[$fileRealPath] = $ignored;
+    }
+
+    /**
+     * @return list<string>
+     */
+    private function parentDirectoriesUpwards(string $from): array
+    {
+        $parentDirectories = [];
+
+        $parentDirectory = $from;
+
+        while (true) {
+            $newParentDirectory = \dirname($parentDirectory);
+
+            // dirname('/') = '/'
+            if ($newParentDirectory === $parentDirectory) {
+                break;
+            }
+
+            $parentDirectories[] = $parentDirectory = $newParentDirectory;
+        }
+
+        return $parentDirectories;
+    }
+
+    private function parentDirectoriesUpTo(string $from, string $upTo): array
+    {
+        return array_filter(
+            $this->parentDirectoriesUpwards($from),
+            static fn (string $directory): bool => str_starts_with($directory, $upTo)
+        );
+    }
+
+    /**
+     * @return list<string>
+     */
+    private function parentDirectoriesDownwards(string $fileRealPath): array
+    {
+        return array_reverse(
+            $this->parentDirectoriesUpTo($fileRealPath, $this->baseDir)
+        );
+    }
+
+    /**
+     * @return array{0: string, 1: string}|null
+     */
+    private function readGitignoreFile(string $path): ?array
+    {
+        if (\array_key_exists($path, $this->gitignoreFilesCache)) {
+            return $this->gitignoreFilesCache[$path];
+        }
+
+        if (!file_exists($path)) {
+            return $this->gitignoreFilesCache[$path] = null;
+        }
+
+        if (!is_file($path) || !is_readable($path)) {
+            throw new \RuntimeException("The \"ignoreVCSIgnored\" option cannot be used by the Finder as the \"{$path}\" file is not readable.");
+        }
+
+        $gitignoreFileContent = file_get_contents($path);
+
+        return $this->gitignoreFilesCache[$path] = [
+            Gitignore::toRegex($gitignoreFileContent),
+            Gitignore::toRegexMatchingNegatedPatterns($gitignoreFileContent),
+        ];
+    }
+
+    private function normalizePath(string $path): string
+    {
+        if ('\\' === \DIRECTORY_SEPARATOR) {
+            return str_replace('\\', '/', $path);
+        }
+
+        return $path;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/LICENSE
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/LICENSE	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/LICENSE	(revision 8542)
@@ -0,0 +1,19 @@
+Copyright (c) 2004-present Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/README.md
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/README.md	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/README.md	(revision 8542)
@@ -0,0 +1,14 @@
+Finder Component
+================
+
+The Finder component finds files and directories via an intuitive fluent
+interface.
+
+Resources
+---------
+
+ * [Documentation](https://symfony.com/doc/current/components/finder.html)
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
+ * [Report issues](https://github.com/symfony/symfony/issues) and
+   [send Pull Requests](https://github.com/symfony/symfony/pulls)
+   in the [main Symfony repository](https://github.com/symfony/symfony)
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/SplFileInfo.php
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/SplFileInfo.php	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/SplFileInfo.php	(revision 8542)
@@ -0,0 +1,80 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Finder;
+
+/**
+ * Extends \SplFileInfo to support relative paths.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class SplFileInfo extends \SplFileInfo
+{
+    /**
+     * @param string $file             The file name
+     * @param string $relativePath     The relative path
+     * @param string $relativePathname The relative path name
+     */
+    public function __construct(
+        string $file,
+        private string $relativePath,
+        private string $relativePathname,
+    ) {
+        parent::__construct($file);
+    }
+
+    /**
+     * Returns the relative path.
+     *
+     * This path does not contain the file name.
+     */
+    public function getRelativePath(): string
+    {
+        return $this->relativePath;
+    }
+
+    /**
+     * Returns the relative path name.
+     *
+     * This path contains the file name.
+     */
+    public function getRelativePathname(): string
+    {
+        return $this->relativePathname;
+    }
+
+    public function getFilenameWithoutExtension(): string
+    {
+        $filename = $this->getFilename();
+
+        return pathinfo($filename, \PATHINFO_FILENAME);
+    }
+
+    /**
+     * Returns the contents of the file.
+     *
+     * @throws \RuntimeException
+     */
+    public function getContents(): string
+    {
+        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
+        try {
+            $content = file_get_contents($this->getPathname());
+        } finally {
+            restore_error_handler();
+        }
+        if (false === $content) {
+            throw new \RuntimeException($error);
+        }
+
+        return $content;
+    }
+}
Index: /mods/mod_rechnungen/lib/vendor/symfony/finder/composer.json
===================================================================
--- /mods/mod_rechnungen/lib/vendor/symfony/finder/composer.json	(revision 8542)
+++ /mods/mod_rechnungen/lib/vendor/symfony/finder/composer.json	(revision 8542)
@@ -0,0 +1,31 @@
+{
+    "name": "symfony/finder",
+    "type": "library",
+    "description": "Finds files and directories via an intuitive fluent interface",
+    "keywords": [],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=8.2"
+    },
+    "require-dev": {
+        "symfony/filesystem": "^6.4|^7.0"
+    },
+    "autoload": {
+        "psr-4": { "Symfony\\Component\\Finder\\": "" },
+        "exclude-from-classmap": [
+            "/Tests/"
+        ]
+    },
+    "minimum-stability": "dev"
+}
