1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) 2023 Huawei Device Co., Ltd.
3     Licensed under the Apache License, Version 2.0 (the "License");
4     you may not use this file except in compliance with the License.
5     You may obtain a copy of the License at
6
7         http://www.apache.org/licenses/LICENSE-2.0
8
9     Unless required by applicable law or agreed to in writing, software
10     distributed under the License is distributed on an "AS IS" BASIS,
11     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12     See the License for the specific language governing permissions and
13     limitations under the License.
14-->
15<Date_Time_rules>
16    <sub_rules_map>
17        <tag20002>
18            <tag20012>
19                <level>2</level>
20                <content>(([param_EEEE]|[param_E]),{0,1}[ ]*){0,1}([param_MMMM]|[param_MMM])[ ]+[regex_d]</content>
21                <content>[,.]{0,1}([ ]*[regex_y]\.{0,1}){0,1}</content>
22            </tag20012>
23            <tag40005>
24                <content>([param_MMMM]|[param_MMM])[ ]+[regex_d]\s*(-|देखि|থেকে|ngantos|tekan|na)\s*</content>
25                <content>[regex_d],{0,1}(\s*[regex_y])(\s*ж\.)?</content>
26            </tag40005>
27        </tag20002>
28        <tag20003>
29            <tag40003>
30                <content>(?&lt;![-/.])([regex_d])\.?\s*(-|–|~|देखि|থেকে)\s*([regex_d])(?!\3)(/|-|(\.</content>
31                <content>[ ]*))([regex_m])(\6([regex_y])((\.|\s*г\.|\s*ж\.)?))?(?![-/.])</content>
32            </tag40003>
33            <tag40004>
34                <content>(?&lt;![-/.])(([regex_y])\s*([-/]|\.)\s*)([regex_m])\s*\5\s*([regex_d])</content>
35                <content>\.?(?!\5)(\s*(-|–|~|देखि|থেকে)\s*)([regex_d])\.?(?![\.\d–~-])</content>
36            </tag40004>
37            <tag40006>
38                <content>(?&lt;![-/.])([regex_m])([-/]|\.[ ]{0,3})([regex_d])\.?\s*(?!\3)</content>
39                <content>(-|–|~|देखि|থেকে)\s*([regex_d])\.?(?![\.\d–~-])</content>
40            </tag40006>
41        </tag20003>
42        <tag20004>
43            <tag20014>
44                <level>1</level>
45                <content>(([param_EEEE]|[param_E]),{0,1}[ ]*)?[regex_d]\s*(/|-|\.)\s*([regex_m])</content>
46                <content>(\s*\4\s*[regex_y]((\.|\s*r\.)?)){0,1}</content>
47            </tag20014>
48            <tag20015>
49                <level>3</level>
50                <content>(([param_EEEE]|[param_E]),{0,1}[ ]*)?([regex_m])\s*(/|-|\.)\s*([regex_d])</content>
51                <content>(\s*\5\s*[regex_y](\.{0,1})){0,1}</content>
52            </tag20015>
53            <tag20016>
54                <level>2</level>
55                <content>(([param_EEEE]|[param_E]),{0,1}[ ]*)?[regex_y]\s*(/|-|\.)\s*([regex_m])</content>
56                <content>\s*\5\s*[regex_d]</content>
57            </tag20016>
58        </tag20004>
59    </sub_rules_map>
60    <sub_rules>
61        <taghms>
62            <content>(?&lt;!\d)(2[0-3]|[0-1]?[0-9])(([param_tmark])([0-5][0-9])){1,2}(?!\d)</content>
63        </taghms>
64        <tagampm>
65            <content>[param_am]|[param_pm]|\bAM\b|\bPM\b|\bnoon\b|\ba\.m\.|\bp\.m\.|[paramopt_mm]</content>
66        </tagampm>
67        <taghms2>
68            <content>(?&lt;!\d)(1[0-2]|0?[0-9])([:.]([0-5][0-9])){1,2}(?!\d)</content>
69        </taghms2>
70        <tagd>
71            <content>(?&lt;!\d)(30|31|[1-2][0-9]|0?[1-9])(?!\d)</content>
72        </tagd>
73        <tagy>
74            <content>(?&lt;!\d)((20){0,1}[0-9]{2})(?!\d)</content>
75        </tagy>
76        <tagm>
77            <content>(?&lt;!\d)(1[0-2]|0{0,1}[1-9])(?!\d)</content>
78        </tagm>
79        <tagzzzz>
80            <content>((GMT[+-])|\+)(2[0-3]|[0-1]?[0-9])(:?[0-5][0-9])?</content>
81        </tagzzzz>
82    </sub_rules>
83    <universe_rules>
84        <tag40001>
85            <content>[regex_d]\.?\s*([-–~]|देखि|থেকে|ngantos|tekan|na)\s*[regex_d](\.|([ ]+de[ ]+)|/)</content>
86            <content>{0,1}[ ]*([param_MMMM]|[param_MMM])(([ ]+de|\.|,|/|،){0,1}[ ]*[regex_y]</content>
87            <content>(\s*ж\.|\.|\s*r\.){0,1}){0,1}</content>
88        </tag40001>
89        <tag40002>
90            <content>([regex_y]\.{0,1}[ ]*)?([param_MMMM]|[param_MMM])[ ]+[regex_d](\.){0,1}\s*</content>
91            <content>([-–]|देखि|থেকে|ngantos|tekan|na)\s*[regex_d]</content>
92        </tag40002>
93        <tag20001>
94            <level>2</level>
95            <content>(([param_EEEE]|[param_E]),{0,1}[ ]*){0,1}[regex_d](\.|([ ]+de[ ]+)|/){0,1}[ ]*</content>
96            <content>([param_MMMM]|[param_MMM])(([ ]+de|\.|,|/){0,1}[ ]*[regex_y](\s*(года|г))?\.{0,1}){0,1}</content>
97        </tag20001>
98        <tag20002>
99            <content>(([param_EEEE]|[param_E])[\s\p{Punct}]*)?([param_MMMM]|[param_MMM])([\s\p{Punct}]|de)</content>
100            <content>+\d{1,2}(?!\d)\p{Punct}?(\s*-?\s*\d{1,2}(?!\d))?([\s\p{Punct}]*\d{2,4}(?!\d))?</content>
101        </tag20002>
102        <tag20003>
103            <content>(?&lt;![-/.a-zA-Z\d])\d{1,4}(\.?\s*[-~]+\s*\d{1,2})?(/|-|(\.[ ]*))\d{1,2}(?!\d)</content>
104            <content>((/|-|(\.[ ]*))\d{1,4}(?!\d)\.?)?(\s*[-~]+\s*\d{1,2}(\.|\s*г\.)?(?!\d))?</content>
105            <content>(?![-/.a-zA-Z\d])</content>
106        </tag20003>
107        <tag20004>
108            <content>(([param_EEEE]|[param_E])[\s\p{Punct}]*)?(?&lt;!\d)\d{1,4}\s*(/|-|\.)\s*\d{1,2}</content>
109            <content>(\s*\3\s*\d{1,4}(\s*г\.)?)?\.?(?!\d)(?!\3)</content>
110        </tag20004>
111        <tag20005>
112            <level>2</level>
113            <content>[regex_d][ ]+([param_MMMM]|[param_MMM])([ ]+(de[ ]+)?[regex_y]\.{0,1})?(\s*,)?</content>
114            <content>([ ]*([param_EEEE]|[param_E]))</content>
115        </tag20005>
116        <tag20006>
117            <level>4</level>
118            <content>(([param_EEEE]|[param_E2])(,[ ]*|[ ]+))[regex_d]\.?(?![.:]\d)</content>
119        </tag20006>
120        <tag20007>
121            <level>3</level>
122            <content>(?&lt;!月)([regex_d]|[param_digitDay])[号日일]</content>
123        </tag20007>
124        <tag20008>
125            <level>2</level>
126            <content>([regex_y]\.{0,1}[ ]*){0,1}([param_MMMM]|[param_MMMM])[ ]+[regex_d](\.,|\.|,){0,1}</content>
127            <content>([ ]*([param_EEEE]|[param_E])){0,1}</content>
128        </tag20008>
129        <tag20009>
130            <level>4</level>
131            <content>([param_EEEE]|[param_E2])</content>
132        </tag20009>
133        <tag20010>
134            <level>4</level>
135            <content>[param_days]</content>
136        </tag20010>
137        <tag20011>
138            <level>3</level>
139            <content>([param_nextweek]|[param_thisweek])</content>
140        </tag20011>
141        <tag20013>
142            <level>4</level>
143            <content>[regex_d](号|日|일)[ ]*[((]{0,1}([param_EEEE]|[param_E])[))]{0,1}</content>
144        </tag20013>
145        <tag30001>
146            <content>([regex_hms])(\s*\(?[regex_zzzz]\)?(?![.:]?\d)){0,1}</content>
147        </tag30001>
148    </universe_rules>
149    <filter_rules>
150        <tag1>
151            <content>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}</content>
152        </tag1>
153        <tag5>
154            <content>[0-9][-0-9.,\s]+[%‰%℃度]</content>
155        </tag5>
156        <tag6>
157            <content>(?&lt;!\d)[0-9]{1,2}\s*(-|\.|/)\s*[0-9]{1,2}(?!\d)</content>
158        </tag6>
159        <tag7>
160            <content>(?&lt;!\d)(1[0-9]{3}|[a-z][0-9]{1,4})\s*(-|\.|/)\s*[0-9]{1,2}\s*\2\s*[0-9]{1,2}</content>
161            <content>|[0-9]{1,2}\s*(-|\.|/)\s*[0-9]{1,2}\s*\1\s*(1[0-9]{3})</content>
162        </tag7>
163        <tag8>
164            <content>[0-9]{1,2}(-[0-9]{1,2}){4}</content>
165        </tag8>
166        <tag9>
167            <content>[0-9]+\s*(일|時|时|点|點|\s+d\.|a)</content>
168        </tag9>
169        <tag10>
170            <content>([0-9]+[param_digit])\s*(号|日|일|時|时|点|點|\s+d\.)</content>
171        </tag10>
172        <tag11>
173            <content>[param_filtertext]</content>
174        </tag11>
175        <tag12>
176            <content>((GMT[+-])|(UTC[+-]))(2[0-3]|[0-1]?[0-9])(:?[0-5][0-9])?</content>
177        </tag12>
178    </filter_rules>
179    <past_rules>
180        <tag100>
181            <content>[param_pastForward]</content>
182        </tag100>
183        <tag101>
184            <content>(?&lt;![0-9])1[0-9]{3}\s*[./-]</content>
185        </tag101>
186    </past_rules>
187    <default_locale>
188        <taglocale>
189            <content>en</content>
190        </taglocale>
191    </default_locale>
192    <pattern>
193        <tagrules>
194            <flag>False</flag>
195            <content>\[(param_\w+)\]</content>
196        </tagrules>
197        <tagoptrules>
198            <flag>False</flag>
199            <content>\[paramopt_(\w+)\]</content>
200        </tagoptrules>
201        <tagsubrules>
202            <flag>False</flag>
203            <content>\[regex_(\w+)\]</content>
204        </tagsubrules>
205        <tagdatetime>
206            <flag>True</flag>
207            <content>\s*(at|às|\u060C|u|kl\.|的|o|a\s+les|ve|la|pada|kl|στις|alle|jam)\s*</content>
208        </tagdatetime>
209        <tagperiod>
210            <flag>True</flag>
211            <content>\.?\s*(-{1,2}|~|起?至|到|au|–|—|~)\s*</content>
212        </tagperiod>
213        <tagbrackets>
214            <flag>True</flag>
215            <content>\s*\((.*?)\s*\)</content>
216        </tagbrackets>
217    </pattern>
218</Date_Time_rules>