33
\$\begingroup\$

Write a program that, for the numbers 1 through 255, prints out BF code that will produce the given number in some byte of the array, plus a newline.

For example, the first four lines of the output could (and most likely will) be:

+
++
+++
++++

The winner will be the smallest: source code + output (in bytes).

Clarifications & Revisions:

  • BF programs use wrapping cells.

  • The output BF program must terminate with the only non-zero cell being the cell containing the number.

  • Programs must be output in ascending order.

  • Outputting a program for 0 is optional.

  • Negative data pointers are not allowed. < at the first pointer will do nothing. (leave a comment if it would be more appropriate to have it throw)

\$\endgroup\$
  • 1
    \$\begingroup\$ You might want to remove or clarify produce the given number in some byte of the array \$\endgroup\$ – Jo King Aug 11 at 3:37
  • 1
    \$\begingroup\$ @JoKing The entire output is counted. \$\endgroup\$ – Mason Aug 11 at 3:37
  • 2
    \$\begingroup\$ Oh I see, you're saying that the code doesn't have to end on the output cell \$\endgroup\$ – Jo King Aug 11 at 3:44
  • 2
    \$\begingroup\$ @Mason Would +>++++++++++. be a valid program for the input 1? \$\endgroup\$ – Jonathan Frech Aug 12 at 3:45
  • 5
    \$\begingroup\$ +1 for a dual-constraint challenge where you have to balance golfing the BF output versus golfing the code to output the BF. An interesting twist ☺ \$\endgroup\$ – Chronocidal Aug 12 at 10:57

15 Answers 15

15
\$\begingroup\$

Perl 6, 224 + 3964 = 5834 4188 bytes

map {say (.[0]~'['~.[3]~'>'~.[1]~'<]')x?.[1],'>'x?.all,.[2]}o*.min({$_>>.abs.sum+6*?.[1]})>>.&{<- +>[.sign>0]x.abs},classify({0+|(grep(*%%1,(((256 X*^4)X+.[0]%256)X/-.[3]))[0]*.[1]+.[2])%256},[X] |(^27-13 xx 3),-7..-1){^256}

Try it online! (may timeout. Change the ^27-13 to ^25-12 to speed up slightly at the cost of some extra output)

Outputs the shortest code in the form *>[*>*<]>*, where each * is a certain number of +s or -s. There are some extra tweaks like removing the loop if it is not needed, as well as trailing >s.

As far as I can tell, the output is the most golfed for this particular format.

Explanation:

([X] |(^27-13 xx 3),-7..-1)        # Define the search space as the cross product of:
                                        # -13 to 13 for:
                                            # Initialisation     +++>
                                            # Change in target   [*>+++<]
                                            # Last change        >+++
                                        # And -7 to -1 for the change in start [-->*<]
  .classify({                  })  # Group them by calculating
                  (256 X*^4)                         # Each of the multiples of 256
                 (          X+.[0]%256)              # Plus the initialisation
                (                      X/-.[3])      # Divided by the change in start
      grep(*%%1,                               )     # Filter out the whole numbers
                                                [0]  # And take the first value
          # This is the amount of times the inner loop will execute
          # Being Nil, converted to 0 if it is an infinite loop
      *.[1]              # Multiply by the change to the target cell
           +.[2]         # And add the final section
     (          )%256    # And modulo the whole lot by 256
                     +|0 # And floor it just to keep the .0 out
classify(                   ){^256}     # Take the corresponding groups in order
   .map(                             )  # And map each to
        *.min({                    })   # Find the minimum by:
               $_>>.abs.sum             # The sum of the absolute values    
                           +6*?.[1]     # Plus 6 if it loops
      >>.*{                   }    # Then map each value to
           <- +>[.sign>0]          # + or - depending on the sign
                         x.abs     # Repeated by the absolute value 
   {                    }o              # And pass this to the next code block
    say                       # Print
        (.[0]~'['~.[3]~'>'~.[1]~'<]')             # The loop section
                                     x?.all       # If it is needed
                                           ,.[2]  # And the final part

\$\endgroup\$
12
\$\begingroup\$

Malbolge, 28 743 bytes + 7 166 of output

Not too creative, ain't it? I'm going to work on golfing this bad boy.

D'`;qp"~~5|3VU6/AQ?br)ML&\[)5h&g|ezyQ,_N)9xwponmlk1RQ.Okdihg`&%]E[`_XWVzZSXWVUNrqpPONGLEDCgG)E>=a`_^>=<|49870T.t2+*NMLKJkj('~%${Ay~}|{t:98765srqpRQ.Okdihg`&%$#"!~^W?[ZSRvVUTMRQPImlkjihgf@E>=<`@?>7};43WVUTSRQPO/.-m%*#G'&}|#zy?>=<;:9876tsrqpRQ.Okdihg`&%$#"!~}|{zZYR:u8TMRQPImlkjihgfedcbB;:^>7};43WVUTSRQPONMLK+k)('~%${Ay~}|{t:9876543210/.-Njibgf_%cba`_AWVzyxXWVUTS5Ko2NGkKDCBfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210Qgfkjc)Jfe^$\a`Y^W{zyxXQ9OTMq4JOHlFEJIHGF?cCB;_"!7<5Y9yx05.RQPO/(n&J*j"'~De#"!~w|{t:987onmlk1ong-Ndiha`&^F\[!_AWVzZYR:u8TMRQPImlkEDIHGF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/POedchg`&dcba`Y^W{zyS;WPt7SRQPONMLEDhH*FE>=a`_^]\6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:xwvXnm3qSohgfe+*)(Ie^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U54-s+*Non,%*#GFE%e{A!~}_{tyr8vunmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMqQ3IHlLKDIBA@dcb%$@?>=6Z4z2165.R210/(LKJIHGF&}e#"y?wv{zs9wYutsrk1oQgled*Kg`ed]#aZB^]V[ZSwQVUTSRKonml/KDhH*)?D=<`@?>=<5YXWVUT4t2+0)Mnm+$Hih&%|{"!x>vuzyxq7unVrqj0nPOedchg`&dcba`Y^W{zyxXWVUTS5Ko2NGkKDCBfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210/Pfkdihg`&^F\[!_AWVzyxwvP8NSRKJIm0FEiIBGF?>=<`#">=6Z{9810T432+*NMLKJ*)(h&%|Bzb~w|{zyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVU5.32+*Non&Jk)"!~}CBA@?>=<;yxwvutsrqponmfNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\}5:9816/S3210/on&Jk)"!~}CBA@?>={z\xwpun4rkj0QPle+ihgfe^F\[!_A]\UZSwQVUTSRKonml/KDhH*)?D=<`@?>=<5YXWVUTS32+0)(L&+$#"!&}C#"yxwv<zsxwpo5sUkpoh.lNjibg`&dcba`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210/Pfkdihg`&^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381Uvu32+*N.-m%*#G'&}|#zy?>=<z\rwpo5Vlkjing-kdLbg`&%$#"!~}@?UyY;WVONrLKJn10LEDhBG@?>=<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:9876543kjongfe+ihgfe^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUTSt,10)(L,+k#('~De#"!~w|{t:987654Ukjih.fejibg`&dFbaZ~^W?[TSXWVONrRKPONGFjD,BG@d'&<A@?>7[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>={z\xwpun4rkj0QPle+ihgfe^F\[!_A]\UZSwQVUTSRKonmlkjD,BAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/POedchg`&dcba`Y^W{zyxwvVUTS5Ko2NGkKDCBfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:xwvXnm3qSohgfe+*)('&G]\aZ~^W?[TSXWVONrRKJOHMLEihgfedD=<;:987[5:3270T4t210)M',+$)('~De#"!~w|{t:9wvXnm3qSohgfe+*)('Hd]\aZ~^W?[TSXWVONrRKJOHMLEihgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~D$#"!x}|{zs9wvXnm3qSohgfe+*)('Hd]\aZ~^W?[TSXWVONrRKJOHMLEihgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210/Pfkdihg`&^F\[!_AWVzyxwvutsS54JINGkEDCBfFE'C<;:^!=<54381Uvu32+*N.-m%*#G'&}|#zy?>=<;:xwYotsrqji/gOejchg`&^Fba`Y^W{zyxwvuOTMLKJnHlFEJIHGF?cCB;_"!7<5Y9yx05.RQPONM-,+k#"!Efe{A!~}v<;:9876Wmlk1ong-Ndiha`&^F\[!_AWVzZYR:u8TMRQPImlkjDCHGF?c=BA:?8\};43WVUTSRQPONMnm%$#(!~D|{z!x}|{zs9wYutsrk1oQgled*hg`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcba`_?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210/Pfkdihg`&^F\[!_AWVzyxwvutsr54JINGkEDCBfFE'C<;:^!=<54381Uvu32+*N.-m%*#G'&}|#zy?>=<;:xwYotsrqji/gOejchg`&^Fba`Y^W{zyxwvutTMLKPINGkEDCBfFE'C<;:^!=<54381Uvu32+0/.-&Jkj('~%${Ay~}|{t:98765VUqpong-kjihgfe^F\[!_AWVzyxwvutsS54JINGkEDCBfFE'C<;:^!=<54381U54-s+*Non,%*#GFEDCBAba}|uzyxwpo5Vlkjing-kdLbg`&%$#"!~^@?UyY;WVONrLKJn10LEDhBG@?>=<`@?>7};43WVUTSt,10)(L,+k#('~De#"!~w|{t:987654321Rhmlejib(fe^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[|:9216/S3210/on&Jk)"!~}CBA@?>=<;:xwYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:9876543210/.fNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[Z{9216/S3210/on&Jk)"!~}CBA@?>=<;yxwvutsrqponmfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSR2+q/.'K+k#('~De#"!~w|{t:98765432poQPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[|:9216/S3210/on&Jk)"!~}CBA@?>=<;:9wYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrR4o2NMFEDCgfedcbaA@"!=6Z4z2165.R210/(LKJIHGFE}e#"y?wv{zs9wYutsrk1oQgled*hg`H^c\"`Y^W{zyxwvuUTS5Ko2NGkKDCBfedcba`_?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:xwvXnm3qSohgfe+*)('&%FbaZ~^W?[TSXWVONrRKJOHMLEihgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:9wvXnm3qSohgfe+*)('&G]\aZ~^W?[TSXWVONrRKJOHMLEihgfedcba`@?>=6|4X8765.Rs10/.'K+k#('~D$#"!x}|{zs9wvXnm3qSohgfe+*)('&G]\aZ~^W?[TSXWVONrRKJOHMLEihgfedcba`@?>=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm3210/.Oejchg`&^F\[!_AWVzyxwvutsrq4JINGkEDCBfFE'C<;:^!=<54381Uvu32+*N.-m%*#G'&}|#zy?>=<;:9wYotsrqji/gOejchg`&^Fba`Y^W{zyxwvutsS54JINGkEDCBfFE'C<;:^!=<54381Uvu32+0/.-&Jkj('~%${Ay~}|{t:987654lkpi/gOejchg`&^Fba`Y^W{zyxwvutsS54JINGkEDCBfFE'C<;:^!=<54381U54-s+*Non,%*#GFEDCBA@a}|uzyxwpo5Vlkjing-kdLbg`&%$#"!~}@?UyY;WVONrLKJn10LEDhBG@?>=<`@?>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:9876543kjongfe+ihgfe^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUTSR2+q/.'K+k#('~De#"!~w|{t:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[Z{9216/S3210/on&Jk)"!~}CBA@?>=<;:9wYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUTSR2+q/.'K+k#('~De#"!~w|{t:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJIm0/EJIBfeEDCB;:^>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:987654321Rhmlejib(fe^$Ea`_^WVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:987654321Rhmlejib(fe^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYz2165.R210/on&Jk)"!~}CBA@?>=<;:xwYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:98765432poQPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYX21654-,+O/on&Jk)"!~}CBA@?>=<;yxwvutsrqponmfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:98765432poQPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJIm0/EJIBfeEDCB;:^>7};43WVU5.32+*Non&Jk)"!~}CBA@?`_{tyxwvun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcCBA@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-,+*KJfe^$bDZYX]\UyY;WPUNrqponmlkjihHG@(D=a;_9>7654X81w/.-,+O/.-&%I)(h&}$#z@~}v{zs9876543qSRng-kjihgfe^F\[!_AWVzyxwvutsrqpP2HGFKJCg*FE>b%$:9>=6Z4z2165.RsP*/(',+$HGFEDC#zb~}v{zyxwpo5Vlkjing-kdLbg`&%$#"!~}|{zyxXQ9OTMq4JOHlFEJIHGF?cCB;_"!7<5Y9yx05.RQPONMLK+k#"!Efe{A!~}v<;:9876543kjongfe+ihgfe^$Ea`_^WVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:987654321Rhmlejib(fe^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>=<;yxwvutsrqponmfNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>=<;yxwvutsrqponmfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYz2165.R210/on&Jk)"!~}CBA@?>=<;:98vutVlkjohmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBfeEDCB;:^>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSRQPq/.-&J$#('~De#"!~w|{t:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYX21654-,+O/on&Jk)"!~}CBA@?>=<;:9wYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUTSRQPO/(n&J*j"'~De#"!~w|{t:987654321Rhmlejib(fe^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYz2165.R210/on&Jk)"!~}CBA@?>=<;:987utVlkjohmf,jcha`&dFbaZ~^W?[TSXWVONrR4o2NMFEDCgfedcbaA@"!=6Z4z2165.R210/(LKJIHGFEDCBA@a}|u;yxqvon4lkj0Qgled*Kg`ed]#aZB^]V[ZSwQVUTSRKonmlk.JIBAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqpPO10LEDh+AF?cC<;:^>=6|4X87654-s+*Non,%*#GFEDCBA@a}|uzyxwpo5Vlkjing-kdLbg`&%$#"!~}|{zyYXQ9OTMq4JOHlFEJIHGF?cCB;_9>76ZY9y765.-,+O/on,%*#GFEDCBA@a}|uzyxwpo5Vlkjing-kdLbg`&%$#"!~}|{zyYXQ9OTMq4JOHlFEJIHGF?cCB;_9>76Z{9810T432+*NMLKJIHG'&%e{A!~}_{tyr8vunmlk10/.-,+*)('&dc\[Z_^W{[ZSXWVUNr5QPONGk.JCBAFE>b<$:?876Z4321UTSRQPON(n&J*j"'~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUTSRQ+q/.'K+k#('~De#"!~w|{t:9876543210/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>=<;:9wYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrR4o2NMFEDCgfedcba`_^>~6;:3876/S3210/on&Jk)"!~}CBA@?>=<;:xwYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrR4o2NMFEDCgfedcba`_^>~6;:3876/S3210/on&Jk)"!~}CBA@?>=<;:xwYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:987onmlk1ong-Ndiha`&^F\[!_AWVzZ<XWPtTS54JINGk.DIBA@dcba`_?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-,+*)gIH^]baZ~^W?[TSXWVONrRKJOHMLEihgfedcba`_^]=6|4X8765.Rs10/.'K+k#('~D$#"!x}|{zs9wvXnm3qSohgfe+*)('&%$b[`Y^WVUySXWVONrRKJOHMLEihgfedcba`_^]=6|4X8765.Rs10/.'K+k#('~D$dc!x}v<tyxqvunm321oQgfkjc)Jfe^$\a`Y^W{zyxwQ9OTMq4JOHlFEJIHGF?cCB;_"!=6Z:9876v4321*Non,%*#GFEDCBA!~}_{tyr8von4lkj0QPlkdib(`H^c\"`Y^W{zyS;WPt7SRQPONMLEDhH*FE>=a`_^]=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('e^F\[!BXW{[=SwQ9OTMqQ3IHGLKJCgA@?>=<`@?>7};43WVUTSRQPO/(n&J*j"'~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJIm0FEi,BG@?>=<`@?>7};43WVUTSRQPO/(n&J*j"'~De#"!~w|{t:9876543210/mfNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>=<;:98vutVlkjohmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUTSRQPON(n&J*j"'~De#"!~w|{t:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJImMLEJIBf)?D=<;_^]\[ZYXWVw5.R210/on&Jk)"!~}CBA@?>=<;:9wYonmrqjonmf,jcha`&dFbaZ~^W?[TSXWVONrRKJOHMLEiCHAFE>C<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:987onmlk1ong-Ndiha`&^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba;_?87<5:3W7w/.-Q1q/.'&%I)(h&}$#z@~}v{zs9876tVUqpong-kjihgfe^F\[!_AWVzyxwQ9OTMq4JOHlFEJIHGF?cCB;_"!=6Z:9876v4321*Non,%*#GFEDCBA!~}_{tyr8von4lkj0QPlkdib(`Hdcba`Y^W{[ZYR:u8TMRQPImlkEDIHGF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.-,diha`_%cb[Z_X|\[=Sw:PUTMq4JOHl/KDhBAFED=a$@9>7<54XWVUTut,10)(L&%*#"F~}|#"!~}v<z\xwpun4rqpRQ.Okdihg`&%$#DZYX]\UTxXWVUTMqQ3IHGLKJCgfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxXQVUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLKJIHGF&%e{A!~}_{tyr8vunmlk10/.-,+*)('&%c\[Z_^W{[ZSXWVUNr5QPONGk.JCBAFE>b<$:?876Z4321UTSRQPONM',+*)"!Efe{A!~}v<;:9876543210QPlkdib(f_dcbaZ~AWVUy<;WPUTSRKJIm0/EJIBf@E>=<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:987onmlk1ong-Ndiha`&^F\[!_AWVzZ<XWPtTS54JINGk.DIBA@dcba`_^>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;srqvon4rqSing-Ndiha`&^F\a`_X]VzZYR:u8TMRQPImlkjihgfedcC%$@?>=6Z4z2165.R210/(LKJIHGFEDCBzb~w|u;yxwvon4lkj0Qgled*hg`H^c\"`Y^W{zyxwvutsrqQPIHGFKDhH*)?D=<`@?>=<5YXWVUTSRQPO/.',+*#"Fgf$#z@awv{zyxwp6Wmlkpi/Plkjchg`&^Fb[`_X|?[ZYRWPtsrqpP2NMFKDIBf)?c=<;:987[ZYXW76v4321*N(',+$H"'&%|#z@xw|{zyr8vXtsrqpong-eMibaf_%]\aZ_X]VzyxwvPUTMq4JOHlFEJIHGF?c=BA:?8\}5432VU54-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"`_^@?UyY;WVONrLKJn10LEDh+AFED=<`@?>=6|4Xyx05.RQPONon&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-Njibgf_%cba`_AWVzyxwvVUTS5Ko2NGkKDCBfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)Jfe^$baZBXW{[=SwQ9OTMqQ3IHlLKDIBA@dcb%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs9876tVUqpong-kjihgfe^F\[!_AWVzyxwQ9OTMq4JOHlFEJIHGF?cCB;_"!=6Z:9876v4321*Non,%*#GFEDCBA@~}_{tyr8von4lkj0QPlkdib(f_dcbaZ~^W?[ZSRvVUTMRQPImlkjDCHGF?c=BA:?8\};43WVUT4t2+0)Mnm+$Hih&%|{"!x>vuzyxq7otsrqji/mfNjiha'e^Fba`Y^W{zyxwvutTSLKJIm0FEiIBGF?>=<`@?>=6|4X87654-s+*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.fNjiha'e^$Ea`_^WVUy<;WPUTSRKJImMFKJCHGF?cC<A:?8\};43WVUTSRQP0/on&J$)"!~%$#z@awv{zyxwp6Wmlk1oQmlejib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedc=<;:987[5:3270T4t210)M',+$)('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxw:PUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLKJ*)(h&%|Bzb~w|{zyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJIm0/EJIBfFED&<;:^>=6|4Xyx05.RQPONon&J$)"!~%$#z@awv{zyxwp6Wmlk1oQmlejib(`H^c\"`Y^W{zyxwvutsrqQPIHGFKDhH*)?D=<`@?>=<5YXWVUTSRQPON.',+*#"Fgf$#z@awv{zyxwp6Wmlkpi/POedchg`&dcba`Y^W{zyS;WPt7SRQPONMLEDhH*FE>=a`_^]\6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxwvuUNSRKJIm0FEiIBGF?>=<`@?>=6|4X87654-s+*Non,%*#GFE%e{A!~}_{tyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJImMFKJCHGF?cC<A:?8\};43WVUTSRQPO/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-Njibgf_%cba`_AWVzyxXWVUTS5Ko2NGkKDCBfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('&%cbDZYX]\UySXWVUNr5QPONGk.DCHAFED=aA@"!7<5Y9yx05.RQPO/(n&J*j"'~De#"!~w|{t:987onmlk1ong-Ndiha`&^F\[!_AWVzZ<XWPtTS54JINGk.DIBA@dcba`_^]=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqpo2HGFKJCg*FE>b%$:9>=6Z4z2165.R210/(L,+k#"!E}e#"y?`_{zsxwp6543210/mfed*Kaf_^$Ea`_^WVUyYXQ9OTMqQ3IHGLKJCgA@?>=<`@?>7};43WVUT432+q/.'K+k#('~De#"!~w|{t:98765mlqpihmf,jcha`&dFbaZ~^W?[TSXWVONrRKPONGFjJCHGF?cC<A:?8\};43WVUTSR210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1RQ.Okdihg`&%$#DZYX]\UTxXWVUTMqQ3IHGLKJCgfedc=<;:987[5:3270T4t210)M',+$)('~De{z!~w={z\xwpun4rTjong-,+*)('e^F\[!BXW{[=SwQ9OTMq4JOHlFEDIHG@d'&<A@?>7[ZYX216/S3210/on&Jk)"!~}CBA@?`_{tyxwvun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba;_?87<5:3W7w/.-Q1q/.'&%I)(h&}$#z@~}v{zs9876tVUqpong-kjihgfe^F\[!_AWVzyxwvP8NSRKJIm0FEiIBGF?>=<`#">=6Z{9216/S321q/.'&%I#"'&%|BA@?>=<zyxwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedD&<;:^87<54981Uvu32+*NMLKJ*#i!&}$#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;srqvon4rqSing-Ndiha`&^F\a`_X]Vz=YRQVOsSR4o2NMFEDCgfedD&<;:^87<54981Uvu32+*NMLKJI#i!&}$#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.-,diha`_%cb[Z_X|\[=Sw:PUTMqKJONGFKDhBAFED=a$@9>7<54XWVUTS3210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1oQmlejib(`H^c\"`Y^W{zyS;WPt7SRQPONMLEDhH*FE>=a`_^]\[;:9876v4321*N(',+$H"'&%|#z@xw|{zyr8vXtsrqpong-eMibaf_%]\aZ_X]VzyxwvutTSLKJIm0FEiIBGF?>=<`@?>=6|4X8765.RsP*/(',+$HGF&%e{A!~}_{tyr8vunmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMqKJONGFKDhBAFED=a$@9>7<54XWVUTSR210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1RQ.Okdihg`&%$#"!_^W?[ZYXQuUTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxXQVUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLKJ*)(h&%|Bzb~w|{zyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJImMFKJCHGF?cC<A:?8\};43WVUTSR210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-Njibgf_%cba`_AWVzyxwvVUTS5Ko2NGkKDCBfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)(fe^F\[!BXW{[=SwQ9OTMqQ3IHlLKDIBA@dcba`@"!=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponm0/KJIBAe(D=<`:9>7[;43270/St2+*N.-m%*#G'&}|#zy?>=u]sxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDhH*FE>=aA@"!=6Z:9876v4321*Non,%*#GFEDCBA@~}_{tyr8von4lkj0QPlkdib(`H^c\"`Y^W{zyxXWVUTS5Ko2NGkKDCBfedc=<;:987[5:3270T4t210)M',+$)('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxwvutsSLKJIm0FEiIBGF?>=<`@?>=6|4X87654-s+*Non,%*#GFE%e{A!~}_{tyr8vunmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMqQ3IHGLKJCgGFED&<;:^>=6|4Xyx05.RQPONML,+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxw:PUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLKJ*)(h&%|Bzb~w|{zyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJIm0/EJIBfFED&<;:^>=6|4Xyx05.RQPONM-,+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedc=<;:987[5:3270T4t210)M',+$)('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxwvPUTMq4JOHlFEJIHGF?c=BA:?8\};43W76/.3,1*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJImMFKJCHGF?cC<A:?8\};43WVUTSRQP0/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-,jiKgf_^$ba`Y^W{zyxXWVUTS5Ko2NGkKDCBfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('&^F\[!BXW{[=SwQ9OTMq4JOHlFEDIHG@d'&<A@?>7[ZYX216/S3210/on&Jk)"!~}CBA@?`_{tyxwvun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba`@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:9wvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfeED&<;:^87<54981Uvu32+*NMLKJI#i!&}$#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlkjJIH*)?D=<`@">=65Yzy70/.R2+0/.'&%I)(h&}$#z@~}v{zs987utVUqpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:98voWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIHGFE}e#"y?wv{zs9wYutsrk1oQgled*Kg`ed]#[`Y^WVUyYXQ9OTMqQ3IHGLKJCgfedDCBA@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponmlk.DCHAFED=aA@">=65Yzy70/.R210/on&Jk)"!~}C#zb~}v{zyxwpo5slqpih.Okdihg`&%$#"`B^]VUTYRWPtT6RKPOHl/EJIBAFE>=aA@?>=6|4X87654-s+*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.-,diha`_%cb[Z_X|\[=Sw:PUTMqKJONGFKDhBAFED=a$@9>7<54XWVUTSR210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-,jiKgf_^$ba`Y^W{zyxXWVUTS5Ko2NGkKDCBfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('e^F\[!BXW{[=SwQ9OTMq4JOHlFEDIHG@d'&<A@?>7[ZYX216/S3210/on&Jk)"!~}CBA@?>|{z\xwpun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba;_?87<5:3W7w/.-Q1q/.'&%I)(h&}$#z@~}v{zs9876tVUqpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIHGF&}e#"y?wv{zs9wYutsrk1oQgled*Kaf_^$\[`Y^WVUyYXQ9OTMqQ3IHGLKJCgfedcCBA@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.Oejchg`&^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381Uvu32+*N(n&J*#i!&}$#"y?`_{zsxwp6543210/.fNdchg`&^c\aZ_X|\[=SwQ9OTMqQ3IHlLKDIBA@dcba`_"!=6Z4z2165.R210/(LKJIHGF&}e#"y?wv{zs9wYutsrk1oQgled*Kg`ed]#[`Y^WVUyYXQ9OTMqQ3IHGLKJCgfedDCBA@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]Vz=YRQVOsrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#('~%|B"b~}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzZYR:u8TMRQPImlkjiIBAF?c=BA:?8\};43WVUTS321q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|B"b~}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrqQ3IHlLKDIBA@dcba`@"!=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponm0/KJIBAe(D=<`:9>7[;43270/S3210p.-&JI)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;srqvon4rqSing-Ndiha`&^F\a`_X]Vz=YRQVOsSR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDh+AFED=<`@?>=6|4Xyx05.RQPONM-,+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(`Hdcba`Y^W{[ZYR:u8TMRQPImlkjiIBAF?c=BA:?8\};43WVUTS321q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvP8NSRKJIm0FEiIBGF?>=<`#">=6Z:9810/St,10)(L,+*#i!&}$#"y?`_{zsxwp6543210ng-kjcb(I_%cbD`YX]VzT<XQVUNrR4o2NMFEDCgfedD&<;:^87<54981Uvu32+*NMLKJI#i!&}$#"y?wv{zs9wYutsrk1oQgled*Kaf_^$\[`Y^WVUyYXQ9OTMqQ3IHGLKJCgfedcba`@?>=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-,+iKJfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381Uvu32+*N(n&J*#i!&}$#"y?`_{zsxwp65432pong-kjcb(I_%cbD`YX]VzZYR:u8TMRQPImlkjiIBAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDhH*FE>=aA@"!=6Z:9876v4321*Non,%*#GFEDCBz!x}v{t:xwvon4lkj0QPlkdib(`Hdcba`Y^W{[ZYR:u8TMRQPImlkjihBAF?c=BA:?8\};43WVUTSRQP0p.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/POejcb(Ie^$bD`YX]VzT<XQVUNrqpo2NGkKDIHG@d'C<;:^>=6|4X87654-s+*Non,%*#GFE%e{A!~}_{tyr8vunmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMqKJONGFKDhBAFED=a$@9>7<54XWVUTSRQP0/on&J$)"!~%$#z@awv{zyxwp6Wmlk1RQ.Okdihg`&%$#"!_^W?[ZYXQuUTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:9wYotsrqji/mfNjiha'e^Fba`Y^W{zyxw:PUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLK+k#"!Efe{A!~}v<;:987onmlk1ong-Ndiha`&^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba`@?>=6Z49816/St210/.'K+*#i!&}$#"y?wv{zs9wvXnm3qSohgfe+*)(Ie^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:9wvoWm3qSing-Ndiha`&^F\a`_X]VzZYR:u8TMRQPImlkjDCHGF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponmlk.JCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|B"b~}|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:9wvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrqQ3IHlLKDIBA@dcbaA@"!=6Z4z2165.R210/(LKJIHGF&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#('~%|B"b~}|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponml/KDCHAFED=aA@">=65Yzy70/.R210/on&J$#"!E}e#"y?`_{zsxwp6543210ng-kjcb(I_%cbD`YX]VzZYR:u8TMRQPImlkjDCHGF?c=BA:?8\};43WVUTSRQ1q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|B"b~}|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponmlk.DCHAFED=aA@">=65Yzy70/.R210/on&Jk)"!~}C#zb~}v{zyxwpo5slqpih.Okdihg`&%$#"!_^W?[TSXWVONrRKPONGFj-,BGF?>=<`@?>=6|4X87654-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"`_^@?UyY;WVONrLKJn10LEDh+AFED=<`@?>=6|4Xyx05.RQPONMLK+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(fe^$Ea`Y^WV[Tx;QPONMRKonmlk.JIBAF?c=BA:?8\};43WVUTS321q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponmlk.JCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvP8NSRKJIm0FEiIBGF?>=<`#">=6Z{9216/S321q/.'&%I#"'&%|BA@?>=<;srqvon4rqSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlk.JCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.-kdLhgfe^$bDZYX]\UyY;WPUNrqponml/KDCHAFED=aA@">=65Yzy70/.R210/on&Jk)"!~}C#zb~}v{zyxwpo5slqpih.Okdihg`&%$#"!~^W?[TSXWVONrRKPONGFj-,BGF?>=<`@?>=6|4X87654-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!~^@?UyY;WVONrLKJn10LEDh+AF?cC%$@?>=6Z:9876v4321*Non,%*#GFEDCBz!x}v{t:xwvon4lkj0QPlkdib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcba`@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxw:PUTMq4JOHlFEJIHGF?c=BA:?8\<|49870T.t2+*NMLKJ*)(h&%|Bzb~w|{zyr8vunmlk10/.-,+*hgfeGcb[!BXW{[=Sw:PUTMqQ3IHGLKJCgGFED&<;:^>=6|4Xyx05.RQPONon&J$)"!~%$#z@awv{zyxwp6Wmlk1oQmlejib(`H^c\"`Y^W{zyxXWVUTS5Ko2NGkKDCBfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~D$#"!x}|{zs9wYotsrqji/mfNjiha'e^Fba`Y^W{zyxwvutsSLKJIm0FEiIBGF?>=<`@?>=6|4X87654-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"`_^@?UyY;WVONrLKJn10LEDhH*FE>=aA@"!=6Z:9876v4321*Non,%*#GFEDCBA@~}_{tyr8von4lkj0QPlkdib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('e^F\[!BXW{[=SwQ9OTMq4JOHlFEDIHG@d'&<A@?>7[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>|{z\xwpun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcba;_?87<5:3W7w/.-Q1q/.'&%I)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrqpPONGLEDCgG)E>=a`_^]\}5:9816/S3210/on&Jk)"!~}CBA@?>|{z\xwpun4rkj0QPle+ihgfe^F\[!_X]\UTxRWVOTMqQ3IHGLKJCgfedcb%A:?8\}5432V6/.-Q1q/.'&%I#('~%|BAya}|{ts9wvXtsrkj0/.-,+iKJfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;srqvon4rqSing-Ndiha`&^F\a`_X]Vz=YRQVOsSR4o2NMFEDCgfedcb%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDhH*FE>=aA@"!=6Z:9876v4321*Non,%*#GFEDCBA!~}_{tyr8von4lkj0QPlkdib(`H^c\"`Y^W{zyxw:PtTMqQ3IHGLKJCgfedcbBA@?>=6|4X8765.Rs10/.'K+k#('~De#"!~w|{t:rwpotmrqpi/mfNjiha'e^Fba`Y^W{zyxwvuUNSRKJIm0FEiIBGF?>=<`@?>=6|4Xyx05.RsP*/(',+$HGFE%e{A!~}_{tyr8vunmlk10/.-eMibaf_%cbaZ~AWVUy<;WPUTSRKJImMFKJCHGF?cC<A:?8\};43WVUTSRQPONM-,+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(fe^$Ea`Y^WV[Tx;QPONMRKonml/KDhH*)?D=<`@?>=<5YXWVU54t2+0)Mnm+$Hih&%|{"!x>vuzyxq7otsrqji/mfNjiha'e^Fba`Y^W{zyxwvutsrqKJONMLEDh+AF?cC<;:^>=6|4X87654-s+*Non,%*#GFEDCB"y~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDhH*FE>=aA@"!=6Z:9876v4321*Non,%*#GFEDCBz!x}v{t:xwvon4lkj0QPlkdib(f_dcbaZ~^W?[ZSRvVUTMRQPImlkjihBAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqponm0/KJIBAe(D=<`:9>7[;43270/S-s+*Non,%*#GFEDe{z!~w=^]sxq7unmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMqKJONGFKDhBAFED=a$@9>7<54XWVUTSRQ10/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-Njibgf_%cba`_AWVzyxw:PtTMqQ3IHGLKJCgfedcbaA@?>=6|4X8765.Rs10/.'K+k#('~De{z!~w={z\xwpun4rTjong-,+*)('&^F\[!BXW{[=SwQ9OTMqQ3IHlLKDIBA@dcba`@"!=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlkjJIH*)?D=<`@">=65Yzy70/.R2+0/.'&%I)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvP8NSRKJIm0FEiIBGF?>=<`#">=6Z{9216/S321q/.'&%I#"'&%|BA@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlkjJIH*)?D=<`@">=65Yzy70/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.-,+iKJfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381Uvu32+*NM-,+k#"!E}e#"y?`_{zsxwp654321ong-kjcb(I_%cbD`YX]VzZYR:u8TMRQPImlkjihBAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&%FbaZ~^@?UyY;WPUNrqponm0/KJIBAe(D=<`:9>7[;43270/St2+*N.-m%*#G'&}|#zy?>=<;\rwvon4Ukping-kdLbg`&%$#"!~}|\[ZYXQ9OTMq4JOHlFEJIHGF?cCB;_">7<;:3Wx65.3,+O).'&%I#"'&%|BA@?>|^]sxq7unVrqj0QPle+chg`_%]E[`_XWVzZSXWVUNrqpo2NGLEJIHGF?c=BA:?8\};43WVUTSRQP0p.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Plkjchg`&G]\aZ~^@?UyY;WPUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs9876tVUqpong-kjihgfe^F\[!_AWVzyxwvutTS54JINGkEDCBfFE'C<;:^!=<54381Uvu32+*N(n&J*#i!&}$#"y?`_{zsxwp6543210/mfed*Kaf_^$Ea`_^WVUyYXQ9OTMqQ3IHlLKDIBA@dcba`@"!=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*Kg`ed]#[`Y^WVUyYXQ9OTMqQ3IHGLKJCgfedcba`_?>=6Z49816/St210/.'K+*#i!&}$#"y?wv{zs9wvXnm3qSohgfe+*)('Hd]\aZ~^W?[TSXWVONrRKJOHMLEihgfe(>bBA@?>=6Z4z870/.R210/on&Jk)"!~}C#zb~}v{zyxwpo5slqpih.Okdihg`&%$#"!~}|\[ZYXWVUTSRQPO10LEDh+AF?cC<;:^>=6|4X87654-s+*Non,%*#GFEDCB"y~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!~}@?UyY;WVONrLKJn10LEDh+AF?cC%$@?>=6Z:9876v4321*Non,%*#GFEDC#c!xw=uzsr8potslqpong-eMibaf_%]E[`_XWVzZSXWVUNrqponm0/KDIHAF?c=BA:?8\};43WVUTSRQP0p.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/POejcb(Ie^$bD`YX]VzT<XQVUNrqpon10LEDh+AF?cC<;:^>=6|4Xyx05.RsP*/(',+$HGFEDe{z!~w=^]sxq7unmlk10/.-,+cha`_%cb[Z_X|\[=Sw:PUTMq4JOHl/KDhBAFED=a$@9>7<54XWVUTSR210/on&J$)"!~%$#z@awv{zyxwp6Wmlk1ong-Njibgf_%cba`_AWVzyxwvVUTS5Ko2NGkKDCBfedcba`@?>=6|4X8765.Rs10/.'K+k#('~D$#"!x}|{zs9wYotsrqji/mfNjiha'e^Fba`Y^W{zyxwvuUNSRKJIm0FEiIBGF?>=<`@?>=6|4X87654-s+*Non,%*#GFEDC{"!~}|{zyxwpo5Vlkjing-kdLbg`&%$#"!_^@?UyY;WVONrLKJn10LEDh+AFED=<`@?>=6|4Xyx05.RQPONMLK+k#('~D$#"!x}|{zs9wYutsrk1Rhmlejib(fe^$Ea`Y^WV[Tx;QPONMRKonmlk.JIBAF?c=BA:?8\};43WVUTSR21q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponmlk.JCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs98765VUqpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:9wvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlk.JCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.Oejchg`&^F\[!_AWVzyxwvutsr54JINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:98voWm3qSing-Ndiha`&^F\a`_X]VzZYR:u8TMRQPImlkjiIBAF?c=BA:?8\};43WVUTSRQ1q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#('~%|B"b~}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqponml/KDCHAFED=aA@">=65Yzy70/.R210/on&J$#"!E}e#"y?`_{zsxwp6543210ng-kjcb(I_%cbD`YX]VzZYR:u8TMRQPImlkjiIBAF?c=BA:?8\};43WVUTSRQ1q/.'&%I#('~%|B"!~w|uzyxwp6Wmlkpi/Pfkdihg`&^F\a`_X]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|B"b~}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqponm0/KDCBf@ED=<`:9>7[;4381Uvu32+*N(n&J*#i!&}$#"y?`_{zsxwp6543210/mfed*Kaf_^$Ea`_^WVUyYXQ9OTMq4JOHlFEDIHG@d'&<A@?>7[ZYXWx65.3,+O/on&Jk)"!~}CBA@?>|{z\xwpun4rkj0QPle+ihgfe^F\[!_AWVzZ<XWPtTS54JINGk.DIBA@dcba`_^]=6Z49816/St210/.'K+*#i!&}$#"y?`|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqpon10FKDIBf@ED=<`:9>7[;4381U/S-2+0/.-,%I)ih~}${z@?>=<;:987oWm3qSing-Ndiha`&^F\a`_X]Vz=YRQVOsSR4o2NMFEDCgfedcC%$@?>=6Z4z2165.R210/(LKJIH"!~}|Bz!x}|{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponmlkjiIH*)?D=<`@">=65Yzy70/.R2+0/.'&%I)(h&}$#z@~}v{zs987654rTpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]Vz=YRQVOsSR4o2NMFEDCgfedcb%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I)(h&}$#z@~}v{zs987654rTpong-kjihgfe^F\[!_AWVzyxwvu8TMLKPINGkEDCBfFE'C<;:^!=<54381U/S-2+0/.-,%I)ih~}${z@?>=<;:xwvoWm3qSing-Ndiha`&^F\a`_X]VzT<XQVUNrR4o2NMFEDCgfedcb%$@?>=6Z4z2165.R210/(LKJIHG'&}e#"y?wv{zs9wYutsrk1oQgled*KJfe^$bD`YX]VzT<XQVUNrqponml/EDCBAFE>b<A:9>76Z4z870/.R2+0/.'&%I#"'&%|BAya}|{ts9wvXtsrkj0/.-,dLhgfe^$bDZYX]\UyY;WPUNrqponmlkjiIHG@(D=a;_9>7654X81w/.-,+O/(L,+k#"!E}e#"y?`_{zsxwp65432pong-kjcb(I_%cbD`YX]Vzg

Try it online!

\$\endgroup\$
12
\$\begingroup\$

Brainfuck, 77 75 73 + 32894 = 32967 32969 32971 bytes

++++++[->+++++++<]>+>++++++++++>+[>+[-<<<.>>>]<<.>[->+>+<<]>>[-<<+>>]<<+]

Try it online!

output is the simplest possible

+
++
+++
++++
...

explanation:

++++++[->+++++++<]>+ set cell 2 to 43 (ascii of plus)
>++++++++++ set cell 3 to 10 (ascii of new line)
>+ set cell 4 to 1
[
    >+ increment cell 5
    [
        -<<<.>>> decrement cell 5 and print a plus (content of cell 2)
    ] until cell 5 == 0
    <<.> print a new line (content of cell 3)
    [
        ->+>+<< move value of cell 4 to cell 5 & 6, setting cell 4 to 0
    ]
    >> goto cell 6
    [
        -<<+>> move it's value to cell 4, setting cell 6 to 0
    ]
<<+ increment cell 4
] exit when cell 4 goes beyond 255 because cell contains C uchar meaning 255 + 1 == 0
\$\endgroup\$
  • 9
    \$\begingroup\$ That's what I wanted to see - a BF code producing another BF code! \$\endgroup\$ – Dhruv Saxena Aug 12 at 13:41
9
\$\begingroup\$

Stax, score 4751 4783 (812 bytes + 3971)

ç♥←ħòqε↓F"QS₧9(2╤↑▌T~│áZk♣☺nàK╬l•▼2≡→fZ⌂▼├▄<ÖΘá6≈¡K"B∩₧∟µ#°ôQí⌡B2ô§↕*∩)V╕EôD=)O╥T⌠û◘¬dⁿ┤☻∞ô↓♫√○¬z.â\²╕ùHÑ~≡M√☻:EzLƒ→B{O◙ΔΦ_S┼╤g°▓─+dï-┌└α½╥ôRù♠3f½⌐▀Pösúô₧f☻■Aε→τΓ£╒fε▬▬►EÜ%¬╧←y═←{╤╒öú5Ñ╡♀^α☺╨▼$kEÑ■µjh≈↕█Cªü←Z#∟gV↓►S3≥╟╗K‼╞.N|⌠↨╣}5H↕ê;±↓♣≤Tj█'x╒·±ΩßL;ª$Å÷ÑPIδ`◘▌╦┼╡<√▌{òE√PPQ/h@8kq/ÖΓb6╡]≈╤æ░╣{┌‼¢ÜαT├#ΓCN∞*╬⌡↕ÜVX←Ä)◘ù⌂ëøön╗)ôö∙╬⌠☻↨F¢X╓Sż9¡φö^⌂iøFB/┌º▼┤3¶☼Zëôû⌡ôΣfcäéi╣⌠"↨√$,.ë═┴↨Φz⌡τ¢S╜{╨)z:╦@}♦*│P±Æ1x╒ΦP▄◄·╢∙xF╢cá<T╗7;▐≤←÷╛╢;½▲§║│≈⌂ƒ*'F♂☼ùrT╞·╨nG∙=♦`;á$≥┼Ω▬≡aû┼☺╥ò♥R╧╖█▓uìf↕ñ∟φÖ♣°≥←▐G▀╗┘┴÷a*▐♂9╝┬çG─⌠ñ≈☻K·⌐α⌠╡↑!≤≡¡qßτú=Θ≤C░°¡ƒ╛>╨RP○v¡I♦◘╣ô6â₧scÉ♀╣+HO┌☼<♀»?£┴≥ï½.ohaë║ëb┼âù²┌─┬]░ΘQ¥τ┘q▼$v╞Ñ╒æ±tXƒ♪>SC▌LVWª■z↑¶ßΩû↕'L╓BÅï;↑ΦB2.G╞╜&╓π♥1¥0^B0ª≤5e|☼τ5╩╘µåΩ╬◙☻xª└í∞$┐☻∙d▼}╒R⌠AU@Ω♥δÇi0î┴ ↕ù‼☼ƒ┌Aw£╧à7û«W3ùΦ╚A)P○♥Xn⌂øôEΦGB≥╢g[∟a(◘&¥◙─♂→A@┴ö≡↕9PZK║î⌂eóë≥─Åⁿ1‼╢▀ó╙ª▲╒π╗tΣ4○√;■<ä║äqñ8╠T/»q\→↔1ç°ΘZδV♀EçZ▄g┤Å╤ ┴àúJ║wµ$▄«N

Run and debug it

I started with the optimal published programs.
I used some regex-fu, to limit it to the shortest programs that use at most 2 cells. Then I trimmed any trailing < or > characters. I think this is a possibly conservative way to ensure that there are no extraneous non-zero cells at program termination. Then I ran it through an experimental stax program I wrote to generate stax programs for fixed kolmogorov-type output.
This program works by repeatedly applying string replacements. At each step, it looks for >1 length substring that occurs most frequently and replaces it with an unused character.

\$\endgroup\$
  • \$\begingroup\$ @JoKing: I think I addressed the extraneous non-zero cells. It cost over 200 bytes in brainfuck program size, but I made it almost all back in compressability. \$\endgroup\$ – recursive Aug 11 at 14:06
7
\$\begingroup\$

Charcoal, 707 698 410 + 3627 = 4334 4325 4037 bytes

UT≔”}⊞J5±)↷γ²⁼⎇⦃<✂f^⊗L…¬⁻←«θ↥v⊙^≔¶υSψVτ16⁷·9I⌕↘;⦃@Pmt↙ |TL ‹.bE^↷Am⟧←⪫✂«GIχ¤⟲V⁻PÀ$χ¹'$↙‖%S³6◧N=$kHIpQ×ïu|%÷I↖➙⁸≔Wλ¹ê8⌕dNK‽3H∨↥γh➙↘⊙⊕“~Oj↨-⬤…⊟⁺§◨CB℅P⌕KNEAR№K⬤X"¬S⎇⧴V⁻±6⁼✂kι×CÀ⊞‴≡w↓γ=`→P5η1C⊖OSoNυs⊘$M↙êαη↖φ¡¿:θ-γ“rJW%E(7<w¤Uφ´ρHπ←SX↔τ↧%<Tº⎇0gθμ↓⌕;σw⌈pL;Y↘YΠ⊙>ξLzλ↓⁸ι⎚|⌕ΠP″M³⧴⬤¦➙⟧⌕/δ;↥⁻ºJK⌊≡<⊖λ✳Jκ⟲➙ξ⭆|^Σ*βMπ⍘⊟;ÀU÷‹⭆◧�ωκ?σηkYOδO/Bº?lAnaK{*Kaκ◨+↧aSφ0q‖B/φx⊘⌕«³ψü✂‹º≡/yc⁴&J↙S²~⎇z§‖$SP≧”θG↘←¹⁴+⮌⪪θ⸿↑Fθ§⁺+-ι⌕-+ιG→↙¹⁴-

Try it online! Link is to verbose version of code. Explanation:

UT

Turn off space padding.

≔”...”θ

Assign a large compressed string consisting of @JonathanAllen's answers for -128..-15 but with + and - signs transposed.

G↘←¹⁴+

Draw a triangle of +s of side 14, which generates the correct results for 1 to 14. The cursor is left in the bottom corner, although the trailing return on the compressed string will move the next output to the next line.

⮌⪪θ⸿

Split the large string on return characters and print each substring in reverse order, thus generating the results from 15 to 128.

Move up a line so that the result for 128 is overwritten by the negated result for 128.

Fθ§⁺+-ι⌕-+ι

Loop through the string transposing + and - back again so that they generate the correct results for 128 to 241.

G→↙¹⁴-

Draw a triangle of -s of side 14, which generates the correct results for 242 to 255.

\$\endgroup\$
5
\$\begingroup\$

Jelly, 1224 + 3716 = 4940 bytes

⁾+-ẋ€Ɱ14ZY€U0¦j“6VⱮ×ė7¬(Ị¢ẋṀⱮM⁵Ѭkbvœ⁸½ẋƓ0⁽ṖçḟŻßɓẉḷ0Ƙ¥@ⱮZĊⱮ{ṫṇØ"ỵðẓ⁵!ḳqḄƬiỴƥṇØm@ɗẆḅƥƲ⁴ŀ-5¦€ÑɓZĖ/gPṄḌ!ẹ$ḞıƒĿỵ⁷£Q.%¦ẊiUı-M⁹ƈxṁ,CsḲtÆƇỴṄĿiæEṛⱮẒʠþƘ%ƘƙṾ ('ȥ€½⁵ḥ+,þ@ẇ&ạV|ĊuAYḃfṖƘLƥQtPƬivxHj)Ṇɓ5JṘØẓæĿøɗjḥrñþa®OṅḍṪ¥=ɼġċṫßṬỌƈrUẉçŻ½\=]€ʂ_ⱮṖ¥Ƥȥ6SṡÆcạdn;ṅⱮDɦ⁹ṢAy)~Ḷ`ẒẓMTİṂḋ|ẉ]Wɠ¿⁾Ṣ|ḷ6hẸƒⱮQ1ẏƝC@Ŀ!ʠ⁽ṃ@ƓŒQ3@ƝḊñçcZ\¥3Z¤~çD>ċọuⱮȦAẈⱮ%L3Æ¢ḞtĖė!ƇtñṪɓẓ¥Fṅ⁵shB'wṪẸ¦ṄÞṭ³ʂḶƊ³iȧṂRœŒƤ\r1Çwi6ŀỵɼḃa⁵Ṣ_Q⁸Ẹ'{|\+Æ®|ḤcʂÑ/Ɓz¶ɦÄ!ʂ"Ẋ ẓĠĠ⁷⁵QƝ¶%ṙƇḋ[^j&W×*°ḳçʂSżḊⱮ⁻IȦṄXȥlẋḅ7;⁺ḃİÞÆðLX¢1K£€Ä&X½VȮ(;Q£ḞḢ¹zG+ṅ¹LḥW³ḅd@^ẊḶJ¹T8ṛ($ȧṢzq,Ṫ⁻ȥ{Ṛ"Ḍ®Ä8QḋþɼȮhỵB"Ḍ⁶ȧZ⁵ẒNɓḃȧ¶Ƒð$Ẇ/"Eṭ*I:ØḃL}<KȦ+ṣ¥x&Ṇ£Œṫḋġ0lİḍ¿H£(ỌƝ×^Ḃ°⁽⁼UƭĠḥkQð7ṫƤżȷƘxjƑRḣqƒ$HƬ7ḳ-JµnṇṣðXŻİẉbSu×]bṾ0ƊHßçQh⁸°ƒɦSCñ_⁾ʂC⁼Ġø⁵SAʋƊİ¡⁴ÄḋẸḶwȧZẈĠ7rṀẏẉṖa¤ɱELƝȧẈṣṄk]d⁹øṇÞṡ.ạtƥṢḅ⁺ṂLpÑƘṄṡḍ⁵,Ǥ$Ọ8ṛuṚvAṖÑ1!vƤD3߶ʂа]EÞUĠ€ḋḲ⁸¬r`YḊ0ṙ5ċmṅȯ*ɲU÷pƭẉṭȦB¹ɦSNɱ)]ĠṾʋ³Øḟ23ṭð#ẆuẎṬṫVɠ(ỊỊQɼF}ịƒ$Ẏ_Ṡ'ḳOLc?ṾŀẊẎṆ⁵p"VẏAȮ⁴ⱮȦ®e®Ɱi"ÇJẊ4ñḍḲY]ḌḌẓ⁺ƙ"iṄḅoLṙfOS&}HGɼĖİĠḷuḃ³ṡıḳỊẹzq⁶ƈ£ċHZɱ.#⁶ḟUṗŀȮṘḶḲ]@¶+ḊĖ8ĖṆɗçŻŀ®ṭẇƓḄḷıM@⁷²36ɲṗ¡ḂḊ'Ṿ⁵ėƙṘ-⁺µʠṡṂ[_¤ḥṢ]ṘÐḤ½ḟ4ȷ}E¹Ṙb⁹ḅḢ¹hƬZ§Ẏẹ÷Æ$ḅoĖẉ⁹ịJ.ȥḊẋʋṄȯ1<ẎṄḲṛœ"æ)ḥ8)ḤlñA⁾%⁶LỴ⁶M4Ṙ\`ỵƊȥŀƒ⁷ḌƬƙḳƑ⁴vʂ⁻ðQpñḷḳṄœ>ṪỴƭƙɓ3[&Ḅzḅ<⁾µİṪȧ⁹C>ẹ{ẈÐlC&j?LṆṛ⁽æȤið<⁽$Ḋ7⁻FṡḅɓɱḂJoPŻẆṃṛḂ¹ẓð[1eƘ2T⁶ḟɼ7P~©ṚṙE8RƒṬẹLœẇẸịøḷ*⁾²ÄƓy€VƈɱNSẏẓѶpƲḞḅX⁹ọaœ<aỴTĠ^ðƑṙẊḅOḥŀG4ị¤ÑėÐịʠɗ=YṚċẋĠżẉịṪṁtḳṪ{ṬṃıızD/ĊvȤpḣðСþfÞ⁶ỵỊµṅḷÄ÷Vẇ\Ạ$-§OẠn^ȯfẎlḊd⁶ni¥ẓɱn¶’ṃ“¶><-][+”¤⁷

A full program.

Try it online!

How?

Almost entirely compression of current bests on esolangs which leave only a single non-zero, with trailing tape moves removed. There is probably a way to evaluate a subset of BF programs such that they will terminate and yield the shortest solutions that'd beat this naive program. There may well also be a way to beat this by a smarter pattern-based or factorisation-building program.

⁾+-ẋ€Ɱ14ZY€U0¦j“ ... ’ṃ“¶><-][+”¤⁷ - Link: no arguments
⁾+-                                - list of characters ['+','-']
    €                              - for each:
   ẋ                               -   repeat
     Ɱ14                           -   mapped across [1..14]
        Z                          - transpose
         Y€                        - join each with newline characters
           U0¦                     - reverse the rightmost
                                   -   (now we have ["+\n++\n+++\n ...","... \n---\n--\n-"]
                                ¤  - nilad followed by link(s) as a nilad:
               “ ... ’             -   a really big number compressed as base 250
                       “¶><-][+”   -   list of characters ['\n','>','<','-',']','[','+']
                      ṃ            -   decompress - use as base 7 digits [1,2,3,4,5,6,0]
              j                    - join (the list ["+\n++...","...--\n-"]) with that
                                   - implicit print
                                 ⁷ - a newline character
                                   - implicit print
\$\endgroup\$
  • \$\begingroup\$ Fixed up the offenders (and removed trailing tape moves) \$\endgroup\$ – Jonathan Allan Aug 11 at 7:24
5
\$\begingroup\$

Ruby 271 + 5363 = 5634

1.upto(255){|n|r=n>(o=n>128?256-n:n)??-:?+;puts o>20?(s=o.to_s(i=(3..9).find{|i|!(s=o.to_s i)[1..-2][s[0]]}).bytes;s[-1]+=s[0]%8;(s[1,9].reverse.map{|c|(c-=s[0])<0??-*-c:c>0??+*c:?-}*?>+'[>'+?+*(s[0]%8)).tr(n>o ?'+-':'','-+')+'[-<'+?+*i+'>]<<]'+(s[-1]>s[0]?'':?>+r)):r*o}

Try it online!

Converts each value to the smallest base which doesn't contain a zero its initial digit at any other place, and then converts from that base. Values greater than 127 are calculated as their inverses.


Non-Wrapping, 221 + 5888 = 6109

1.upto(255){|n|puts n>20?(s=n.to_s(i=(3..9).find{|i|!(s=n.to_s i)[1..-2][s[0]]}).bytes;s[-1]+=s[0]%8;s[1,9].reverse.map{|c|(c-=s[0])<0??-*-c:c>0??+*c:?+}*?>+'[>'+?+*(s[0]%8)+'[-<'+?+*i+'>]<<]'+(s[-1]>s[0]?'':?>+?-)):?+*n}

Using the same approach as above, with non-wrapping cells.

Try it online!

\$\endgroup\$
5
\$\begingroup\$

SuperMarioLang, 231 + 32894 bytes

)
))++>(>+)*>[!((&(>[!*>-)-[!([!
===+"="==="=#===="=#="====#==#
+++<(       )    !+< !  ( <
+===+ (   - .    #=" #===="
>[!+( (   !(<
"=#++ (   #="
- (++ !.))    )))            <
) +++ #======================"
+ +++
+ ++!
!+<=#
#="

Try it online!

This sure can be golfed more, as the output is the most basic for brainfuck, but it took me all day to write this answer (my three children leave me little time to spare) and I'm proud that at least I managed to achieve this.

\$\endgroup\$
4
\$\begingroup\$

Python 2, 70 + 8428 = 8498

-2 Bytes Thanks to A__!
-20 Bytes Thanks to Jonathan Allan!
-229 Bytes by putting the number in the second cell
-1000ish bytes by switching from 16 to 9

p='+'
i=1
exec"print[p*i,i/9*p+'[>'+p*9+'<-]>'+i%9*p][i>20];i+=1;"*255

Try it Online!

Output

\$\endgroup\$
4
\$\begingroup\$

JavaScript (Node.js), 691 + 3627 = 4318

Using the same approach as @Neil's Charcoal answer, and therefore also based on @JonathanAllan's Jelly answer.

_=>(a=require('zlib').inflateRawSync(Buffer('bZXRsQMhCEX/0wpDB4yNOPbfxoMLKLAvs8lyQBEBDf2I9MHXf+I3X/f9hCJVsckdBgH3gih8YHT80Kpj01zQ7dUZb9osZ0Fzfvra+qiCl6GaqTB9vTdvNn2TjiaVjvBQKG5mHS/mMBGrywc1Vl2eIzqbwFPReVjJo1+I3mLfbAOYY201Sm491vaxDM+Vh9WSaJtgfBDYUHQeVrKkqzMEaYMrWpgbMS7MtIlIry3DgztWahbqNPElykKItD4e1hgN8qyrHA1CJ/dC5Imz3WS5PeDKDdGKDvS8WqBq+reSd4lH2Gtjcr9W95ydm/8kcaaRPsNpMiHS1kjW8qWAOsFmWEdHeiw/kenG1zdqzR0bVXhy0VKVPQVesFNloU4TI5nsp4qzunLytsCheK4B2Gz0UeXobM+M3Q2NcXhx+GlF389GH53eWr31utUf90W02MVu89LZs45IhP/Qc6jx9dYoCs8W1d4vKHHO8wJ9l8y4Vd614g788IzrViKArok/CmguX/KLqSl+c7h3STZcxUYVnvwH','base64'))+'')+`
--[>-<--]>-
`+[...a.split`
`].reverse().map(s=>s.replace(/[-+]/g,c=>c>','?'+':'-')).join`
`

Try it online!

\$\endgroup\$
2
\$\begingroup\$

Ruby 26 + 32895 = 32921 bytes

puts (0..255).map{|n|?+*n}

As a baseline. This is the simplest solution I can think of.

\$\endgroup\$
  • \$\begingroup\$ 0 should probably be 1 (although I asked if we may output for zero too) \$\endgroup\$ – Jonathan Allan Aug 11 at 2:57
  • \$\begingroup\$ -3: 256.times{|n|puts ?+*n} not that it matters too much... \$\endgroup\$ – primo Aug 11 at 15:11
2
\$\begingroup\$

Unofficial Keg 16 + 32895 = 32911 bytes

A baseline solution for a golfing language. This is the simplest I can think of.

ÿï((:|\+$;)_\
')

Try it online!

\$\endgroup\$
  • \$\begingroup\$ As it stands this needs reversing (although I asked if we may output descending) \$\endgroup\$ – Jonathan Allan Aug 11 at 2:58
  • 1
    \$\begingroup\$ I will wait until OP replied with your query. \$\endgroup\$ – A _ Aug 11 at 2:59
1
\$\begingroup\$

Retina 0.8.2, 28 + 16640 = 16668 bytes


127$*+128$*-
\+
¶$`+
-
¶$'-

Try it online! Includes output for 0. Just outputs using +s up to 127 and -s up to 255.

\$\endgroup\$
1
\$\begingroup\$

Scala, 95 + 16639 = 16734 bytes

object M extends App{(1 to 127).map(x=>println("+"*x));(0 to 127).map(x=>println("-"*(128-x)))}

Try it online!

A simple answer which obviously is not going to win. Uses only the fact that the - operator (decreasing a byte) wraps back to 255.

\$\endgroup\$
  • \$\begingroup\$ Scala isn't the best golfing language, but you can save quite a few bytes by just writing a method instead of a whole app, that's allowed under typical golfing rules here. Additionally, instead of printing out the result, it's usually more byte efficient to just return the list. On Try It Online, you can put all the object extends app type stuff in the header and footer, to run your method without counting the irrelevant bytes. \$\endgroup\$ – Ethan Aug 13 at 14:42
  • \$\begingroup\$ In this case, you can save 36 bytes with: tio.run/… \$\endgroup\$ – Ethan Aug 13 at 14:46
1
\$\begingroup\$

05AB1E, score: 4848 (1219 bytes source code + 3629 bytes output)

'+14L×»Â'+'-:•тômG‚ΣP;e3₃ìèÕwƵÜè-½;¨Z±µΛé±V™NkKJžšë₅ušΘ(M₄+ܧ‘мoÕθÚzÇYï#J×¢θýει™₃tQØËв¿U®GƵ´GZ’¯ε¨jjØÛλÄ₅X∍µxθÆvËjS¹∊f˜«VÐZ<ÇĆ’Š2&ØÍäßÍĆlΓV₆ëßê©Œ‡ÛiyĆ=*÷Í´¢‹j,3½íµ'ž4‘û29ôãζм§x…1P|ÛéΣ=~çš5Œ±€Ô“q òǝ?ó¬Æí5¢G‘°êóÿв4LFÍK&zζb2Ó∍æïι8₃4XƵÜÙôt₁‘,Ö…6₅ÞαÇø†c÷Ûλ9…F;ĆA¬iмéλ8ä¶×ƶYΔè¡aû
v=M„ûñ]C₅Õ¶Þ*Ú`Úˆ/₃UιΩW¾eTεvˆ£nYõ¶S¼ÿ{õN9Ω¨£1w‚Ï”Xd;¹OýŒéDнĀvÌ–d=±ΛΣÃÊîD—GR>~ºD‹K¥‘l×yz.éFE1Í©ØM/ƒœOαU‘KΓO‰∍Aм‚œ2нƶþøÌ×¼āHgΩC'Λê¡-߅̾Ā–м–¿<₂δ¡áтgö¬Í~θFíнā‹°ü8[À(xï¸.›*W©¹º₅ÇмδçΛλÉFÕL4†EćÛ´ǝ{тÀ¯†ª™ŽćÉuè¬ƵÀSìFÙη¶1ȸ֛GÜlRv˜jy5mfè∞_åEηŠyo‡xÐ/™¥òÜ#Áx#м6r&₁cÿX۬ƄÌƵ₅∊бγ²Θj∞;6o·¼ýŠΩÚò›c[>ö₅¥=—ªÃ±¿ecSBÐ6Ê!ú¢E¡âìþ߃¿;Ò;„Xoƶ*∍Σǝñ"Tµ†8s®βµ4ìA|«÷γt³+<B¤špTp¸ï7Ëo[>–îiTôó檂?É8zн²ìC1ãl6+ƶå4sЌÚb(°·8ˆ´ˆŸ²ÚÌY3ŸËîÿ‘àUāçh9im„ÝĆm3ŠC×η“åX¨₄|ëPô3O<6Mþ'Ì-s{e`ζQΔ¹œP@l%¥‹èδcsÎcΘÂþ®i₅∞ð¡@`¸¿…BÎN2н>g;ΛSníÐ^Rαθ₆ΣÕ3¹ÐÔCfrQ¦7¨gfŒ|v||þÚÜvz≠pệT˜ǝ=ß·„®¡xи™#?†-Aʒ2åβ₃A¬Ão6ºтõ}Ë.&QηÕ~Δ4€@-5î^a̬.»Èõ4áL¾ò¥n
¶p›éŽžgǝSZγāmεålz₅°dβÂ~λà€Ê%zmŠиˆRη≠éwüǝΛζƵмƶdζ`SÖ₅\≠³äŸj!"(†Üćí“ŠxVöÇe#‡PÏɇ"xð®6ÊεGиe"NÊ›i.k…’Ú8:ǝ/₂ÌÜkãŽo™Áā‚ζΩ«мÁp=}ÂýõλиëÆζиîSÖt¶‚wĀθºd“
₆ŽsLвQ”ÖÜvGõƶiò{÷ÀPy/‹θÑè}¿Á5º˜¯sëØSËƶK_ÍyX∊3Øå4IOθ I+∊ÌñÙçakÞŸŒʒ椱,mεjæ‰O%<ÅtƒVöV=³ÇƶƒC¬‰xðȬM4Ïóä)∍Êfa§õØÂ,“X¾₆₄Ö¦ÈJµÿmȾÎ∍=¡YнŸV!¨J£ü|&¢cUg4e±6w™¼“fÊÙ ,Ž|šP·ùèd}ãŠÅ#GγhYÇN´¼ÁÌMGʒ§Æ1¸‚Δ:j7ΩƵAqá¢<äò´Θ•“-+>][<
“ÅвJs»

Output is a port of @Neil's Charcoal answer, so make sure to upvote him as well!

Try it online.

Explanation:

'+                      '# Push a "+"
  14L                    # Push a list in the range [1,14]
     ×                   # Repeat the "+" that many times as string: ["+","++","+++",...]
      »                  # Join these strings by newlines
       Â                 # Bifurcate it (short for Duplicate & Reverse copy)
        '+'-:            # Replace all "+" for "-"
•тôm...ò´Θ•              # Push compressed integer 18302226724133383998250107335646038608225046109581810887431446835557987256955354954509163336111304735021044106950262344427892947550841899099611054599885158084492762836812161427050275372983896356189873217422270707048679161884382784973706990123491668808316983431947218815813441209357230471947480445527653281307616982417034289994948061000591427114479102114229222423495882782326672492922269629953210111953959859902281658658439835047182218017657439552630082372181376525413759195763958434475193943488791777228373958162363214252781530693967200164833437881609482421594458966138936433283311419810119896020066082377462298326514652481546557215787238749539873039910952003326954299252586309028025200870623285261199142261807190771369911425142504345271105103035478661301795311828767848235694787283635190364512722037791815037475799545052058894119573664059402985074146226606245848663046901585891882552845134633210352731812274795773552227786140415336764040421001184646630833787917147474644077938952053956874031774587527717793206158934471919975714697099518810712871948398923739276321843455690477328633199064849928974478179435369018512187592263559949835435473650276637191671401061097340919482725489354844550472281209666291367830643727358624135371626379451084552903536762775083445643853806852513122856150361979701049267928548063465967555886420646898485890108420374549485423234679327438138302730692296669063696581268627535131608200283731275951916433249161017999011290215932205767570177905442947203826039265793694687731078121685736352831955773450680945121984143563963149079990880719573067270197057276219243821370885160589340870891346257233778661271435191351926058080186177296974642815621539128350975752011448032262905976766027084285390087966682234081285502231618383962136055937741758125210487103109250885525370548106186539295203084216890820183575639032509902729248016346072449636148699098049659529168757116706057794418245039559549604674043961198447420311513558044229534569679723496972989178091506175996419296780639212192856671882116470677803387276814324094247508763467887301684211112080372036284371596072213153957411329532202432808677726223798116216330275138697515009114689489577370759238857602332613821627667530873656034962827810927061440822808985980383150080767015247752949877604372029666921293343149038246728649404223795601960991061986482063744094221616603849190547637439116347239768975065217383194655478092271791087679802480625740835053103772632489195507735140119501008503485917456615266596210333924964188989678201446160111091052524780358620148464886929989973412559470628329156848340802659185674541202787279386158230228148429451357621709967247567009904339076971643378255946241011579618610095231079053137553024558887196808709177094386352264708730475553352082713138948975317023830903305435434148828341201637230241697870602236452176330225025183518037443992277303117971849493548326433875
           "-+>][<\n"    # Push string "-+>][<\n"
                     Åв  # Convert the integer with this string as custom base
                       J # Join all characters together to a single string
s                        # Swap so the triangle of "-" we created it as the top of the stack
 »                       # Join the strings on the stack by newlines
                         # (and output implicitly as result)

See this 05AB1E tip of mine (section How to compress large integers) to understand why •тôm...ò´Θ• is 183...875.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.