open System
open System.Runtime.InteropServices
let bufsiz=32
[<Literal>]
//MacPorts
//let libgmp="/opt/local/lib/libgmp.dylib"
//ideone
let libgmp="/usr/lib/i386-linux-gnu/libgmp.so.10"
//let libgmp="/usr/lib/libgmp.so.3"
//paiza.io/atcoder
//let libgmp="/usr/lib/x86_64-linux-gnu/libgmp.so.10"
//wandbox/yukicoder
//let libgmp="/usr/lib64/libgmp.so.10"
//AOJ
//let libgmp="/usr/lib64/libgmp.so.3"
module libc=
[<DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)>]extern int write(int x,int y,int z)
[<DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)>]extern IntPtr
fopen(string x
,string y
) [<DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)>]extern int fflush(IntPtr x
) [<DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)>]extern int puts(string x
) [<DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)>]extern int system(string x
)
module gmp=
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_init(IntPtr a)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_clear(IntPtr a)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_out_str(IntPtr a,int b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_set(IntPtr a,IntPtr b)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_set_str(IntPtr a,string b,int c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_set_si(IntPtr a,int64 b)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern int __gmpz_cmp_si(IntPtr a,int64 b)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern int64 __gmpz_get_si(IntPtr a)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_abs(IntPtr a,IntPtr b)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_add(IntPtr a,IntPtr b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_add_ui(IntPtr a,IntPtr b,int64 c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_mul(IntPtr a,IntPtr b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_mul_si(IntPtr a,IntPtr b,int64 c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_mul_ui(IntPtr a,IntPtr b,int64 c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_sub(IntPtr a,IntPtr b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_sub_ui(IntPtr a,IntPtr b,int64 c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_ui_sub(IntPtr a,int64 b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_tdiv_q(IntPtr a,IntPtr b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_tdiv_r(IntPtr a,IntPtr b,IntPtr c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_tdiv_q_ui(IntPtr a,IntPtr b,int64 c)
[<DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)>]extern void __gmpz_tdiv_r_ui(IntPtr a,IntPtr b,int64 c)
let mul(a1:IntPtr,b1:IntPtr,c1:IntPtr,d1:IntPtr,a2:IntPtr,b2:IntPtr,c2:IntPtr,d2:IntPtr) =
let a0=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(a0)
let b0=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(b0)
let c0=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(c0)
let d0=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(d0)
let t=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(t)
let u=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(u)
gmp.__gmpz_mul(t,a1,a2)
gmp.__gmpz_mul(u,b1,c2)
gmp.__gmpz_add(a0,t,u)
gmp.__gmpz_mul(t,a1,b2)
gmp.__gmpz_mul(u,b1,d2)
gmp.__gmpz_add(b0,t,u)
gmp.__gmpz_mul(t,c1,a2)
gmp.__gmpz_mul(u,d1,c2)
gmp.__gmpz_add(c0,t,u)
gmp.__gmpz_mul(t,c1,b2)
gmp.__gmpz_mul(u,d1,d2)
gmp.__gmpz_add(d0,t,u)
gmp.__gmpz_set(a1,a0)
gmp.__gmpz_set(b1,b0)
gmp.__gmpz_set(c1,c0)
gmp.__gmpz_set(d1,d0)
gmp.__gmpz_clear(a0);Marshal.FreeHGlobal(a0)
gmp.__gmpz_clear(b0);Marshal.FreeHGlobal(b0)
gmp.__gmpz_clear(c0);Marshal.FreeHGlobal(c0)
gmp.__gmpz_clear(d0);Marshal.FreeHGlobal(d0)
gmp.__gmpz_clear(t);Marshal.FreeHGlobal(t)
gmp.__gmpz_clear(u);Marshal.FreeHGlobal(u)
let stdout
=libc.
fopen("/dev/stdout","w")let a1=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(a1)
let b1=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(b1)
let c1=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(c1)
let d1=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(d1)
let a2=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(a2)
let b2=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(b2)
let c2=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(c2)
let d2=Marshal.AllocHGlobal(bufsiz)
gmp.__gmpz_init(d2)
gmp.__gmpz_set_si(a1,1L)
gmp.__gmpz_set_si(b1,0L)
gmp.__gmpz_set_si(c1,0L)
gmp.__gmpz_set_si(d1,1L)
gmp.__gmpz_set_si(a2,1L)
gmp.__gmpz_set_si(b2,1L)
gmp.__gmpz_set_si(c2,1L)
gmp.__gmpz_set_si(d2,0L)
let mutable N=int(Console.ReadLine())
N<-((N+3)/2)*2
while N>0 do
if N%2>0 then
mul(a1,b1,c1,d1,a2,b2,c2,d2)
mul(a2,b2,c2,d2,a2,b2,c2,d2)
N<-N/2
gmp.__gmpz_sub_ui(c1,c1,1L)
gmp.__gmpz_out_str(stdout,10,c1)
gmp.__gmpz_clear(a1);Marshal.FreeHGlobal(a1)
gmp.__gmpz_clear(b1);Marshal.FreeHGlobal(b1)
gmp.__gmpz_clear(c1);Marshal.FreeHGlobal(c1)
gmp.__gmpz_clear(d1);Marshal.FreeHGlobal(d1)
gmp.__gmpz_clear(a2);Marshal.FreeHGlobal(a2)
gmp.__gmpz_clear(b2);Marshal.FreeHGlobal(b2)
gmp.__gmpz_clear(c2);Marshal.FreeHGlobal(c2)
gmp.__gmpz_clear(d2);Marshal.FreeHGlobal(d2)
b3BlbiBTeXN0ZW0Kb3BlbiBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMKCmxldCBidWZzaXo9MzIKCls8TGl0ZXJhbD5dCi8vTWFjUG9ydHMKLy9sZXQgbGliZ21wPSIvb3B0L2xvY2FsL2xpYi9saWJnbXAuZHlsaWIiCi8vaWRlb25lCmxldCBsaWJnbXA9Ii91c3IvbGliL2kzODYtbGludXgtZ251L2xpYmdtcC5zby4xMCIKLy9sZXQgbGliZ21wPSIvdXNyL2xpYi9saWJnbXAuc28uMyIKLy9wYWl6YS5pby9hdGNvZGVyCi8vbGV0IGxpYmdtcD0iL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbXAuc28uMTAiCi8vd2FuZGJveC95dWtpY29kZXIKLy9sZXQgbGliZ21wPSIvdXNyL2xpYjY0L2xpYmdtcC5zby4xMCIKLy9BT0oKLy9sZXQgbGliZ21wPSIvdXNyL2xpYjY0L2xpYmdtcC5zby4zIgoKbW9kdWxlIGxpYmM9CiBbPERsbEltcG9ydCgibXN2Y3J0IixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiBpbnQgd3JpdGUoaW50IHgsaW50IHksaW50IHopCiBbPERsbEltcG9ydCgibXN2Y3J0IixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiBJbnRQdHIgZm9wZW4oc3RyaW5nIHgsc3RyaW5nIHkpCiBbPERsbEltcG9ydCgibXN2Y3J0IixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiBpbnQgZmZsdXNoKEludFB0ciB4KQogWzxEbGxJbXBvcnQoIm1zdmNydCIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gaW50IHB1dHMoc3RyaW5nIHgpCiBbPERsbEltcG9ydCgibXN2Y3J0IixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiBpbnQgc3lzdGVtKHN0cmluZyB4KQoKbW9kdWxlIGdtcD0KIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiB2b2lkIF9fZ21wel9pbml0KEludFB0ciBhKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X2NsZWFyKEludFB0ciBhKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X291dF9zdHIoSW50UHRyIGEsaW50IGIsSW50UHRyIGMpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gdm9pZCBfX2dtcHpfc2V0KEludFB0ciBhLEludFB0ciBiKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X3NldF9zdHIoSW50UHRyIGEsc3RyaW5nIGIsaW50IGMpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gdm9pZCBfX2dtcHpfc2V0X3NpKEludFB0ciBhLGludDY0IGIpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gaW50IF9fZ21wel9jbXBfc2koSW50UHRyIGEsaW50NjQgYikKIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiBpbnQ2NCBfX2dtcHpfZ2V0X3NpKEludFB0ciBhKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X2FicyhJbnRQdHIgYSxJbnRQdHIgYikKIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiB2b2lkIF9fZ21wel9hZGQoSW50UHRyIGEsSW50UHRyIGIsSW50UHRyIGMpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gdm9pZCBfX2dtcHpfYWRkX3VpKEludFB0ciBhLEludFB0ciBiLGludDY0IGMpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gdm9pZCBfX2dtcHpfbXVsKEludFB0ciBhLEludFB0ciBiLEludFB0ciBjKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X211bF9zaShJbnRQdHIgYSxJbnRQdHIgYixpbnQ2NCBjKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X211bF91aShJbnRQdHIgYSxJbnRQdHIgYixpbnQ2NCBjKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X3N1YihJbnRQdHIgYSxJbnRQdHIgYixJbnRQdHIgYykKIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiB2b2lkIF9fZ21wel9zdWJfdWkoSW50UHRyIGEsSW50UHRyIGIsaW50NjQgYykKIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiB2b2lkIF9fZ21wel91aV9zdWIoSW50UHRyIGEsaW50NjQgYixJbnRQdHIgYykKIFs8RGxsSW1wb3J0KGxpYmdtcCxDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCk+XWV4dGVybiB2b2lkIF9fZ21wel90ZGl2X3EoSW50UHRyIGEsSW50UHRyIGIsSW50UHRyIGMpCiBbPERsbEltcG9ydChsaWJnbXAsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpPl1leHRlcm4gdm9pZCBfX2dtcHpfdGRpdl9yKEludFB0ciBhLEludFB0ciBiLEludFB0ciBjKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X3RkaXZfcV91aShJbnRQdHIgYSxJbnRQdHIgYixpbnQ2NCBjKQogWzxEbGxJbXBvcnQobGliZ21wLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKT5dZXh0ZXJuIHZvaWQgX19nbXB6X3RkaXZfcl91aShJbnRQdHIgYSxJbnRQdHIgYixpbnQ2NCBjKQoKbGV0IG11bChhMTpJbnRQdHIsYjE6SW50UHRyLGMxOkludFB0cixkMTpJbnRQdHIsYTI6SW50UHRyLGIyOkludFB0cixjMjpJbnRQdHIsZDI6SW50UHRyKSA9CiBsZXQgYTA9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KQogZ21wLl9fZ21wel9pbml0KGEwKQogbGV0IGIwPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeikKIGdtcC5fX2dtcHpfaW5pdChiMCkKIGxldCBjMD1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopCiBnbXAuX19nbXB6X2luaXQoYzApCiBsZXQgZDA9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KQogZ21wLl9fZ21wel9pbml0KGQwKQogbGV0IHQ9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KQogZ21wLl9fZ21wel9pbml0KHQpCiBsZXQgdT1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopCiBnbXAuX19nbXB6X2luaXQodSkKCiBnbXAuX19nbXB6X211bCh0LGExLGEyKQogZ21wLl9fZ21wel9tdWwodSxiMSxjMikKIGdtcC5fX2dtcHpfYWRkKGEwLHQsdSkKIGdtcC5fX2dtcHpfbXVsKHQsYTEsYjIpCiBnbXAuX19nbXB6X211bCh1LGIxLGQyKQogZ21wLl9fZ21wel9hZGQoYjAsdCx1KQogZ21wLl9fZ21wel9tdWwodCxjMSxhMikKIGdtcC5fX2dtcHpfbXVsKHUsZDEsYzIpCiBnbXAuX19nbXB6X2FkZChjMCx0LHUpCiBnbXAuX19nbXB6X211bCh0LGMxLGIyKQogZ21wLl9fZ21wel9tdWwodSxkMSxkMikKIGdtcC5fX2dtcHpfYWRkKGQwLHQsdSkKCiBnbXAuX19nbXB6X3NldChhMSxhMCkKIGdtcC5fX2dtcHpfc2V0KGIxLGIwKQogZ21wLl9fZ21wel9zZXQoYzEsYzApCiBnbXAuX19nbXB6X3NldChkMSxkMCkKCiBnbXAuX19nbXB6X2NsZWFyKGEwKTtNYXJzaGFsLkZyZWVIR2xvYmFsKGEwKQogZ21wLl9fZ21wel9jbGVhcihiMCk7TWFyc2hhbC5GcmVlSEdsb2JhbChiMCkKIGdtcC5fX2dtcHpfY2xlYXIoYzApO01hcnNoYWwuRnJlZUhHbG9iYWwoYzApCiBnbXAuX19nbXB6X2NsZWFyKGQwKTtNYXJzaGFsLkZyZWVIR2xvYmFsKGQwKQogZ21wLl9fZ21wel9jbGVhcih0KTtNYXJzaGFsLkZyZWVIR2xvYmFsKHQpCiBnbXAuX19nbXB6X2NsZWFyKHUpO01hcnNoYWwuRnJlZUhHbG9iYWwodSkKCgpsZXQgc3Rkb3V0PWxpYmMuZm9wZW4oIi9kZXYvc3Rkb3V0IiwidyIpCmxldCBhMT1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopCmdtcC5fX2dtcHpfaW5pdChhMSkKbGV0IGIxPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeikKZ21wLl9fZ21wel9pbml0KGIxKQpsZXQgYzE9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KQpnbXAuX19nbXB6X2luaXQoYzEpCmxldCBkMT1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopCmdtcC5fX2dtcHpfaW5pdChkMSkKbGV0IGEyPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeikKZ21wLl9fZ21wel9pbml0KGEyKQpsZXQgYjI9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KQpnbXAuX19nbXB6X2luaXQoYjIpCmxldCBjMj1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopCmdtcC5fX2dtcHpfaW5pdChjMikKbGV0IGQyPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeikKZ21wLl9fZ21wel9pbml0KGQyKQoKZ21wLl9fZ21wel9zZXRfc2koYTEsMUwpCmdtcC5fX2dtcHpfc2V0X3NpKGIxLDBMKQpnbXAuX19nbXB6X3NldF9zaShjMSwwTCkKZ21wLl9fZ21wel9zZXRfc2koZDEsMUwpCmdtcC5fX2dtcHpfc2V0X3NpKGEyLDFMKQpnbXAuX19nbXB6X3NldF9zaShiMiwxTCkKZ21wLl9fZ21wel9zZXRfc2koYzIsMUwpCmdtcC5fX2dtcHpfc2V0X3NpKGQyLDBMKQoKbGV0IG11dGFibGUgTj1pbnQoQ29uc29sZS5SZWFkTGluZSgpKQpOPC0oKE4rMykvMikqMgp3aGlsZSBOPjAgZG8KIGlmIE4lMj4wIHRoZW4KICBtdWwoYTEsYjEsYzEsZDEsYTIsYjIsYzIsZDIpCiBtdWwoYTIsYjIsYzIsZDIsYTIsYjIsYzIsZDIpCiBOPC1OLzIKCmdtcC5fX2dtcHpfc3ViX3VpKGMxLGMxLDFMKQpnbXAuX19nbXB6X291dF9zdHIoc3Rkb3V0LDEwLGMxKQpsaWJjLmZmbHVzaChzdGRvdXQpCmxpYmMucHV0cygiIikKbGliYy5mZmx1c2goc3Rkb3V0KQoKZ21wLl9fZ21wel9jbGVhcihhMSk7TWFyc2hhbC5GcmVlSEdsb2JhbChhMSkKZ21wLl9fZ21wel9jbGVhcihiMSk7TWFyc2hhbC5GcmVlSEdsb2JhbChiMSkKZ21wLl9fZ21wel9jbGVhcihjMSk7TWFyc2hhbC5GcmVlSEdsb2JhbChjMSkKZ21wLl9fZ21wel9jbGVhcihkMSk7TWFyc2hhbC5GcmVlSEdsb2JhbChkMSkKZ21wLl9fZ21wel9jbGVhcihhMik7TWFyc2hhbC5GcmVlSEdsb2JhbChhMikKZ21wLl9fZ21wel9jbGVhcihiMik7TWFyc2hhbC5GcmVlSEdsb2JhbChiMikKZ21wLl9fZ21wel9jbGVhcihjMik7TWFyc2hhbC5GcmVlSEdsb2JhbChjMikKZ21wLl9fZ21wel9jbGVhcihkMik7TWFyc2hhbC5GcmVlSEdsb2JhbChkMikK