PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp/nxml
Viewing File: /usr/share/emacs/24.3/lisp/nxml/rng-xsd.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:51:39 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/nxml/rng-xsd.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307#\207" [require rng-dt rng-util xsd-regexp put http://www\.w3\.org/2001/XMLSchema-datatypes rng-dt-compile rng-xsd-compile] 4) #@1020 Provides W3C XML Schema as a RELAX NG datatypes library. NAME is a symbol giving the local name of the datatype. PARAMS is a list of pairs (PARAM-NAME . PARAM-VALUE) where PARAM-NAME is a symbol giving the name of the parameter and PARAM-VALUE is a string giving its value. If NAME or PARAMS are invalid, it calls rng-dt-error passing it arguments in the same style as format; the value from rng-dt-error will be returned. Otherwise, it returns a list. The first member of the list is t if any string is a legal value for the datatype and nil otherwise. The second argument is a symbol; this symbol will be called as a function passing it a string followed by the remaining members of the list. The function must return an object representing the value of the datatype that was represented by the string, or nil if the string is not a representation of any value. The object returned can be any convenient non-nil value, provided that, if two strings represent the same value, the returned objects must be equal. (defalias 'rng-xsd-compile #[(name params) "\303N\211\204\304\305\"\202\306\n #)\207" [name convert params rng-xsd-convert rng-dt-error "There is no XSD datatype named %s" rng-xsd-compile1] 5 (#$ . 751)]) (defalias 'rng-xsd-compile1 #[(name params convert) "\204> \306\232\n\307=\203 \202<\n\310=\203\311 B\202<\n\307=\204;\312 >\2045\313 >\2045\314 >\203;\315 B\202< B\207@\211@ A\f\316>\203\207\317 @ AB\"\n\320N$\211%\204g\321\322 \"\202\203$\204s\321\323\f\"\202\203\324\nA\f\325N$% BBB#*\202\f\326>\203\302\327 !\n\330N&\211%\204\242\321\331 \"\202\276&\204\256\321\332\f\"\202\276\324\nA\f\325N&% BBB#*\202\f\333>\203\351\327 !\211'\204\330\321\334 \"\202\345\324\nA\f\325N' BB#)\202\f\335=\203\366\336\337\340\217\202\f\341>\203\321\342\f\"\202\321\343\f\"+\207" [params convert name param param-name param-value (identity) string normalizedString rng-xsd-replace-space identity rng-xsd-convert-any-uri rng-xsd-check-pattern rng-xsd-collapse-space (minExclusive maxExclusive minInclusive maxInclusive) apply rng-xsd-less-than rng-dt-error "Minimum value %s is not valid" "Values of type %s are not ordered" rng-xsd-compile1 rng-xsd-check (length minLength maxLength) rng-xsd-string-to-non-negative-integer rng-xsd-length "Length %s is not valid" "Values of type %s do not have a length" (fractionDigits totalDigits) "Number of digits %s is not valid" pattern err (byte-code "\304 A\305\306\307\n!\310Q BB#\207" [name params param-value convert rng-xsd-compile1 rng-xsd-check-pattern "\\`" xsdre-translate "\\'"] 7) ((xsdre-invalid-regexp (byte-code "\301\302A@\"\207" [err rng-dt-error "Invalid regular expression (%s)"] 3))) (enumeration whiteSpace) "Facet %s cannot be used in RELAX NG" "Unknown facet %s" less-than-fun limit length-fun n] 8]) (defalias 'rng-xsd-string-to-non-negative-integer #[(str) "\302!\205\303!\211\250\205 \304Y\205 )\207" [str n rng-xsd-convert-integer string-to-number 0] 3]) (defalias 'rng-xsd-collapse-space #[(str convert &rest args) "\303\304\305\306 \307\"\310#\nB\"\207" [convert str args apply mapconcat identity split-string "[ \n ]+" " "] 7]) (defalias 'rng-xsd-replace-space #[(str convert &rest args) "\305\306\307\310\311 \n#\211\203* \204\312 !\211\203* \n\313I\203*\nT\211\204 \206/ *\fB\"\207" [convert copied i str args apply 0 nil string-match "[ \n ]" copy-sequence 32] 6]) (byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\311#\210\300\312\302\313#\210\300\314\302\315#\210\300\316\302\317#\210\300\320\302\321#\210\300\322\302\323#\207" [put minExclusive rng-xsd-check rng-xsd-check-min-exclusive minInclusive rng-xsd-check-min-inclusive maxExclusive rng-xsd-check-max-exclusive maxInclusive rng-xsd-check-max-inclusive length rng-xsd-check-length minLength rng-xsd-check-min-length maxLength rng-xsd-check-max-length fractionDigits rng-xsd-check-fraction-digits totalDigits rng-xsd-check-total-digits] 4) (defalias 'rng-xsd-check-min-exclusive #[(str less-than-fun limit convert &rest args) "\306 \nB\"\211\205\f \"\205 )\207" [convert str args obj less-than-fun limit apply] 5]) (defalias 'rng-xsd-check-min-inclusive #[(str less-than-fun limit convert &rest args) "\306 \nB\"\211\205\f \"\204 \232\205 )\207" [convert str args obj less-than-fun limit apply] 5]) (defalias 'rng-xsd-check-max-exclusive #[(str less-than-fun limit convert &rest args) "\306 \nB\"\211\205\f \"\205 )\207" [convert str args obj less-than-fun limit apply] 5]) (defalias 'rng-xsd-check-max-inclusive #[(str less-than-fun limit convert &rest args) "\306 \nB\"\211\205\f \"\204 \232\205 )\207" [convert str args obj less-than-fun limit apply] 5]) (defalias 'rng-xsd-check-min-length #[(str length-fun limit convert &rest args) "\306 \nB\"\211\205\f ! Y\205 )\207" [convert str args obj length-fun limit apply] 5]) (defalias 'rng-xsd-check-max-length #[(str length-fun limit convert &rest args) "\306 \nB\"\211\205\f ! X\205 )\207" [convert str args obj length-fun limit apply] 5]) (defalias 'rng-xsd-check-length #[(str length-fun len convert &rest args) "\306 \nB\"\211\205\f ! U\205 )\207" [convert str args obj length-fun len apply] 5]) (defalias 'rng-xsd-check-fraction-digits #[(str n convert &rest args) "\305 \nB\"\211\205 \306HG\fX\205 )\207" [convert str args obj n apply 2] 5]) (defalias 'rng-xsd-check-total-digits #[(str n convert &rest args) "\305 \nB\"\211\205 \306HG \307HG\\\fX\205 )\207" [convert str args obj n apply 1 2] 5]) (defalias 'rng-xsd-check-pattern #[(str regexp convert &rest args) "\305\306 \n\")\205\307 \n\fB\"\207" [case-fold-search regexp str convert args nil string-match apply] 4]) (defalias 'rng-xsd-convert-boolean #[(string) "\301\302\"\205\303\224\203\304\207\305\207" [string string-match "\\`[ \n ]*\\(?:\\(true\\|1\\)\\|false\\|0\\)[ \n ]*\\'" 1 true false] 3]) #@417 Convert a string representing a decimal to an object representing it values. A decimal value is represented by a vector [SIGN INTEGER-DIGITS FRACTION-DIGITS] where SIGN is 1 or -1, INTEGER-DIGITS is a string containing zero or more digits, with no leading zero, and FRACTION-DIGITS is a string containing zero or more digits with no trailing digits. For example, -0021.0430 would be represented by [-1 "21" "043"]. (defalias 'rng-xsd-convert-decimal #[(string) "\303\304\"\205B\305\306\"\211\307\230?\205 \310\230?)\205B\305\311\"\312\305\313\"\314\232\2032\n\2032\315\2023\313\n\2068\310\305\316\"\206@\310#)\207" [string digits integer-digits string-match "\\`[ \n ]*\\([-+]\\)?\\(0*\\([1-9][0-9]*\\)?\\(\\.\\([0-9]*[1-9]\\)?0*\\)?\\)[ \n ]*\\'" match-string 2 "." "" 3 vector 1 "-" -1 5] 7 (#$ . 6720)]) (defalias 'rng-xsd-convert-integer #[(string) "\302\303\"\205'\304\305\"\306\304\307\"\310\232\203 \203\311\202\307 \206$\312\312#)\207" [string integer-digits string-match "\\`[ \n ]*\\([-+]\\)?\\(?:0*\\([1-9][0-9]*\\)\\|0+\\)[ \n ]*\\'" match-string 2 vector 1 "-" -1 ""] 4]) (defalias 'rng-xsd-decimal< #[(n1 n2) "\302 \"\303W\207" [n1 n2 rng-xsd-compare-decimal 0] 3]) #@64 Return a < 0, 0, > 0 according as n1 < n2, n1 = n2 or n1 > n2. (defalias 'rng-xsd-compare-decimal #[(n1 n2) "\306H\n\306H Z\211\306U\203S \307H\n\307H\n G \nG\f \fZ\211 \306=\203L \n\230\203D\310\311H\n\311H\"\202N\310 \n\"\202N -_\202T\f+\207" [n1 sign1 n2 sign2 sign int1 0 1 rng-xsd-strcmp 2 int2 len1 len2 lencmp] 6 (#$ . 7940)]) (defconst rng-xsd-float-regexp "\\`[ \n ]*\\(?:\\([-+]?\\(?:[0-9]+\\(?:\\.[0-9]*\\)?\\|\\.[0-9]+\\)\\(?:[eE][-+]?[0-9]+\\)?\\)\\|\\(INF\\)\\|\\(-INF\\)\\|\\(NaN\\)\\)[ \n ]*\\'") (defalias 'rng-xsd-convert-float #[(string) "\302 \"\204 \303\207\304\224\203\305\306\307\304 \"!!\207\310\224\203\311\207\312\224\203%\313\207\314\224\205+\315\207" [rng-xsd-float-regexp string string-match nil 1 float string-to-number match-string 2 1.0e+INF 3 -1.0e+INF 4 NaN] 5]) (defalias 'rng-xsd-float< #[(f1 f2) "\302=?\205 \302=?\205 W\207" [f1 f2 NaN] 2]) (defalias 'rng-xsd-convert-token #[(string regexp) "\302 \"\205 \303\304 \"\207" [regexp string string-match match-string 1] 3]) (defalias 'rng-xsd-convert-hex-binary #[(string) "\301\302\"\205\f\303\304\"\227\207" [string string-match "\\`[ \n ]*\\(\\(?:[0-9A-Fa-f][0-9A-Fa-f]\\)*\\)[ \n ]*\\'" match-string 1] 3]) (defalias 'rng-xsd-hex-binary-length #[(obj) "G\301\245\207" [obj 2] 2]) (defconst rng-xsd-base64-binary-regexp (byte-code "\304\305\306\307\310 \311 \312\313  \314 \315 \n \314 \314 \316\260,\207" [B64 B16 B04 S "[ \n]*" "[AQgw]" "[AEIMQUYcgkosw048]" "[A-Za-z0-9+/]" "\\`" "\\(?:\\(?:" "\\)\\{4\\}\\)*" "\\(?:" "=" "\\|" "\\)?\\'"] 25)) (defalias 'rng-xsd-convert-base64-binary #[(string) "\302 \"\205\303\304\305 \306\211%\207" [rng-xsd-base64-binary-regexp string string-match replace-regexp-in-string "[ \n]+" "" t] 6]) (defalias 'rng-xsd-base64-binary-length #[(obj) "G\302\245\303_\211\304V\203)\305\306O\307\230\203) \310\306O\311\230\203$\312\202%\313Z\202* )\207" [obj n 4 3 0 -1 nil "=" -2 "==" 2 1] 5]) (defalias 'rng-xsd-convert-any-uri #[(string) "\301\302\"\205\301\303\"\205\301\304\"\205\207" [string string-match "\\`\\(?:[^%]\\|%[0-9a-fA-F][0-9a-fA-F]\\)?*\\'" "\\`[^#]*\\(?:#[^#]*\\)?\\'" "\\`\\(?:[a-zA-Z][-+.A-Za-z0-9]*:.+\\|[^:]*\\(?:[#/?].*\\)?\\)\\'"] 3]) #@593 Returns a regular expression matching a ISO 8601 date/time. The template is a string with Y standing for years field, M standing for months, D standing for day of month, T standing for a literal T, t standing for time and - standing for a literal hyphen. A time zone is always allowed at the end. Regardless of the fields appearing in the template, the regular expression will have twelve groups matching the year sign, year, month, day of month, hours, minutes, integer seconds, fractional seconds (including leading period), time zone, time zone sign, time zone hours, time zone minutes. (defalias 'rng-xsd-make-date-time-regexp #[(template) "\306G\307\211\211\211\211 W\203lH\211\310=\203'\306\311\312\202` \313=\2039 \2043\314\314\315\202` \316=\203K \204E\317\317\315\202` \320=\203] \204W\321\322\323\202`\324 !\fBT\211\202\n\322W\203|\nT\325\fB\202l\326\fB\327\f\237B \306V\203\225 S\330\fB\202\205\331\332\f\".\207" [template c last first parts len 0 nil 89 1 "\\(-\\)?\\(\\(?:[1-9][0-9]*\\)?[0-9]\\{4\\}\\)" 77 2 "\\([0-9][0-9]\\)" 68 3 116 4 7 "\\([0-9][0-9]\\):\\([0-9][0-9]\\):\\([0-9][0-9]\\)\\(\\.[0-9]*\\)?" string "\\(\\'X\\)?" "\\(Z\\|\\([-+]\\)\\([0-9][0-9]\\):\\([0-5][0-9]\\)\\)?[ \n ]*\\'" "\\`[ \n ]*" "\\(X\\)?" apply concat i] 7 (#$ . 10207)]) (defconst rng-xsd-seconds-per-day 86400) (defconst rng-xsd-days-in-month [31 28 31 30 31 30 31 31 30 31 30 31]) (defalias 'rng-xsd-days-in-month #[(year month) "\303U\203\304 !\203\305\207\nSH\207" [month year rng-xsd-days-in-month 2 rng-xsd-leap-year-p 29] 2]) (defconst rng-xsd-months-to-days (byte-code "\304\305\306\"\307\211\305W\203! H\\\n I\210T\211\202\n\n+\207" [i total v rng-xsd-days-in-month make-vector 12 nil 0] 4)) #@490 Converts an XML Schema date/time to a list. Returns nil if invalid. REGEXP is a regexp for parsing the date time as returned by `rng-xsd-make-date-time-regexp'. The list has 4 members (HAS-TIME-ZONE DAY SECOND SECOND-FRACTION), where HAS-TIME-ZONE is t or nil depending on whether a time zone was specified, DAY is an integer giving a day number (with Jan 1 1AD being day 1), SECOND is the second within that day, and SECOND-FRACTION is a float giving the fractional part of the second. (defalias 'rng-xsd-convert-date-time #[(string regexp) "\306 \"\205Q\307\310 \"\307\311 \"\307\312 \"\307\313 \"\307\314 \"\307\315 \"\307\316 \"\307\317 \"\307\320 \"\307\321 \"\307\322 \"\307\323 \"#$%&'()\211*\203S\324\202T\310*)\203e*\325)!_\202f\326)(\203t\325(!\202u\310('\203\203\325'!\202\204\310'&\203\222\325&!\202\223\327&%\203\241\325%!\202\242\327%$\203\260\325$!\202\261\327$#\203\301\330\325#!!\202\302\331# \205\311\332\f\333\232\203\324\324\202\325\310 \203\340\325 !\202\341\327\n\203\354\325\n!\202\355\327(\310Y\205O(\323X\205O'\310Y\205O'\334)(\"X\205O&\335X\205O%\336X\205O$\337X\205O \335X\205O\n\336X\205O \340\341)('#\342&%$##E\342 \n\327#\f[_\"B.\f\207" [regexp string time-zone-minute time-zone-hour time-zone-sign has-time-zone string-match match-string 1 2 3 4 5 6 7 8 9 10 11 12 -1 string-to-number 2000 0 float 0.0 t "-" rng-xsd-days-in-month 23 59 60 rng-xsd-add-seconds rng-xsd-date-to-days rng-xsd-time-to-seconds second-fraction second minute hour day month year year-sign] 15 (#$ . 11984)]) (defalias 'rng-xsd-leap-year-p #[(year) "\301\246\302U\205\303\246\302U?\206\304\246\302U\207" [year 4 0 100 400] 2]) (defalias 'rng-xsd-time-to-seconds #[(hour minute second) "\303_ \\\303_\n\\\207" [hour minute second 60] 2]) (defconst rng-xsd-max-tz (byte-code "\300\301\302\211#\207" [rng-xsd-time-to-seconds 14 0] 4)) (defalias 'rng-xsd-date-time< #[(dt1 dt2) "@ @=\203\303A A\"\207@\203\303A\304 A\n[\"\"\207\303\304A\n\" A\"\207" [dt1 dt2 rng-xsd-max-tz rng-xsd-number-list< rng-xsd-add-seconds] 5]) (defalias 'rng-xsd-add-seconds #[(date offset) "@A@ \\\3068 \307W\203\fS \\\nE\2021 Y\203-\fT Z\nE\2021\f \nE+\207" [date offset fraction second day rng-xsd-seconds-per-day 2 0] 4]) (defalias 'rng-xsd-number-list< #[(numbers1 numbers2) "\203@ @U\203A A\202\205@ @W\207" [numbers1 numbers2] 2]) #@54 Return a unique day number where Jan 1 1 AD is day 1 (defalias 'rng-xsd-date-to-days #[(year month day) "\303V\203\304S!\305 \n#\\\207\304\306Z!\304\306!Z\307!\203$\310\202%\311\305 \n#Z\\[\207" [year month day 0 rng-xsd-days-in-years rng-xsd-day-number-in-year 3 rng-xsd-leap-year-p 366 365] 6 (#$ . 14442)]) #@64 The number of days in YEARS years where the first year is 1AD. (defalias 'rng-xsd-days-in-years #[(years) "\301\302_\303\245\304\245[\305\245$\207" [years + 365 4 100 400] 6 (#$ . 14768)]) (defalias 'rng-xsd-day-number-in-year #[(year month day) "\304\305U\203 \306\202 \307ZH\n\307V\203!\310 !\203!\305\202\"\306#\207" [month rng-xsd-months-to-days day year + 1 0 2 rng-xsd-leap-year-p] 5]) (defconst rng-xsd-duration-regexp "\\`[ \n]*\\(-\\)?P\\([0-9]+Y\\)?\\([0-9]+M\\)?\\([0-9]+D\\)?\\(?:T\\([0-9]+H\\)?\\([0-9]+M\\)?\\(\\([0-9]+\\(?:\\.[0-9]*\\)?\\|\\.[0-9]+\\)S\\)?\\)?[ \n]*\\'") (defalias 'rng-xsd-convert-duration #[(string) "\306 \"\205` \307\310O\211\311\230\206\n\312\230)?\205`\313\314\315\"\316\224\203'\307\202(\316\315 \314W\203U \317\\\224\211\203M \f\320  \317\\\225SO!_I\210) T\211\202- \321\322 \321H!I\210 +\207" [rng-xsd-duration-regexp string last i sign v string-match -1 nil "P" "T" make-vector 6 0 1 2 string-to-number 5 float start] 9]) (defconst rng-xsd-min-seconds-per-month (* rng-xsd-seconds-per-day 28)) (defalias 'rng-xsd-duration< #[(d1 d2) "\306!\306\n!\307!\307\n! W\203,\f Z\nW\203#\310\202H\311 \f $\202H V\203E \fZ\nW?\205H\311 \f $\202H\f W,\207" [d1 months1 d2 months2 seconds1 seconds2 rng-xsd-duration-months rng-xsd-duration-seconds t rng-xsd-months-seconds< rng-xsd-min-seconds-per-month] 5]) (defconst xsd-duration-reference-dates '((1696 . 9) (1697 . 2) (1903 . 3) (1903 . 7))) (defalias 'rng-xsd-months-seconds< #[(months1 seconds1 months2 seconds2) "\306 @\211@ A\307 \f #\n\\\307 \f #\f\\W\204%\310\n\205- A\211+\204\n*\207" [xsd-duration-reference-dates ref-dates ret ref-date ref-year ref-month t rng-xsd-month-seconds nil months1 seconds1 months2 seconds2] 6]) #@105 Return the seconds in a number of months starting on a reference date. Returns a floating point number. (defalias 'rng-xsd-month-seconds #[(months ref-year ref-month) "\304\305\306! \n#\307 !\310W\203\311\202\312#\207" [months ref-year ref-month rng-xsd-seconds-per-day * rng-xsd-month-days abs float 0 -1.0 1.0] 5 (#$ . 16561)]) (defconst rng-xsd-years-per-gregorian-cycle 400) (defconst rng-xsd-months-per-gregorian-cycle (* rng-xsd-years-per-gregorian-cycle 12)) (defconst rng-xsd-leap-years-per-gregorian-cycle 97) (defconst rng-xsd-days-per-gregorian-cycle (byte-code "\302_ \\\207" [rng-xsd-years-per-gregorian-cycle rng-xsd-leap-years-per-gregorian-cycle 365] 2)) #@101 Return the days in a number of months starting on a reference date. MONTHS must be an integer >= 0. (defalias 'rng-xsd-month-days #[(months ref-year ref-month) "\306\307 \n\"\211\306V\203+\310 \f\"\\\f\311=\203! T\312\202#\fT S\211\202 \n\245 _\\)\207" [days months rng-xsd-months-per-gregorian-cycle ref-year ref-month rng-xsd-days-per-gregorian-cycle 0 mod rng-xsd-days-in-month 12 1] 4 (#$ . 17246)]) (defalias 'rng-xsd-duration-months #[(d) "\301H\302_\303H\\\207" [d 0 12 1] 3]) (defalias 'rng-xsd-duration-seconds #[(d) "\301H\302_\303H\\\304_\305H\\\306_\307H\\\207" [d 2 24.0 3 60.0 4 60.0 5] 3]) (defalias 'rng-xsd-convert-qname #[(string) "\306\307\"\205:\310\224\311 @ A\"\211\2032\312\224 O\313\f\nA\"\211\205. A T\312\225OB*\2029\n@\314\312\"B*\207" [string rng-dt-namespace-context-getter context colon prefix binding string-match "\\`[ \n ]*\\([_[:alpha:]][-._[:alnum:]]*\\(:[_[:alpha:]][-._[:alnum:]]*\\)?\\)[ \n ]*\\'" 2 apply 1 assoc match-string] 5]) (defalias 'rng-xsd-convert-list #[(string convert &rest args) "\306\307\"\211\n\203)\310 \n@\fB\"\211\203!\n \240\210\nA\202%\311\211)\202 *\207" [string tokens tem convert args obj split-string "[ \n ]+" apply nil] 5]) (defalias 'rng-xsd-strcmp #[(s1 s2) " \230\203\302\207 \231\203\303\207\304\207" [s1 s2 0 -1 1] 2]) (byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307#\210\300\310\302\311#\210\300\310\304\305#\210\300\310\306\307#\210\300\312\302\313#\210\300\312\304\305#\210\300\312\306\307#\210\300\314\302\315#\210\300\314\304\316#\210\300\317\302\320#\210\300\317\304\321#\210\300\322\302\323#\210\300\324\302\325#\210\300\324\326\327#\210\300\330\302\331#\210\300\330\326\327#\210\300\332\302\333#\210\300\332\326\334#\210\300\335\302\336#\210\300\335\326\334#\207" [put string rng-xsd-convert (identity) rng-xsd-length length rng-xsd-matches-anything t normalizedString (identity) token (identity) hexBinary (rng-xsd-convert-hex-binary) rng-xsd-hex-binary-length base64Binary (rng-xsd-convert-base64-binary) rng-xsd-base64-binary-length boolean (rng-xsd-convert-boolean) float (rng-xsd-convert-float) rng-xsd-less-than rng-xsd-float< double (rng-xsd-convert-float) decimal (rng-xsd-convert-decimal) rng-xsd-decimal< integer (rng-xsd-convert-integer)] 4) (defalias 'rng-xsd-def-integer-type #[(name min max) "\303\304\305#\210\303\306\307\310\311 \205\312 BC\n\205\313\nBC\"\"A#\207" [name min max put rng-xsd-less-than rng-xsd-decimal< rng-xsd-convert rng-xsd-compile integer append minInclusive maxInclusive] 9]) (defalias 'rng-xsd-def-token-type #[(name regexp) "\302\303\304\305 \306QD#\210\302\307\310#\207" [name regexp put rng-xsd-convert rng-xsd-convert-token "\\`[ \n ]*\\(" "\\)[ \n ]*\\'" rng-xsd-length length] 7]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\311\312\313\305\313N#\210\311\312\314\315#\210\311\316\313\305\313N#\210\311\316\314\315#\210\311\317\313\305\313N#\210\311\317\314\315#\207" [rng-xsd-def-token-type NMTOKEN "[-.:_[:alnum:]]+" Name "[:_[:alpha:]][-.:_[:alnum:]]*" NCName "[_[:alpha:]][-._[:alnum:]]*" language "[a-zA-Z]\\{1,8\\}\\(?:-[a-zA-Z0-9]\\{1,8\\}\\)*" put ENTITY rng-xsd-convert rng-xsd-length length ID IDREF] 5) (defalias 'rng-xsd-def-list-type #[(name member-name) "\302\303\304 \303NB#\210\302\305\306#\207" [name member-name put rng-xsd-convert rng-xsd-convert-list rng-xsd-length length] 6]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\307\310\311\312#\210\307\310\313\314#\210\307\315\311\316#\210\307\317\311\320#\207" [rng-xsd-def-list-type NMTOKENS NMTOKEN IDREFS IDREF ENTITIES ENTITY put anyURI rng-xsd-convert (rng-xsd-convert-any-uri) rng-xsd-length length QName (rng-xsd-convert-qname) NOTATION (rng-xsd-convert-qname)] 4) (defconst rng-xsd-long-max "9223372036854775807") (defconst rng-xsd-long-min "-9223372036854775808") (defconst rng-xsd-int-max "2147483647") (defconst rng-xsd-int-min "-2147483648") (defconst rng-xsd-short-max "32767") (defconst rng-xsd-short-min "-32768") (defconst rng-xsd-byte-max "127") (defconst rng-xsd-byte-min "-128") (defconst rng-xsd-unsigned-long-max "18446744073709551615") (defconst rng-xsd-unsigned-int-max "4294967295") (defconst rng-xsd-unsigned-short-max "65535") (defconst rng-xsd-unsigned-byte-max "255") (byte-code "\306\307\310\311#\210\306\312\313\311#\210\306\314\311\310#\210\306\315\311\316#\210\306\317 #\210\306\320\n #\210\306\321\f #\210\306\322#\210\306\323\310#\210\306\324\310#\210\306\325\310#\210\306\326\310#\207" [rng-xsd-long-min rng-xsd-long-max rng-xsd-int-min rng-xsd-int-max rng-xsd-short-min rng-xsd-short-max rng-xsd-def-integer-type nonNegativeInteger "0" nil positiveInteger "1" nonPositiveInteger negativeInteger "-1" long int short byte unsignedLong unsignedInt unsignedShort unsignedByte rng-xsd-byte-min rng-xsd-byte-max rng-xsd-unsigned-long-max rng-xsd-unsigned-int-max rng-xsd-unsigned-short-max rng-xsd-unsigned-byte-max] 4) (defalias 'rng-xsd-def-date-time-type #[(name template) "\302\303\304\305 !D#\210\302\306\307#\207" [name template put rng-xsd-convert rng-xsd-convert-date-time rng-xsd-make-date-time-regexp rng-xsd-less-than rng-xsd-date-time<] 6]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\210\300\315\316\"\210\300\317\320\"\210\321\322\323\324#\210\321\322\325\326#\210\327\330!\207" [rng-xsd-def-date-time-type dateTime "Y-M-DTt" time "t" date "Y-M-D" gYearMonth "Y-M" gYear "Y" gMonthDay "--M-D" gDay "---D" gMonth "--M" put duration rng-xsd-convert (rng-xsd-convert-duration) rng-xsd-less-than rng-xsd-duration< provide rng-xsd] 4)