From rsalz@uunet.uu.net Tue Nov 22 11:01:33 1994
Received: from rodan.UU.NET (rodan.UU.NET [153.39.128.10]) by postman.osf.org (8.6.9/8.6.x) with ESMTP
	id MAA12995 for <rsalz@osf.org>; Tue, 22 Nov 1994 12:01:32 -0400
Received: by rodan.UU.NET 
	id QQxrdg14157; Tue, 22 Nov 1994 11:01:19 -0500
Date: Tue, 22 Nov 1994 11:01:19 -0500
From: rsalz@uunet.uu.net (Rich Salz)
Message-Id: <QQxrdg14157.199411221601@rodan.UU.NET>
To: rsalz@osf.org
Subject: expire.ctl.ctl
Status: R

>From dillon@apollo.west.oic.com Mon Nov 21 15:30:34 1994
Received: from relay1.UU.NET by rodan.UU.NET with SMTP 
	id QQxrag10624; Mon, 21 Nov 1994 15:30:34 -0500
Received: from apollo.west.oic.com by relay1.UU.NET with SMTP 
	id QQxrag17763; Mon, 21 Nov 1994 15:30:17 -0500
Received: (from dillon@localhost) by apollo.west.oic.com (8.6.8.1/8.6.6) id MAA21835; Mon, 21 Nov 1994 12:29:52 -0801
Date: Mon, 21 Nov 1994 12:29:52 -0801
From: Matthew Dillon <dillon@apollo.west.oic.com>
Message-Id: <199411212030.MAA21835@apollo.west.oic.com>
To: rsalz@uunet.uu.net
Subject: Re:  INN is great, bug fix for BSDI
Status: R

:thanks for the kind words; yeah msync() will be in 1.5
:

    You will appreciate this.  This is our news spool:

news1:/home/news# df -i spool/news
Filesystem  1K-blocks    Used   Avail Capacity iused   ifree  %iused  Mounted on
/dev/sd1h     8525499 4300832 4139412    51% 1202620 1579458    43%   /home/news/spool/news
news1:/home/news# 

    One problem we are having is in running expire.  The history file is huge:

    -rw-rw-r--  1 news  bin  118439911 Nov 21 12:24 history
    -rw-rw-r--  1 news  bin        125 Nov 21 12:24 history.dir
    -rw-rw-r--  1 news  bin   17552020 Nov 21 11:46 history.pag

    It takes 30-40 minutes to rewrite it on a loaded system, and tends to
    slow down news propogation while its doing it.  Not a big deal, but
    it means I can't run expire more then 4 times a day best case without
    getting behind on my feeds.  I expect the file to grow to 200MB by the
    time the spool area fills up.

    -

    Oh, while I'm at it, I also wrote a cute program that builds the 
    expire.ctl file dynamically based on available space.   Feel free
    to include this in the dist (or not) as you please.

    Basically, the expirectl programs determines the amount of disk blocks
    and inodes free in the spool and creates a new expire.ctl file based
    on an expire.ctl.ctl template.  The template specifies expiration times
    as a fraction of nominal.  expirectl adjusts the nominal expiration
    up or down based on available disk space.

    The idea is to make expiration as hands off as possible.  I tested
    it on a smaller spool and it appeared to work fine.  Currently it
    only works for single-partition news spools tho.  The above spool
    will not really exercise the program for another 14 days or so :-).

						-Matt

    Matthew Dillon		dillon@apollo.west.oic.com
    1005 Apollo Way		ham: KC6LVW (no mail drop)
    Incline Village, NV. 89451	Obvious Implementations Corporation
    USA 			Sandel-Avery Engineering
    [always include a portion of the original email in any response!]

begin 660 expirectl.tar
M97AP:7)E8W1L+F,`````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````#$P,#<W,"``("`R,#`P(``@(#(P,#`@`"`@("`@(#$Q-34S
M("`U-C8T,C`P,C$R("`Q,C(V,@`@,```````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````````!U<W1A<B`@`&1I;&QO
M;@``````````````````````````````````9&EL;&]N````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M```````````````````````*+RH*("H@15A025)%0U1,+D,*("H*("H@97AP
M:7)E8W1L"B`J+PH*(VEN8VQU9&4@/'-Y<R]T>7!E<RYH/@HC:6YC;'5D92`\
M<WES+VUO=6YT+F@^"B-I;F-L=61E(#QE<G)N;RYH/@HC:6YC;'5D92`\<W1D
M:6\N:#X*(VEN8VQU9&4@/'-T9&QI8BYH/@HC:6YC;'5D92`\<W1R:6YG+F@^
M"@HC9&5F:6YE($584$E215]#5$Q?1$E2"2(O:&]M92]N97=S(@HC9&5F:6YE
M($Y%5U-?4U!/3TP)(B]H;VUE+VYE=W,O<W!O;VPO;F5W<R\N(@H*(V1E9FEN
M92!%6%!)4D5?1$%94PE%6%!)4D5?0U1,7T1)4B`B+V5X<&ER92YD87ES(@HC
M9&5F:6YE($584$E215]#5$P)15A025)%7T-43%]$25(@(B]E>'!I<F4N8W1L
M(@HC9&5F:6YE($584$E215]#5$Q?0U1,"4584$E215]#5$Q?1$E2("(O97AP
M:7)E+F-T;"YC=&PB"@IV;VED"FUA:6XH:6YT(&%C+"!C:&%R("HJ878I"GL*
M("`@('-T<G5C="!S=&%T9G,@<V9S.PH@("`@;&]N9R!M:6Y&<F5E(#T@,3`P
M("H@,3`R-"`J(#$P,C0["B`@("!L;VYG(&UI;DE&<F5E(#T@,C`@*B`Q,#(T
M.PH@("`@;&]N9R!E>'!I<F5$87ES(#T@,CL*("`@('1I;65?="!E>'!I<F5)
M;F-4:6UE(#T@=&EM92A.54Q,*2`M(#(T("H@-C`@*B`V,#L*("`@(&EN="!M
M;V1I9FEE9"`](#`["B`@("!I;G0@=F5R8F]S92`](#`["@H@("`@+RH*("`@
M("`J(&]P=&EO;G,*("`@("`J+PH*("`@('L*"6EN="!I.PH*"69O<B`H:2`]
M(#$[(&D@/"!A8SL@*RMI*2!["@D@("`@8VAA<B`J<'1R(#T@879;:5T["@H)
M("`@(&EF("@J<'1R(#T]("<M)RD@>PH)"7!T<B`K/2`R.PH)"7-W:71C:"AP
M=');+3%=*2!["@D)8V%S92`G=B<Z"@D)("`@('9E<F)O<V4@/2`Q.PH)"2`@
M("!B<F5A:SL*"0EC87-E("=F)SH*"0D@("`@;6]D:69I960@/2`Q.PH)"2`@
M("!B<F5A:SL*"0EC87-E("=N)SH*"0D@("`@;6]D:69I960@/2`M,3L*"0D@
M("`@8G)E86L["@D)8V%S92`G8B<Z"@D)("`@(&UI;D9R964@/2!S=')T;VPH
M*"@J<'1R*2`_('!T<B`Z(&%V6RLK:5TI+"`F<'1R+"`P*3L*"0D@("`@:68@
M*"IP='(@/3T@)VLG*0H)"0EM:6Y&<F5E("H](#$P,C0["@D)("`@(&EF("@J
M<'1R(#T]("=M)RD*"0D);6EN1G)E92`J/2`Q,#(T("H@,3`R-#L*"0D@("`@
M8G)E86L["@D)8V%S92`G:2<Z"@D)("`@(&UI;DE&<F5E(#T@<W1R=&]L*"@H
M*G!T<BD@/R!P='(@.B!A=ELK*VE=*2P@3E5,3"P@,"D["@D)("`@(&EF("@J
M<'1R(#T]("=K)RD*"0D);6EN249R964@*CT@,3`R-#L*"0D@("`@:68@*"IP
M='(@/3T@)VTG*0H)"0EM:6Y)1G)E92`J/2`Q,#(T("H@,3`R-#L*"0D@("`@
M8G)E86L["@D)9&5F875L=#H*"0D@("`@9G!R:6YT9BAS=&1E<G(L(")B860@
M;W!T:6]N.B`E<UQN(BP@<'1R("T@,BD["@D)("`@(&5X:70H,2D["@D)?0H)
M("`@('T@96QS92!["@D)9G!R:6YT9BAS=&1E<G(L(")B860@;W!T:6]N.B`E
M<UQN(BP@<'1R*3L*"0EE>&ET*#$I.PH)("`@('T*"7T*("`@('T*"B`@("!I
M9B`H<W1A=&9S*"(O:&]M92]N97=S+W-P;V]L+VYE=W,O+B(L("9S9G,I("$]
M(#`I('L*"69P<FEN=&8H<W1D97)R+"`B97AP:7)E8W1L.B!C;W5L9&XG="!F
M<W-T870@+VAO;64O;F5W<R]S<&]O;"]N97=S+RY<;B(I.PH)97AI="@Q*3L*
M("`@('T*"B`@("`O*@H@("`@("H@3&]A9"`O:&]M92]N97=S+V5X<&ER92YD
M87ES"B`@("`@*B\*("`@(`H@("`@>PH)1DE,12`J9FD["@EC:&%R(&)U9ELR
M-39=.PH*"6EF("@H9FD@/2!F;W!E;BA%6%!)4D5?1$%94RP@(G(B*2D@(3T@
M3E5,3"D@>PH)("`@('=H:6QE("AF9V5T<RAB=68L('-I>F5O9BAB=68I+"!F
M:2D@(3T@3E5,3"D@>PH)"6EF("AS=')N8VUP*&)U9BP@(G1I;64B+"`T*2`]
M/2`P*2!["@D)("`@(&5X<&ER94EN8U1I;64@/2!S=')T;VPH8G5F("L@-"P@
M3E5,3"P@,"D["@D)?2!E;'-E(&EF("AS=')N8VUP*&)U9BP@(F1A>7,B+"`T
M*2`]/2`P*2!["@D)("`@(&5X<&ER941A>7,@/2!S=')T;VPH8G5F("L@-"P@
M3E5,3"P@,"D["@D)?0H)("`@('T*"2`@("!F8VQO<V4H9FDI.PH)?2!E;'-E
M('L*"2`@("!I9B`H;6]D:69I960@/CT@,"D*"0EM;V1I9FEE9"`](#$["@D@
M("`@<')I;G1F*")C<F5A=&EN9R`E<UQN(BP@15A025)%7T1!65,I.PH)?0H@
M("`@?0H*("`@("\J"B`@("`@*B!P<FEN="!S=&%T=7,*("`@("`J+PH*("`@
M(&EF("AV97)B;W-E*2!["@EP<FEN=&8H(G-P;V]L.B`E-"XR;&9-("\@)3,N
M,FQF2VEN;V1E(&9R965<;B(L"@D@("`@*&1O=6)L92ES9G,N9E]F<VEZ92`J
M("AD;W5B;&4I<V9S+F9?8F%V86EL("\@*#$P,C0N,"`J(#$P,C0N,"DL"@D@
M("`@*&1O=6)L92ES9G,N9E]F9G)E92`O(#$P,C0N,`H)*3L*"7!R:6YT9B@B
M9&5C<G,Z("4T+C)L9DT@+R`E,RXR;&9+:6YO9&5<;B(L"@D@("`@*&1O=6)L
M92DH;6EN1G)E92D@+R`H9&]U8FQE*2@Q,#(T*C$P,C0I+`H)("`@("AD;W5B
M;&4I*&UI;DE&<F5E*2`O("AD;W5B;&4I*#$P,C0I"@DI.PH)<')I;G1F*")I
M;F-R<SH@)30N,FQF32`O("4S+C)L9DMI;F]D95QN(BP*"2`@("`H9&]U8FQE
M*2AM:6Y&<F5E("H@,BD@+R`H9&]U8FQE*2@Q,#(T*C$P,C0I+`H)("`@("AD
M;W5B;&4I*&UI;DE&<F5E("H@,BD@+R`H9&]U8FQE*2@Q,#(T*0H)*3L*("`@
M('T*"B`@("`O*@H@("`@("H@0VAE8VL@;&EM:71S+"!U<&1A=&4@87,@87!P
M<F]P<FEA=&4*("`@("`J+PH*("`@('L*"61O=6)L92!B>71E<SL*"6QO;F<@
M:6YO9&5S.PH*"6)Y=&5S(#T@*&1O=6)L92ES9G,N9E]F<VEZ92`J("AD;W5B
M;&4I<V9S+F9?8F%V86EL.PH):6YO9&5S(#T@<V9S+F9?9F9R964["@H):68@
M*&)Y=&5S(#P@*&1O=6)L92EM:6Y&<F5E('Q\(&EN;V1E<R`\(&UI;DE&<F5E
M*2!["@D@("`@:68@*"TM97AP:7)E1&%Y<R`\/2`P*2!["@D)97AP:7)E1&%Y
M<R`](#$["@D)97AP:7)E26YC5&EM92`]('1I;64H3E5,3"D@+2`R-"`J(#8P
M("H@-C`["@D@("`@?0H)("`@(&EF("AM;V1I9FEE9"`^/2`P*0H)"6UO9&EF
M:65D(#T@,3L*"2`@("!P<FEN=&8H(F1E8W)E;65N="!E>'!I<F%T:6]N('1O
M("5D(&1A>7-<;B(L(&5X<&ER941A>7,I.PH)?2!E;'-E(&EF("AB>71E<R`^
M/2`H9&]U8FQE*6UI;D9R964@*B`R+C`@)B8@:6YO9&5S(#X](&UI;DE&<F5E
M("H@,BD@>PH)("`@(&QO;F<@9'0@/2`H;&]N9RDH=&EM92A.54Q,*2`M(&5X
M<&ER94EN8U1I;64I.PH*"2`@("!I9B`H9'0@/CT@-C`@*B`V,"`J(#(T('Q\
M(&1T(#P@+38P*2!["@D)*RME>'!I<F5$87ES.PH)"65X<&ER94EN8U1I;64@
M/2!T:6UE*$Y53$PI.PH)"6EF("AM;V1I9FEE9"`^/2`P*0H)"2`@("!M;V1I
M9FEE9"`](#$["@D)<')I;G1F*")I;F-R96UE;G0@97AP:7)A=&EO;B!T;R`E
M9"!D87ES7&XB+"!E>'!I<F5$87ES*3L*"2`@("!](&5L<V4@>PH)"7!R:6YT
M9B@B=VEL;"!I;F-R96UE;G0@97AP:7)A=&EO;B!L871E<EQN(BD["@D@("`@
M?0H)?2!E;'-E(&EF("AV97)B;W-E*2!["@D@("`@<')I;G1F*")E>'!I<F%T
M:6]N('5N8VAA;F=E9#H@)61<;B(L(&5X<&ER941A>7,I.PH)?0H@("`@?0H*
M("`@("\J"B`@("`@*B!7<FET92!%6%!)4D5?0U1,(&9I;&4@9G)O;2!%6%!)
M4D5?0U1,7T-43"!T96UP;&%T90H@("`@("HO"@H@("`@:68@*&UO9&EF:65D
M(#X@,"D@>PH)1DE,12`J9FD["@E&24Q%("IF;SL*"@EI9B`H*&9I(#T@9F]P
M96XH15A025)%7T-43%]#5$PL(")R(BDI("$]($Y53$PI('L*"2`@("!I9B`H
M*&9O(#T@9F]P96XH15A025)%7T-43"`B+G1M<"(L(")W(BDI("$]($Y53$PI
M('L*"0EC:&%R('-B=69;,C`T.%T["@D)8VAA<B!D8G5F6S0P.39=.PH*"0EW
M:&EL92`H9F=E=',H<V)U9BP@<VEZ96]F*'-B=68I+"!F:2D@(3T@3E5,3"D@
M>PH)"2`@("!C:&%R("IB87-E(#T@<V)U9CL*"0D@("`@8VAA<B`J<W!T<CL*
M"0D@("`@8VAA<B`J9'!T<B`](&1B=68["@H)"2`@("!W:&EL92`H*'-P='(@
M/2!S=')C:'(H8F%S92P@)ULG*2D@(3T@3E5,3"D@>PH)"0ED;W5B;&4@9#L*
M"0D):6YT(&T@/2`P.PH*"0D)8F-O<'DH8F%S92P@9'!T<BP@<W!T<B`M(&)A
M<V4I.PH)"0ED<'1R("L]('-P='(@+2!B87-E.PH)"0EB87-E(#T@<W!T<CL*
M"@D)"60@/2!S=')T;V0H<W!T<B`K(#$L("9S<'1R*3L*"0D):68@*"IS<'1R
M(#T]("<O)RD*"0D)("`@(&T@/2!S=')T;VPH<W!T<B`K(#$L("9S<'1R+"`P
M*3L*"0D):68@*"IS<'1R(#T]("==)RD@>PH)"0D@("`@;&]N9R!V(#T@*&QO
M;F<I*"AD;W5B;&4I97AP:7)E1&%Y<R`J(&0@*R`P+C4I.PH)"0D@("`@:68@
M*'8@/"`Q*0H)"0D)=B`](#$["@D)"2`@("!I9B`H=B`\(&TI"@D)"0EV(#T@
M;3L*"0D)("`@('-P<FEN=&8H9'!T<BP@(B5D(BP@=BD["@D)"2`@("!D<'1R
M("L]('-T<FQE;BAD<'1R*3L*"0D)("`@("LK<W!T<CL*"0D)?0H)"0EB87-E
M(#T@<W!T<CL*"0D@("`@?0H)"2`@("!S=')C<'DH9'!T<BP@8F%S92D["@D)
M("`@(&9P=71S*&1B=68L(&9O*3L*"0E]"@D)9F-L;W-E*&9O*3L*"0EI9B`H
M<F5N86UE*$584$E215]#5$P@(BYT;7`B+"!%6%!)4D5?0U1,*2`A/2`P*2![
M"@D)("`@(&9P<FEN=&8H<W1D97)R+"`B<F5N86UE*"5S+"5S*3H@)7-<;B(L
M"@D)"4584$E215]#5$P@(BYT;7`B+`H)"0E%6%!)4D5?0U1,+`H)"0ES=')E
M<G)O<BAE<G)N;RD*"0D@("`@*3L*"0E]"@D@("`@?0H)("`@(&9C;&]S92AF
M:2D["@E]"B`@("!]"@H@("`@+RH*("`@("`J(%=R:71E($584$E215]$05E3
M(&9I;&4*("`@("`J+PH@("`@"B`@("!I9B`H;6]D:69I960@/B`P*2!["@E&
M24Q%("IF;SL*"@EI9B`H*&9O(#T@9F]P96XH15A025)%7T1!65,L(")W(BDI
M("$]($Y53$PI('L*"2`@("!F<')I;G1F*&9O+"`B=&EM92`P>"4P.&QX7&XB
M+"!E>'!I<F5);F-4:6UE*3L*"2`@("!F<')I;G1F*&9O+"`B9&%Y<R`E9%QN
M(BP@97AP:7)E1&%Y<RD["@D@("`@9F-L;W-E*&9O*3L*"7T@96QS92!["@D@
M("`@9G!R:6YT9BAS=&1E<G(L(")U;F%B;&4@=&\@8W)E871E("5S7&XB+"!%
M6%!)4D5?1$%94RD["@E]"B`@("!]"B`@("!E>&ET*#`I.PI]"@H`````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````&5X<&ER92YC=&PN8W1L````````````````````````````````
M````````````````````````````````````````````````````````````
M```````````````````````Q,#`V-#`@`"`@,C`P,"``("`R,#`P(``@("`@
M("`@,C$W,2`@-38V-#(P,#(T-"`@,3(V-34`(#``````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````=7-T87(@
M(`!D:6QL;VX``````````````````````````````````&1I;&QO;@``````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````(R!%6%!)4D4N0U1,+D-43"`H15A0
M25)%+D-43"!'14Y%4D%4140@1E)/32!%6%!)4D4N0U1,+D-43"`A(2$I"B,*
M(R!4:&4@97AP:7)E+F-T;"!F:6QE(&ES(&=E;F5R871E9"!B>2!T:&4@97AP
M:7)E8W1L('!R;V=R86T@9G)O;2!T:&4*(R!E>'!I<F4N8W1L+F-T;"!F:6QE
M+B`@5&AE(&5X<&ER96-T;"!P<F]G<F%M(&-A;&-U;&%T97,@=&AE('!R;W!E
M<@HC(&5X<&ER871I;VX@8F%S960@;VX@=&AE(&YU;6)E<B!O9B!F<F5E(&EN
M;V1E<R!A;F0@9G)E92!B>71E<R!A=F%I;&%B;&4N"B,*(R!4:&ES(&9I;&4@
M:7,@97AA8W1L>2!E>'!I<F4N8W1L(&)U="!W:71H('1H92!M=6QT:7!L:65R
M(%M.72!R97!L86-E9"!B>2`*(R!A(&-A;&-U;&%T960@=F%L=64L('=H97)E
M(&$@;75L=&EP;&EE<B!O9B`G,2<@;F]M:6YA;&QY(&9I;&QS('1H92!W:&]L
M90HC(&1I<VLN"B,*(R!!;GD@9FEE;&0@6TY=(&ES('-U8G-T:71U=&5D(&%F
M=&5R(&)E:6YG(&UU;'1I<&QI960@8GD@=&AE(&5X<&ER871I;VX*(R!T:6UE
M("AI;B!D87ES*2X@($$@:6YT96=E<B!M:6YI;75M(&-A;B!A;'-O(&)E('-P
M96-I9FEE9"!W:71H(&$@<VQA<V@L"B,@87,@:6X@6TXO;6EN:6UU;5TN"B,*
M(R!E>'!I<F5C=&P@:7,@;F]R;6%L;'D@<G5N(&IU<W0@869T97(@97AP:7)E
M(&ES(')U;BX@($YO=&4@=&AA="!E>'!I<F5C=&P*(R!I<VXG="!V97)Y('5S
M969U;"!F;W(@=&AE(&-A<V4@=VAE<F4@>6]U(&%R92`G8V%T8VAI;F<@=7`G
M(&]N(&YE=W,@869T97(*(R!A(&QO;F<@<&5R:6]D(&]F(&1O=VYT:6UE(%5.
M3$534R!Y;W4@=7-E('1H92`M<"!O<'1I;VX@=&\@97AP:7)E+@H*+W)E;65M
M8F5R+SI;,2XR+S(P70H*(R,@($ME97`@9F]R(#$M,3`@9&%Y<RP@86QL;W<@
M17AP:7)E<R!H96%D97)S('1O('=O<FLN"B,**CI!.C$Z6S$N,%TZ6S8N,%T*
M*BYA9'9O8V%C>3I!.C$Z6S`N-5TZ6S(N,%T*86QT+F)I;F%R:65S+G!I8W1U
M<F5S+F5R;W1I8V$Z03HQ.ELP+CA=.ELR+C!="@HC('!E<FUA;F5N="P@<V5M
M:2UP97)M86YE;G0*(PIB97-T+FEN=')O.D$Z;F5V97(Z;F5V97(Z;F5V97(*
M8F5S="YA;FYO=6YC93I!.C4Z-C`Z,3(P"F)E<W0N9V5N97)A;#I!.FYE=F5R
M.FYE=F5R.FYE=F5R"F)E<W0N8G5G<SI!.FYE=F5R.FYE=F5R.FYE=F5R"@H`
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
9````````````````````````````````````
`
end


