From 2d5d9af08576f1faa48347726b6fa4296b363674 Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Sat, 16 Dec 2017 22:57:31 +0000 Subject: [PATCH] Day 16 --- advent-of-code.cabal | 14 +- data/advent16.txt | 1 + problems/day16.html | 156 ++++++++++++++ src/advent16/advent16.hs | 124 +++++++++++ src/advent16/advent16.ipynb | 413 ++++++++++++++++++++++++++++++++++++ 5 files changed, 707 insertions(+), 1 deletion(-) create mode 100644 data/advent16.txt create mode 100644 problems/day16.html create mode 100644 src/advent16/advent16.hs create mode 100644 src/advent16/advent16.ipynb diff --git a/advent-of-code.cabal b/advent-of-code.cabal index a9cf450..de95bf6 100644 --- a/advent-of-code.cabal +++ b/advent-of-code.cabal @@ -153,4 +153,16 @@ executable advent15other hs-source-dirs: src/advent15 main-is: advent15other.hs default-language: Haskell2010 - build-depends: base >= 4.7 && < 5 \ No newline at end of file + build-depends: base >= 4.7 && < 5 + +executable advent16 + hs-source-dirs: src/advent16 + main-is: advent16.hs + default-language: Haskell2010 + build-depends: base >= 4.7 && < 5 + , containers + , mtl + , text + , megaparsec + , vector + diff --git a/data/advent16.txt b/data/advent16.txt new file mode 100644 index 0000000..6cc02e1 --- /dev/null +++ b/data/advent16.txt @@ -0,0 +1 @@ +po/k,x4/0,s12,x7/6,pf/c,x15/14,s11,x7/8,s12,x6/0,pd/i,x11/12,s1,x10/8,s4,x6/5,s2,x14/7,s15,x13/11,s8,x10/15,s8,x6/11,pm/c,x2/4,s5,pa/k,s7,x11/15,s8,x0/10,s12,x9/3,s3,x5/4,s7,x7/10,pj/i,x14/15,pl/o,x6/13,pb/h,x12/5,pe/l,x1/7,s2,x6/13,pp/k,x10/1,s13,x7/12,s8,x3/11,pf/i,x1/8,s2,x15/5,s5,x8/9,s1,x1/14,s9,x9/11,pj/l,x3/10,pp/m,x7/13,pg/a,x14/11,pc/f,s3,x6/15,s2,x10/14,pb/l,x6/13,s8,pa/h,x9/14,pl/d,x13/11,s7,x4/0,s8,x8/11,ph/m,x3/14,s3,x5/4,po/f,s14,x3/12,s13,x5/13,s15,x14/15,pb/i,x11/9,s7,x6/15,s14,x9/8,pf/g,s4,x2/3,s1,x10/12,s7,x4/7,s15,x10/0,s14,x14/1,s7,x11/4,s13,x8/14,pm/n,x6/5,s9,pc/h,x4/0,pa/m,x11/7,s11,x1/2,s14,pf/o,x12/11,s3,x0/7,pn/a,x10/9,pk/j,x3/14,s2,pg/m,x6/12,s12,x1/10,po/b,s14,x6/13,s5,x2/10,s5,pl/k,x14/4,pp/m,s7,x7/6,pn/o,x13/15,s4,pm/d,x3/10,po/n,x13/5,pj/e,x11/7,s8,x0/2,s13,x4/6,s12,x10/9,s10,x13/14,s5,x6/10,pn/k,x4/8,pi/g,x11/3,s7,x4/5,pn/l,x15/7,pf/j,x13/0,pi/g,x14/8,po/e,x4/2,s11,x8/10,pl/c,x15/5,s4,x4/7,pd/e,x9/1,s6,x10/12,s3,x3/8,pl/j,x9/0,s2,x15/14,s13,x8/4,s9,x13/3,pn/k,s7,x6/15,s9,x7/13,pg/i,x3/9,s11,x5/15,pk/c,x7/0,s6,x2/14,po/i,x6/1,pp/g,x4/10,pk/f,s1,x2/13,s6,pa/i,x12/1,s15,x0/5,s14,x11/10,pg/e,x5/12,s2,x2/8,s12,pl/n,s3,pf/g,x14/4,s15,x12/2,pb/h,x10/1,pc/m,x2/14,pg/l,s4,x3/12,s7,x13/2,s7,x1/10,s1,pc/p,x5/2,s9,x1/11,s14,x0/2,pe/k,x12/1,s9,x4/7,s15,x1/0,s10,x9/4,po/i,x0/14,pj/h,x10/6,s2,x4/12,pe/a,s3,x9/13,s4,x3/8,pm/b,x1/13,s7,x8/4,pk/n,s9,x14/7,pj/o,x0/8,s13,x5/7,s11,x8/1,s6,x5/15,pn/f,x9/11,s11,x7/5,pp/k,x3/11,s3,pb/f,s5,x2/10,pg/d,s4,x6/5,s14,x9/7,s13,x5/11,po/h,s14,x4/0,s11,x10/2,s12,pk/n,x4/8,pb/e,x12/5,s7,x8/0,s9,pi/p,s14,x13/5,ph/c,x9/14,s8,x4/15,s10,x2/12,po/i,x1/10,s5,x3/14,pd/l,x2/6,s3,x5/0,pb/j,x6/14,pd/o,x3/5,s13,x15/7,s6,pe/g,x9/3,s3,x15/11,pa/p,x9/3,pl/m,s11,pc/a,x11/6,s4,x0/2,s11,x13/7,po/e,x5/15,s13,x6/1,s12,x14/10,s4,x7/3,s7,x13/0,s8,pk/l,x11/4,s2,x9/10,s15,x5/8,s15,pd/o,s15,x4/7,pl/e,x2/8,pg/d,x11/14,s11,x6/0,pb/i,x13/3,pl/c,x4/11,s10,x7/8,s7,x4/12,pj/f,x14/5,s11,x6/9,s15,x15/10,pn/i,x7/9,pk/f,x12/6,pj/g,x7/2,pk/i,x6/15,s4,pm/b,x11/0,pj/c,x1/2,s6,x7/14,s12,x10/9,s7,x1/15,pn/f,x11/6,pl/k,s2,x14/0,ph/m,x15/12,pe/o,x4/6,s9,x14/12,s15,x2/11,s2,x10/8,s8,x5/12,s13,x10/14,pp/c,x12/11,s1,x13/15,pa/m,x5/7,pg/j,x13/11,s3,x9/0,s8,x7/11,s13,x9/12,s8,x15/0,pa/d,x4/5,s13,x3/12,pk/h,x1/2,s14,x0/12,s8,x6/8,pb/m,x14/1,s9,x13/7,pi/a,s5,pf/l,x6/14,s11,x15/3,pm/n,x13/5,s12,ph/f,x15/11,pc/i,x14/8,s3,x6/15,s15,pe/a,x3/7,pm/f,x12/4,pi/h,s12,x6/1,pk/b,x0/2,s1,x6/15,s9,x14/10,s15,x0/11,s7,x4/7,pl/m,x0/10,po/p,x5/11,pc/e,x7/0,s14,pd/j,x2/4,s1,x0/14,s6,x11/15,s12,x0/10,pc/e,x5/12,pm/l,x13/11,s14,x3/5,s2,x9/1,pb/i,s7,x12/14,s14,x13/3,s8,x8/0,s3,x1/2,s7,x5/4,s9,x13/0,s15,x4/15,pl/d,x8/1,s2,x7/14,s4,x15/12,s12,x8/13,pc/f,x14/4,s13,x5/9,s4,x14/1,s8,x10/6,s2,x2/12,s7,x13/7,s7,x14/5,s6,x13/0,s4,x12/5,pn/e,x6/2,pm/o,x4/12,pf/b,x11/9,s4,x4/10,s5,x9/2,s15,x13/10,s2,x0/2,pl/g,x4/1,s9,x11/7,s10,po/m,x0/9,s14,pp/l,s1,x15/14,pj/f,x1/10,s10,x11/6,s3,x3/9,s1,x15/5,s6,x11/14,s14,x12/13,s6,x2/8,s3,x6/1,pl/c,x13/9,pp/o,x12/11,s7,x8/13,s2,x12/0,pd/i,x14/4,s15,x11/10,s3,x6/1,pj/c,x3/15,pl/d,x4/13,s9,x11/3,s12,x6/14,s7,x7/10,pc/i,x3/8,s4,x6/9,pp/d,x12/13,s10,x6/4,s9,x13/5,s11,x10/2,pe/k,x3/9,pc/o,x12/15,s13,x0/8,pj/g,s5,x3/15,s15,x0/4,s9,x12/1,s1,x15/10,s2,x12/8,pd/n,x14/13,s3,x12/5,pf/a,x3/4,pb/h,x15/5,pj/c,x4/1,s13,x13/12,s14,x9/8,pm/g,x7/5,pa/e,x12/14,ph/k,x5/8,s8,x0/12,s14,x10/9,pm/c,x4/7,s2,x13/2,s11,x8/12,s1,x10/4,pj/h,s10,x5/0,pl/a,x12/14,s3,x4/1,s3,x7/0,pg/m,x5/2,s12,x8/7,po/e,x2/10,s12,x11/3,s7,x12/2,s1,x11/5,s12,x14/4,s11,x10/8,ph/m,x2/5,pf/p,x8/14,s2,x11/12,s7,x7/6,pi/a,x10/1,s13,x14/5,pp/j,x9/4,pl/b,s7,x13/0,pa/o,x14/8,pb/j,s8,x3/5,pl/p,s13,x15/13,s1,x14/8,s1,ph/o,x10/0,s15,x13/3,pa/p,s10,x4/12,pm/f,x2/6,s3,x8/3,s10,x0/10,s2,x1/5,pj/p,s14,x8/12,s7,x0/13,s13,x3/4,s6,x10/11,s10,x1/9,po/e,x7/6,ph/j,x12/2,s10,x3/11,pg/l,x5/15,s6,x10/8,pe/d,x14/11,s4,x2/15,s1,x12/7,s4,x11/1,pf/g,s5,x4/15,s13,x11/2,s14,x3/15,pn/o,x1/9,pb/m,x15/14,pi/d,x4/0,s15,x10/12,s1,x5/7,s4,x4/15,s7,x9/3,s15,x15/12,s13,x2/9,s7,x12/13,s12,x2/14,s9,ph/c,s4,x4/13,pl/f,x3/12,pi/j,s13,x0/11,s8,x3/7,pn/h,x6/11,s15,x1/8,s8,x5/13,pe/o,x7/2,s2,x15/1,s9,x7/13,s2,x15/2,pn/k,x7/11,s12,pb/l,x4/1,s8,x14/13,s4,x11/0,s14,x13/10,pd/f,x4/5,ph/l,x3/12,s11,pa/c,x2/6,s14,x10/8,s9,x3/6,s8,pn/d,x11/8,pl/b,x1/2,s14,x7/9,s12,x10/4,s7,x12/11,po/p,x0/9,s13,x10/11,pd/i,x1/8,s10,x2/14,s14,x11/6,s14,x2/9,s10,x0/8,s5,x14/5,s5,x4/6,s5,x8/1,s1,x10/4,s5,x3/13,pb/g,x5/15,ph/l,x2/12,pf/g,x9/11,s15,x12/8,s14,pa/i,x6/11,s8,x12/14,pc/e,x0/2,pg/h,x3/12,s9,x10/5,s11,po/i,x1/12,s11,x10/2,pk/g,x8/6,pb/n,x13/3,s15,x15/12,pg/o,s2,x9/5,s7,x6/0,s3,x10/11,pf/a,x12/15,s7,x4/2,s8,x14/15,pp/l,x13/8,pf/b,x14/3,pj/k,s4,x10/15,s4,x2/13,s8,x11/7,s4,x6/3,pp/l,x2/0,pm/d,x14/3,pk/o,x1/11,s7,x7/0,pg/e,x6/1,pj/m,x15/14,s5,x2/7,s13,x1/3,s10,x8/14,s13,x0/3,pc/i,x6/9,s15,x5/11,s14,x0/4,s10,pj/a,x1/14,pg/e,x3/7,pm/d,x6/10,pj/l,x7/15,pf/b,x12/13,s2,x8/4,s3,x10/1,s12,x11/12,s6,x5/14,s12,x13/12,s13,x7/4,pc/m,s13,x10/15,s2,x5/3,pl/h,x1/13,s10,x0/12,s1,x9/8,pc/j,s4,x6/2,s3,x5/14,s8,x11/3,s14,x2/15,s11,x9/5,pk/n,s3,x1/3,pp/o,x7/10,pl/i,x11/2,s5,x15/10,pk/f,x11/2,s5,x8/0,s5,x6/13,s8,x8/15,s6,x7/4,s11,x2/0,s13,x13/11,s8,x7/5,s11,x11/15,ph/b,x14/12,pc/p,x9/0,po/l,x4/2,pg/j,x0/1,pa/n,x3/5,pd/h,x6/8,pb/c,x14/9,s1,x15/3,pl/p,x1/11,s8,x15/2,pm/n,x6/3,s13,x4/12,s13,x13/7,pd/e,x5/6,s10,x15/4,s8,x3/13,pm/n,s14,pi/p,x14/10,s15,x0/6,s2,pd/m,x10/8,s4,po/g,s12,x5/15,s10,x6/1,pf/l,x14/3,s12,x9/10,pd/n,x0/14,s8,x7/6,s5,x5/4,s9,x11/14,pa/i,x4/0,s13,x5/3,s8,x12/6,s1,x10/8,ph/n,x14/4,s2,x6/8,pe/j,x7/9,pa/k,x2/11,pl/c,x8/13,s1,x2/5,s2,x6/14,pb/m,x11/8,pp/e,x9/6,ph/f,x13/4,s13,x1/7,pa/p,x2/13,pf/l,x4/5,po/b,x6/15,pk/h,x2/7,s7,x14/0,pi/p,x5/9,pm/d,x14/6,s1,pn/f,x3/5,pp/g,x4/7,pl/o,x14/11,pb/h,x3/2,pa/d,x7/9,pp/h,s3,x12/11,s11,x7/4,pd/j,x14/13,s7,x9/4,po/p,x0/5,pm/d,x8/12,s8,x6/5,s14,x0/12,s13,pb/e,x11/8,s1,x7/15,s13,x2/3,pd/f,x15/1,pa/g,x10/8,s8,pk/b,x9/11,pi/j,x6/8,s11,x5/15,s11,x9/14,s7,x6/8,pl/k,s4,x7/4,pg/p,x3/6,s8,x7/13,pk/m,x3/2,s9,x8/15,s6,x2/13,s12,pg/d,x10/4,pe/m,x6/8,s4,x1/10,s8,x0/8,s9,pn/o,x9/14,pk/j,s6,x15/5,ph/g,x9/3,s8,pk/n,x11/14,pj/g,x2/4,s9,x15/0,ph/e,x5/12,s6,x8/3,s6,x15/5,s11,x2/3,pb/c,x0/10,s6,x15/14,pa/i,x2/1,s3,pn/f,x9/14,pp/d,x4/10,s2,x11/13,s3,x2/9,s10,pb/h,x12/4,s9,x11/0,s5,x12/6,s1,x7/5,s14,x12/9,pk/n,x11/15,s11,x14/0,pm/j,x9/2,pp/f,x3/15,s5,x12/2,s9,x0/15,po/j,x4/11,s5,pp/e,x9/12,s4,x1/14,s4,x6/8,pb/l,x10/2,s10,x15/11,s3,x0/3,po/a,x10/2,pn/d,s6,x0/3,s12,x9/12,pa/o,x11/3,s6,x7/14,pb/l,x1/3,s12,x4/12,s4,x8/11,ph/a,x5/3,s9,x8/0,pd/k,x2/9,s12,x6/8,s14,x15/13,pi/e,x1/9,s11,x7/2,pl/p,x12/0,pc/f,x6/3,pb/m,x14/10,s6,x9/13,s14,x11/5,pj/f,x2/1,s2,x6/5,s14,x12/3,s14,x11/6,s2,x0/13,pl/b,x11/14,s15,x9/6,s1,x12/15,pp/e,x2/8,pk/h,x13/15,pm/g,x9/12,s15,x4/5,s1,x15/3,s3,x0/13,s5,x6/11,s14,x3/7,s8,x4/13,s5,x9/8,pi/k,x7/13,pg/b,s11,x14/4,s6,x5/11,pf/i,x12/14,pl/j,x7/8,pm/f,x12/3,s8,x13/0,s13,x12/11,pp/d,x4/8,pf/g,x2/14,s4,x15/12,s2,x7/3,pi/j,x11/2,s4,pa/p,x1/15,s8,x13/14,s13,x10/1,s10,x13/14,s8,x7/3,s8,x5/11,s7,x13/7,s2,x0/11,pn/j,s2,ph/c,x14/15,pi/g,s13,x4/11,s10,pj/l,x6/14,s2,x4/11,s12,pe/i,x2/1,s1,x6/11,s7,x3/14,pp/j,x4/15,ph/g,x2/0,s10,x15/13,s10,x14/0,pc/a,x6/11,po/d,x1/2,pn/a,x6/0,pc/h,x9/10,pg/n,s3,po/k,s9,pb/j,s8,x8/3,s2,x11/10,s12,x2/14,s3,pl/g,s11,x4/11,s9,pp/h,x13/1,s5,x6/9,s15,x13/4,pd/n,x11/1,s3,x4/7,pe/k,x12/10,pi/a,s7,x7/2,pm/e,s14,x4/15,s7,pl/h,x9/5,pb/a,x4/3,s6,x5/8,pg/h,x11/2,s11,x12/13,pn/e,x9/6,s2,x0/3,s14,x13/11,pm/d,s1,x4/10,pl/f,x6/11,s8,x14/2,pc/o,x11/7,s6,x4/15,pa/l,x10/3,s1,x4/6,s3,x0/15,s9,x6/3,s13,x2/9,pc/m,x10/4,s12,x2/9,s14,x12/3,pb/n,x14/13,ph/d,s12,x7/15,s13,x1/13,pg/o,x12/9,s2,x0/2,s7,ph/m,x11/9,s9,x5/13,pg/f,x6/7,pj/a,x1/0,s4,x2/3,s9,x5/11,pe/f,x15/2,po/g,x9/7,pd/k,x3/6,s10,x2/12,s13,x6/13,pa/c,x2/0,po/g,x13/14,pm/n,x4/12,s6,x15/14,s3,pk/i,x6/4,s5,x9/15,pd/h,x10/8,pf/b,x2/1,pg/i,x14/6,po/m,x7/15,pj/h,x10/12,s9,pn/l,x1/5,s13,x15/11,pk/e,s4,x12/14,pb/h,x2/0,s12,x6/9,s14,x0/14,s5,x2/7,po/f,x10/4,s15,x15/5,pe/l,x3/6,s3,x1/5,pk/m,x9/13,s4,pg/l,x5/4,pb/a,s2,x6/7,s5,x15/5,s5,x11/0,s3,x5/9,pe/o,x12/2,s6,x15/5,s13,x8/0,s15,x12/14,pk/h,x0/7,po/f,x5/8,s2,pk/e,x15/2,s5,x3/7,pp/j,x2/11,s6,x5/4,s6,x1/0,s6,x2/13,pm/a,s13,x11/5,s15,x7/14,s4,x13/15,s12,x2/12,pj/i,x15/5,pk/n,s11,x8/4,pj/i,x10/14,s1,x13/6,pc/o,x10/8,s3,x12/0,pp/h,x5/1,s5,x6/14,pg/o,x4/2,s9,x9/3,s8,x8/14,ph/e,x6/3,s1,x14/13,s6,x15/7,pg/n,x2/9,pj/m,x1/0,pd/c,x4/9,s9,x1/12,pa/n,x9/10,s6,x1/12,pd/l,x8/3,s9,pf/n,x10/7,s12,x3/14,s1,x1/9,pp/e,s14,x0/15,s5,x10/6,pl/j,x12/2,s5,x7/8,s9,x15/11,s11,x3/10,s13,x12/14,s5,x15/3,pe/i,x2/1,pp/o,x7/8,pi/k,x14/11,s3,x3/9,s2,x14/10,s9,x0/7,s12,x8/14,s9,pl/j,x6/13,po/f,x12/8,s3,x7/15,s14,x3/0,pl/k,x14/10,pm/h,x9/4,pn/i,x5/1,s9,x0/2,s7,x13/10,pa/l,x4/0,pg/b,x11/13,s13,x12/9,s12,pj/m,x14/6,pe/l,x12/11,s12,x4/8,s5,x12/13,s10,x10/9,s8,x7/12,s14,x3/5,pb/k,x0/9,s2,x13/12,pj/i,x7/14,pm/e,x0/11,ph/p,s14,pd/a,x7/1,s11,x13/14,s15,pk/l,x2/12,s3,x5/10,pn/p,x4/2,s2,x9/1,pi/a,x5/15,s13,x1/10,s1,x5/8,s10,x6/15,s12,x14/7,pl/e,x9/10,s14,x13/5,pg/b,x7/1,s2,pa/p,x5/4,s9,x13/8,s2,x12/10,pk/j,x0/9,s10,x11/3,s7,x9/5,s14,x12/10,pf/e,x1/6,s4,x4/0,s8,x2/3,s5,x12/7,pl/n,x14/8,s13,pd/a,x1/9,pm/o,x5/7,s15,x6/14,pj/i,x2/9,s11,x12/1,s14,x4/7,pg/a,s13,x2/12,pp/h,x1/5,s8,x3/2,s15,x11/0,s14,x15/1,s2,pi/m,x8/7,pj/g,x6/15,pn/b,x14/7,s6,x6/15,pm/d,x3/8,s14,x9/12,pe/o,s15,x8/2,pj/l,x15/1,s13,x0/9,pn/m,x10/6,ph/f,s8,pb/d,x1/15,s11,x11/10,s14,pc/p,s3,x1/7,s13,x15/8,s10,x9/4,pj/n,s6,x11/10,pi/c,x3/1,s9,x10/14,s13,x9/4,pk/b,x11/1,po/h,x14/12,s2,x10/3,s14,x11/13,s1,x0/14,s4,x3/7,s9,x15/12,pj/p,s8,x11/2,pe/n,x1/10,s4,x5/0,pg/b,x2/8,s7,x6/4,s4,x1/2,pi/o,s6,x7/9,pa/e,x2/3,pc/l,x7/0,s15,x3/10,ph/g,x12/8,pf/n,x2/6,s15,x8/11,pc/o,x1/7,s11,x0/11,s13,x1/7,s12,x2/3,pe/d,x14/11,s1,x5/9,pk/i,x11/13,s6,x1/15,s15,x8/2,pj/m,x7/9,s14,pd/a,x10/3,s4,x5/15,s3,pj/l,x6/12,pa/f,x14/0,s3,x1/9,s10,pp/j,x12/11,s14,x13/15,s14,x7/2,s4,x1/14,pb/i,x2/5,pn/m,s11,x14/6,s4,x12/9,ph/i,x4/1,pk/b,s5,x13/2,pc/g,x6/7,s7,x0/11,pl/p,x2/14,s13,x9/10,s11,x14/15,s8,x8/5,pb/h,x1/11,s6,x7/10,s3,pg/e,x4/12,pa/j,x5/1,ph/e,x9/3,po/p,x2/13,s10,x7/3,s5,x8/10,s3,x7/0,s8,x9/8,pf/b,x11/13,pe/i,x0/10,pn/b,x4/6,s14,pj/a,x12/10,pb/p,x0/5,s2,x1/10,s1,x9/8,s5,x4/12,pl/c,x13/11,s1,pd/g,x0/5,s5,x13/15,s3,x8/10,s7,x7/2,s11,x5/14,s15,x3/8,pj/e,x12/6,s1,x1/7,s1,x14/15,s3,x6/5,pd/a,x10/1,s11,x4/7,s10,pn/i,x9/10,s9,pe/k,x12/0,ph/a,s9,x3/4,pb/e,s7,pk/j,x1/11,s10,x9/15,s3,x6/3,s15,x10/5,s8,x11/14,s9,x10/12,s11,x14/6,pf/h,x0/15,pj/a,x12/14,pg/o,s8,x11/8,s4,x3/7,pl/f,s3,x5/0,pm/g,x3/15,s11,x5/6,pa/o,x11/8,pc/b,x6/10,s9,x5/14,s13,x1/4,pj/d,x10/3,pe/c,x2/11,pm/n,x9/3,pd/f,x0/4,pj/h,x1/7,s12,pg/m,x8/10,s12,x9/7,s1,x8/5,pa/p,s15,x12/0,pe/g,x6/7,ph/c,s2,x0/11,s6,x14/13,s1,x5/8,pi/b,x9/13,s3,x7/14,pj/f,x4/3,s3,x9/5,pn/h,x15/4,s11,x3/11,s12,x8/10,s8,po/l,x6/11,pj/g,x10/13,pb/o,x3/6,s11,x4/14,s5,x8/9,pj/f,x5/2,s4,x0/13,s15,x8/5,s4,x15/13,s9,po/e,x2/12,s13,x4/0,s4,x9/15,s12,x3/12,s8,x10/1,s4,x13/2,pp/b,x15/12,pn/i,x10/4,pm/j,x3/9,s13,x13/12,s2,x14/8,s15,x15/11,s3,x13/3,pd/n,x15/7,pj/a,x10/6,s2,x3/9,pg/k,s12,x1/8,s11,x14/13,pc/n,x8/0,s13,x9/3,pg/l,s5,x5/13,s3,x11/15,s8,x9/7,s5,x10/5,pe/a,s9,x13/14,s2,x12/10,pc/m,x3/15,pj/k,x7/5,po/p,x13/0,s10,x3/8,s2,x15/1,s1,x10/13,s13,x5/9,s13,pf/a,x13/3,s1,x14/7,s9,x10/15,ph/n,x12/13,s11,x0/10,s8,x1/8,po/g,x3/15,pj/e,x0/7,s13,x9/11,pd/l,x15/6,pa/p,x0/13,s5,x1/5,s9,x10/6,s11,x14/0,pe/g,x3/12,pb/h,x6/5,pf/c,x11/14,s15,x6/13,s4,x8/14,po/d,x1/2,pm/a,x6/7,s11,x15/2,s10,x10/0,s8,x15/11,pj/d,x3/10,pc/p,s4,pa/b,x2/7,s8,pj/e,x12/0,s9,x3/4,s3,x1/13,s14,x2/14,s3,x3/13,po/b,x9/11,pa/j,x1/13,pk/o,x14/5,pm/b,x10/6,s14,x5/14,pk/h,s13,x9/0,pm/b,x12/11,s14,x10/5,s10,x2/4,s5,x0/15,pf/i,x5/6,s5,x12/15,pk/a,x8/6,s15,x9/0,s8,x11/5,s2,x14/12,s3,x13/4,s4,pm/n,x5/8,s4,x14/2,pe/k,x5/6,ph/f,s2,x1/3,po/m,s14,x4/15,s11,x7/11,s12,pj/d,x6/15,s8,x0/1,s7,x9/5,s8,x1/3,s7,x13/10,s3,x6/11,s4,po/k,x10/3,s6,x1/0,pg/b,x6/10,ph/f,s15,x0/13,pc/n,x6/7,s8,x11/9,pi/a,x8/15,s8,ph/k,x1/6,s10,pm/n,x14/2,s10,x1/6,s12,x12/0,s7,x3/9,pd/a,x11/1,pn/m,s6,x15/8,pl/a,s10,x2/12,pb/h,x5/3,s8,x11/10,pi/n,x6/12,s4,x3/10,s4,x0/12,pf/o,s8,x7/15,s3,x9/1,pc/m,x8/3,s11,x10/1,s15,x11/6,s14,x1/10,pg/h,x5/3,s13,x1/11,s14,x10/15,pk/d,x6/5,s2,pi/f,x14/11,pp/e,x15/3,ph/n,x13/4,s8,x14/9,s7,x11/15,s12,x2/3,s11,x9/0,s11,x5/6,pf/o,x3/8,s3,x9/6,s2,ph/d,x3/8,s14,x2/6,s13,x1/3,s8,x5/13,s6,x15/11,pc/m,x13/5,s12,x9/3,s12,pp/g,x12/6,s9,x4/1,pe/n,x5/15,s15,x14/3,ph/c,s2,x7/10,pp/k,x12/13,s8,x1/2,pc/o,x8/10,pp/b,x2/14,s3,x10/4,pd/m,x14/3,pk/n,x2/0,pg/b,x15/10,pa/l,x1/0,s6,x8/6,pi/j,x9/13,pa/f,x1/11,pe/h,x13/5,s14,x4/3,pm/l,s3,x9/0,s5,x11/8,s9,x5/3,pd/i,x6/2,s8,x5/9,s15,x1/8,ph/a,x11/7,pn/b,x13/10,s10,x11/2,pg/d,x13/9,s2,x7/5,s8,x13/11,pk/o,x3/1,s10,x8/13,s11,x14/7,s7,x5/6,pe/b,x0/10,pf/i,s15,x6/12,ph/b,x5/1,s7,x11/3,s4,x13/4,pc/n,x9/5,s9,x1/11,s1,x6/2,s13,x13/7,pb/m,x1/14,s14,x3/8,s10,pf/p,s14,x5/1,s13,pl/o,x4/15,s5,x12/2,pb/e,x3/6,s4,x13/0,s12,x2/4,s2,x8/13,s2,x1/11,s3,x15/12,s3,x13/4,s4,x15/7,pd/l,s3,x1/0,pe/g,x2/6,pf/k,x3/7,pg/d,x5/15,pp/n,x13/3,s7,x10/6,s7,x14/1,s7,x13/7,s8,x10/2,pd/e,x14/3,s8,x9/5,s7,x15/3,pa/i,x6/0,pl/p,x11/15,s15,x13/10,s14,x7/1,pn/b,x5/13,s9,x8/1,pf/k,x4/11,s3,x5/14,s5,x8/12,s4,x6/1,s4,x12/0,s7,x5/13,pi/g,x14/15,pl/h,x11/0,pp/e,x14/3,ph/d,x5/13,s14,x2/3,s9,x12/13,s1,x1/0,s7,x5/9,s5,x7/4,s2,x15/13,po/m,x8/10,s8,pk/b,x5/9,pj/o,x8/1,s5,x2/9,s10,pp/c,x3/12,s8,x10/15,pi/n,x2/4,s4,x10/3,s14,x12/1,s3,x13/15,pc/l,x7/2,s5,x6/0,s10,x7/13,s2,x0/6,s2,x10/3,s15,x4/11,pe/j,x10/8,s2,x14/7,s7,x13/2,s5,x14/10,pc/d,s4,x8/11,s2,x1/10,po/h,x14/13,pi/m,x6/10,s13,x8/1,ph/b,x6/9,s6,x11/15,s11,x9/10,s8,x4/11,s3,x8/0,pn/p,x4/2,s4,x9/11,pm/l,x10/12,s6,x9/14,pf/a,x11/4,s1,x13/6,s10,pp/j,x7/12,ph/o,x9/8,pa/f,x1/5,s5,x14/8,s6,x10/4,s11,x14/12,pj/h,x15/5,s11,x3/13,s15,x9/7,pg/k,x1/15,s4,x11/7,s2,x3/5,s4,x0/14,pf/e,x1/12,pi/k,x7/6,pg/h,x15/8,pn/d,x3/1,s6,pe/c,s8,x8/15,s13,x1/6,pb/d,s13,x2/14,s7,x6/4,pa/g,s10,x8/12,pc/b,s7,x9/1,s11,x5/2,s6,x10/8,s4,x14/4,s2,pl/d,x15/8,s13,x7/1,s5,pf/b,x0/14,s10,x4/11,pe/c,x15/7,pf/b,x1/0,pg/d,x6/15,s15,x14/2,pc/p,x15/5,po/a,x6/13,pl/c,x11/2,s13,x8/5,pd/a,x15/11,po/l,x0/7,s6,pn/g,x15/13,pj/l,x14/11,po/i,x0/12,s12,x13/8,s15,x14/7,s5,x8/6,s8,x11/10,s10,x9/12,s6,x15/10,pa/d,x4/3,pp/o,x6/9,s5,x14/2,s15,pe/a,x11/6,s5,x0/9,pl/p,x14/7,s9,x5/9,s9,x1/0,s12,x4/2,pi/k,x12/7,pn/b,x0/10,s11,x5/15,s3,x0/3,pe/f,x11/7,pl/d,x3/8,s7,x12/14,pb/n,s10,x8/15,s12,x2/13,s8,x12/11,s2,x3/13,s6,x2/15,pp/d,s9,x14/9,s2,x8/15,ph/e,x11/1,s11,x3/12,pk/i,x13/4,s3,x1/5,pn/j,s6,x8/11,s8,x6/12,s2,x9/3,s6,x13/14,pk/b,x6/10,s14,x11/8,pc/d,x9/4,pl/h,s15,pm/d,x1/11,s10,x4/0,s10,x10/2,pi/f,x12/3,s15,x0/9,s9,x3/5,s6,x2/10,s7,x13/6,pn/l,x11/0,s7,pb/j,x14/5,s15,x11/4,s10,x12/10,s15,x4/8,s4,x5/9,s1,x4/8,pe/c,x0/14,s11,x10/13,s13,x2/7,pg/d,x12/1,pb/e,x8/15,s4,x5/10,s3,x6/4,s12,x9/0,ph/f,x11/7,pk/o,x15/3,pg/n,x12/5,s3,x14/0,pl/f,s9,x1/5,s2,x0/15,s14,pm/d,x2/1,s7,pc/f,x8/9,pi/g,x4/12,pn/c,x0/3,s6,x11/8,pe/m,x13/14,s15,x11/1,s8,x8/2,s7,x1/0,pd/b,x4/12,s11,x0/5,s6,x1/9,po/c,x2/14,pm/j,x0/9,s5,x2/5,s8,x7/14,pe/c,s10,x2/5,pa/m,x10/13,s12,x0/14,s14,x9/10,po/n,s8,x7/3,s3,x0/1,s10,x15/11,s13,x13/1,s3,pk/j,s6,x11/15,pa/g,s8,x10/2,pj/k,x8/3,pf/h,x13/2,pp/l,x3/7,pb/j,x8/6,s6,x11/12,s15,x2/7,s2,x0/12,pe/p,x2/1,s12,x9/13,pj/c,x6/3,s6,x8/2,s13,x14/12,s8,x11/15,pl/h,x9/7,pf/b,x14/3,pn/o,x7/15,ph/p,x11/1,s13,x15/13,pn/g,x0/6,pp/m,x11/8,pn/h,x15/7,s12,x11/1,s7,x2/7,s6,x11/15,pk/e,x1/14,s14,x6/13,s12,x11/12,pn/i,s4,x10/2,pa/h,x4/7,s4,x1/14,pl/b,x10/9,s11,x1/13,s7,x3/9,s5,x11/15,s6,x3/8,pf/n,x1/15,pp/j,x8/12,pd/c,x6/9,s14,x3/14,pj/o,s5,x13/4,s6,x6/8,s8,x3/4,s13,x12/2,s14,x5/10,s8,x3/4,s13,x14/6,s10,x11/5,s6,x13/14,s9,x11/5,pm/h,x9/7,s13,x0/1,pd/l,x7/3,s10,x6/11,s9,x12/14,s13,x3/2,ph/i,x15/10,s15,x0/2,po/g,x9/11,pe/n,x15/10,s9,x4/11,s15,x3/14,s9,x5/7,s1,x15/2,s7,x6/8,po/j,x11/15,s6,x4/1,s15,x7/13,pa/d,x12/3,pj/c,x8/13,pk/o,s5,x3/4,s11,x15/12,s3,x3/13,s2,x1/10,pj/b,x6/8,s1,x5/13,pl/f,x4/14,pg/i,s1,x2/11,pd/p,x12/6,s14,x3/9,s13,x7/10,s2,x12/4,s6,pn/l,x2/7,pg/f,x12/14,s11,x6/4,pi/e,x10/9,pm/o,x8/3,s14,x11/14,s6,x13/1,pp/k,x15/3,pc/f,x12/2,s4,x5/1,ph/i,x11/13,po/a,x10/2,s7,x14/0,pi/l,x10/15,s10,x1/5,s3,x9/0,pe/h,s11,x14/13,pl/k,x5/11,pn/f,x13/1,s3,x7/3,pj/i,x14/4,s13,x3/11,s1,pa/n,x5/0,pp/o,x10/12,pa/l,x1/14,s9,x6/8,s3,pe/p,x4/7,po/d,x12/13,s5,x3/11,pc/b,x13/4,s3,x12/8,s15,x11/10,s14,x1/5,ph/k,x4/15,s8,x9/1,s5,x10/11,s7,x2/12,pl/m,x14/6,s9,x4/8,s12,x0/11,pp/d,s3,x5/2,pa/c,x3/8,s8,x9/2,pf/o,x4/15,s1,x12/1,s15,x7/15,pc/d,x14/13,s5,pl/o,x9/0,s1,x5/7,pp/i,x10/9,s12,x2/5,s9,x9/1,s11,x4/7,pn/k,x2/8,pg/f,x15/12,s8,x6/4,s5,x2/1,s12,x8/10,s7,x3/12,pl/c,x6/2,pj/k,x15/10,s15,x2/5,s1,x14/3,pl/p,x15/9,s8,x2/1,s7,x9/5,s10,x14/2,s13,x3/0,s1,x9/1,s4,x12/3,pk/f,s15,x13/7,s5,x12/9,pa/c,x5/15,s9,x0/9,s1,x14/3,po/m,x9/15,s14,x6/2,pj/k,x5/1,pa/f,s5,x9/0,s1,x13/4,pm/b,x10/7,s4,x13/12,pl/n,x7/1,s4,x3/2,pc/o,x7/4,s14,x2/11,s9,x10/7,s6,x2/14,s5,x4/1,pn/j,x3/8,pb/l,x10/4,s13,ph/g,x13/8,s15,x1/11,pe/d,x7/9,s13,x13/15,s8,x12/10,pj/p,x5/4,s15,x15/6,s1,x12/13,s5,x1/3,s9,x13/2,s11,x14/7,s1,x1/6,s10,x2/5,s4,x9/11,pn/f,x1/10,s11,x9/7,pl/e,x14/3,s10,x2/1,s10,x3/14,s7,x5/8,s7,x7/4,s14,x14/12,pp/a,x3/13,s9,x8/7,ph/n,s5,x2/3,s8,x6/14,s15,x11/9,s4,x15/1,pi/k,x0/4,s11,x14/3,ph/m,s12,x12/15,s13,x11/5,s9,x6/15,s10,x3/1,pp/c,x9/2,pj/f,s4,x1/4,pk/h,s4,x9/7,pi/a,x0/5,pj/l,x13/3,pm/a,x4/11,ph/n,x15/3,s9,x14/12,s14,x8/2,s2,x14/9,pi/l,x0/13,pf/a,s8,x11/7,s3,pk/n,x3/1,s3,x10/15,s4,pd/l,s5,x8/2,pb/g,x9/14,pe/l,x13/10,s9,pg/h,x5/8,s7,x15/3,s15,x5/9,pe/m,x3/12,pc/n,x1/0,s2,x8/9,s2,x13/3,s3,x4/1,pp/b,x15/3,s6,pj/e,x9/14,pk/d,x7/3,pe/f,x9/13,s2,x7/14,s2,x15/13,s5,x0/10,pd/j,x4/1,s2,pl/b,x3/0,s8,x10/7,s14,x11/1,pp/j,x15/14,s5,x8/13,s6,x7/14,pi/f,x1/2,s5,x11/13,pj/o,x6/0,pn/m,s9,x15/5,s3,x0/6,s14,x2/1,s2,x4/10,pi/c,x15/13,s9,x14/3,ph/l,x11/12,pa/o,x14/5,s3,x12/7,s11,x11/8,pd/m,x2/9,s8,x0/5,pe/l,x9/2,s11,x10/11,s4,x12/1,pb/i,x3/9,s12,x7/10,s10,x14/9,s15,x12/0,s1,x4/7,pl/k,x9/12,s6,x10/4,pa/b,x15/14,s6,x0/7,s13,x15/9,pc/n,x3/10,pd/b,x1/9,pk/j,x15/2,pe/c,x13/7,s5,x8/9,s4,x12/6,s4,x10/4,pb/k,x7/13,s1,x4/10,s13,x6/3,po/e,x12/5,pc/d,x2/0,ph/l,x12/7,pe/p,x1/2,pg/n,x0/10,s4,x6/4,s11,x11/13,pe/b,x14/12,s8,x4/0,s6,x9/14,s14,x15/5,s6,x3/4,pp/h,x0/10,s15,x7/1,s7,x2/11,s1,x7/13,s9,x8/0,s10,x3/4,pd/c,x10/7,s15,x11/4,pp/g,x0/6,s1,x11/14,pl/n,s6,x10/8,po/a,x0/6,pe/p,x10/8,s6,x2/12,s10,x3/14,s4,x4/0,s7,x9/15,pj/g,x14/7,pa/k,x9/4,s10,pc/f,x7/13,s8,x2/0,s4,x15/1,s13,x0/8,s9,pk/i,x3/10,pd/p,x2/8,s14,x9/10,s4,x4/6,pc/g,x12/14,s7,x5/0,s6,x4/7,s14,x9/2,s4,x12/7,s3,x10/3,s5,x9/2,s7,x1/5,pm/d,x8/3,pg/l,x0/14,s11,pe/d,s15,x1/6,s5,pa/h,x4/0,pl/j,x6/1,s14,x4/13,s6,x10/11,s2,pm/n,x0/15,s3,x8/7,ph/e,x3/11,pc/k,x15/7,s7,x6/4,s5,pg/e,x9/15,s15,x0/6,s5,x2/9,pc/i,s3,x8/7,s4,x10/9,pm/n,s6,x11/14,s14,x15/6,s5,x12/9,s4,x8/5,ph/e,x7/12,s14,pc/j,x14/11,pm/n,x6/12,s9,x11/13,s5,x1/12,s12,x5/10,s4,pf/k,x13/11,s15,x9/14,ph/p,s13,pk/c,x15/0,s4,x4/12,s4,x11/14,pi/p,s14,x4/13,pg/b,x2/15,pk/e,s12,pp/g,x3/7,pj/m,x0/12,s10,x6/7,s15,pp/i,x4/10,pj/k,s4,x9/0,s5,x4/6,s3,x11/1,s12,x15/9,pn/c,x13/14,pd/k,s8,x10/6,pa/i,x2/11,s13,x5/6,s14,x15/12,pd/n,s4,x4/5,pk/i,x2/3,pj/b,x13/10,s9,pn/i,x15/14,pj/d,x6/0,s14,x12/13,s11,pn/o,x6/2,pf/k,x4/11,s2,x7/2,pl/n,x4/8,s13,x1/3,s13,x0/10,pi/j,s13,x3/6,pe/h,x4/1,pm/l,x6/10,pp/d,x0/3,pi/m,s1,pp/j,x10/15,s6,x12/4,pe/m,x0/10,pk/g,x6/11,s4,x4/13,pj/o,s15,x1/14,s10,x10/0,s11,pg/h,x4/11,s4,x13/7,s7,x4/10,pn/k,x3/15,pg/l,x4/2,s15,x8/10,s14,x15/11,s9,x9/3,pj/n,x14/11,s2,pe/h,x15/9,s12,x6/0,pp/i,x11/3,s14,x5/2,s14,x3/9,pb/f,x4/13,s10,pp/k,x6/7,ph/f,x3/12,s9,x5/15,pd/c,s13,x7/2,s1,x9/6,pk/h,x15/12,s14,x9/7,s6,x11/14,s10,x3/1,s11,x11/15,s10,x0/13,s6,x7/3,pa/p,x0/9,pn/l,x7/14,s15,pc/g,s2,x11/10,pk/b,x6/4,s5,x9/13,s8,x12/0,s5,pg/j,x11/3,pa/i,x6/12,pn/l,x3/4,s2,pj/e,x12/7,pl/n,x2/15,s1,x12/13,s8,x15/3,pd/k,s14,x4/6,pn/g,x3/5,s13,x9/4,pp/f,x13/11,pm/j,x5/8,pc/d,x3/11,pm/a,s14,x15/8,pi/n,s8,x14/10,s2,x8/9,pb/a,x1/6,pf/l,x15/9,s2,x13/4,s5,x2/10,ph/g,x14/7,s10,x10/4,s2,x7/11,s11,x15/13,po/e,x1/9,pp/i,x14/7,s12,x0/4,s15,x8/10,s1,x5/9,s6,x2/15,pl/b,x12/13,s1,x11/8,s9,x2/12,pp/j,x15/13,s7,x12/6,pd/h,x2/7,s4,x15/3,pg/n,x6/0,pi/h,x13/8,s11,x0/9,po/m,x15/11,s1,x2/5,s13,x14/7,s12,x10/8,pi/e,x1/7,s9,x9/3,pp/h,x0/4,s7,x15/1,s10,x11/5,s4,x10/1,pn/j,x3/13,s7,x2/7,s10,x14/3,s11,x8/15,pk/g,s9,x11/3,s3,x9/8,s11,x14/7,pa/m,x2/5,pi/g,x7/8,s4,x14/12,pl/o,x2/8,pa/i,x6/10,pk/o,x7/11,s10,x5/1,s1,x11/10,pa/d,s10,x5/13,pi/k,x6/8,s9,x14/15,pc/l,x8/5,pg/f,x12/4,pn/a,x11/1,pd/l,x7/15,s14,x11/1,s2,x7/14,s15,x12/2,s11,x3/10,s7,x6/11,s4,x12/0,pb/h,x11/9,s13,x12/4,s5,x1/2,s11,pa/e,x9/8,pm/i,x10/12,pl/c,s3,x11/7,s11,x8/4,pp/e,x2/9,s11,x7/13,pl/c,s8,x14/15,pd/h,x9/7,s7,x0/11,s11,pa/p,x9/5,s9,x12/10,pn/e,s12,x13/0,pp/a,x2/3,s9,x8/15,s7,x11/5,s8,x3/2,po/h,x0/4,s8,x2/12,s3,x6/15,s15,x12/2,pc/d,x9/15,s11,x13/5,ph/f,x6/3,s11,pk/d,s15,x11/8,pc/m,x10/13,pa/f,x14/7,pk/p,x2/3,s14,x14/10,ph/g,x15/12,s7,x1/2,pl/p,x3/13,s15,x12/4,s9,x0/7,s10,x8/4,pn/h,x11/5,s1,pg/f,x8/15,s12,x11/4,pj/o,x1/12,s9,x15/4,s11,x2/9,s12,x4/8,pn/c,x14/13,s13,x0/10,s15,x5/15,pm/e,x9/8,s7,x10/1,pi/k,x5/7,s15,x14/4,pn/o,x3/5,pa/i,x15/7,pn/g,x12/10,s8,x15/3,s13,x12/14,s2,x15/4,s12,x5/10,s11,x2/13,s15,pc/b,x0/11,s1,x8/2,s1,x5/6,s3,x0/8,pp/h,x14/10,pk/i,x7/0,s7,x3/5,s6,x2/7,pg/h,s1,x14/10,pj/a,x8/6,s2,x2/11,pm/g,x15/14,s14,x10/2,s2,x3/14,s9,x15/8,s1,x14/0,s6,x5/11,ph/j,x0/8,pa/i,x1/2,pd/c,x4/9,s2,x11/12,s5,x14/7,s5,x12/11,s4,x0/2,pe/o,x9/10,s12,x4/11,pa/l,x5/9,s4,pc/d,x7/4,pl/n,x15/8,s12,x14/1,s11,x2/7,po/a,x11/12,pd/f,x14/5,s7,x11/7,po/i,x0/6,pk/b,x14/10,s5,x3/1,pa/f,x13/11,s6,x7/12,pd/g,x3/6,s11,x11/15,s15,x9/5,s6,x10/2,s15,x0/13,s10,x1/2,s8,x13/4,s1,x5/10,s13,x14/9,s9,pm/a,x7/8,pg/b,x5/10,s6,x3/6,pe/h,x12/1,pn/a,x0/8,pp/d,s4,pk/f,x11/3,s9,x8/10,pg/b,x6/0,s2,x8/4,s13,x11/7,pk/i,x6/4,s6,x0/13,s7,x6/8,s7,x12/7,s8,x3/11,pm/d,x10/6,s1,x9/8,s8,x6/13,s13,x1/8,s15,x2/0,s7,x9/10,s6,x4/3,s13,x11/0,pj/n,x12/1,pl/b,x15/5,pi/j,x0/8,s5,x5/9,s1,x11/4,pn/p,s6,x8/2,ph/i,s4,x14/1,pn/o,s7,pm/d,x0/10,s2,x1/11,s11,x12/9,s8,x7/11,pb/j,x5/1,s1,x6/4,pi/m,x12/11,ph/l,x6/5,pj/g,x9/3,s2,x7/10,pn/b,x14/15,s1,x8/1,po/h,s5,x9/12,pk/d,x15/3,s4,x2/10,pj/g,x11/4,pl/h,x2/13,s12,x14/5,s4,x13/10,s9,x11/12,pb/k,x1/10,s8,x8/9,pf/h,x1/0,s8,x12/5,s9,pn/k,s3,x14/13,po/d,x6/8,s4,x11/9,pg/m,x12/14,s10,x15/8,s2,x5/11,s5,x14/7,po/i,x3/15,s1,x8/14,pl/k,x11/7,s3,x2/13,s8,x12/3,s8,x6/13,pb/n,x12/4,s15,x13/1,pj/p,x15/10,pi/k,x4/8,pe/p,x12/2,s15,x10/4,pj/a,x11/7,pi/e,x15/8,s11,x0/1,s5,x5/2,pg/j,x1/13,s9,x9/4,pn/h,x8/13,s2,x2/7,s3,x1/0,pl/f,x9/15,s13,x8/4,s11,x7/9,s10,x1/12,s2,x9/5,s4,x2/14,pg/n,x3/5,pm/h,x14/13,s7,x8/6,s6,x5/2,pc/a,x14/15,pd/f,x7/0,pa/o,x4/11,s8,x8/15,pg/h,x0/3,s8,x2/10,s1,x6/8,s14,x4/10,pc/l,x5/1,s3,x4/7,ph/e,x2/10,s4,x1/7,s6,x10/8,s7,pg/d,x4/0,pi/h,x9/11,s1,x14/4,pj/o,x5/7,s5,x10/1,ph/m,x14/4,pg/e,x3/2,pn/k,s4,x0/7,s4,x9/12,s8,x5/1,po/b,x7/0,s2,x14/12,pc/i,x11/7,pg/b,x6/3,s11,x12/4,pd/o,x9/6,s12,x2/3,s6,x4/9,s14,x1/14,s11,x2/11,s14,x12/3,s8,x15/7,s14,x11/9,s3,x12/2,s8,x15/11,s5,x10/2,pa/b,x12/5,s14,x7/11,s9,x1/8,s10,x9/11,s4,x1/3,s2,x15/4,s4,x5/6,pp/f,s5,x9/7,s12,x14/13,pm/h,x2/15,s13,x1/0,s13,x14/4,pg/n,x2/13,po/b,x12/14,pm/h,x4/9,s15,x15/5,pe/n,x3/8,s1,x4/6,s8,x5/7,po/m,x3/4,s4,x14/7,s7,x11/0,pc/i,x13/8,s9,x1/4,pa/n,x10/11,s4,x15/5,pl/k,x13/4,s5,x7/15,s10,x4/0,s8,x12/15,s3,ph/a,s3,x6/0,s14,x3/2,pn/j,x6/12,s7,x14/2,pp/o,x9/0,pm/f,s8,x10/2,s4,x12/5,s12,x13/10,s10,x7/3,s8,x1/2,s13,x14/4,po/e,x5/13,pl/b,x7/1,s14,x11/6,s6,x9/10,pg/k,s6,x6/0,s8,x14/10,pi/f,x5/7,pg/p,x15/12,pe/j,x8/3,s2,x6/2,s7,x3/7,s3,x15/14,s8,x0/12,s2,x6/10,s12,x9/12,s6,x14/1,pi/p,x10/5,s3,x2/14,s2,x4/7,ph/b,x14/8,s6,x0/13,s1,x7/2,s12,x1/4,pi/o,x2/15,s13,x6/9,pl/c,x2/10,pg/e,x3/14,s6,x9/7,s7,x8/13,s13,x3/10,s13,x4/5,s1,x6/3,pk/l,x1/12,s4,x5/9,pf/a,x6/8,pm/e,x1/2,s9,x13/7,s11,x15/10,pa/b,s8,x11/13,s8,x0/12,pk/f,x13/2,s1,x11/10,s5,x0/3,pg/o,x6/13,s2,x2/1,s4,x5/11,s10,x7/2,s15,x8/6,pb/h,x10/9,s6,x0/6,s2,x2/3,s7,x12/11,s10,x9/0,s10,pj/m,x14/11,s8,x0/9,s2,x2/8,pk/p,x15/6,pj/n,x0/14,pc/o,x12/9,s10,x6/10,s10,x5/13,pl/h,x10/2,s13,x5/11,s4,x14/13,s3,x5/12,pk/m,x7/8,pl/e,x2/10,pa/i,s10,x7/14,s8,pd/m,x13/4,s13,x1/2,pj/h,x11/3,s15,x1/7,pg/k,x6/8,s7,x2/10,pj/l,x1/4,s2,x6/0,po/a,x14/8,s8,x3/9,s10,x1/11,s8,x9/0,s9,x2/11,s8,pj/i,x14/10,s13,x9/5,pa/c,x8/4,s2,x3/6,pd/f,x4/8,pj/c,x12/6,s13,x2/15,s10,x11/6,s6,ph/i,s3,x14/2,s4,x15/1,pf/c,x13/9,pk/a,x14/1,s1,x10/2,s2,pp/i,s13,x9/5,pc/k,x7/15,pb/i,x4/13,pk/n,x8/0,s2,x12/10,s9,x9/11,s3,x4/1,s11,x3/6,s11,x4/0,s5,x3/2,po/f,x1/0,pp/j,x6/13,s4,x7/10,pc/f,x8/14,s1,x6/15,s8,x2/14,s5,x1/13,s11,x11/10,s9,x1/3,s8,pm/p,x6/11,s13,x4/2,s14,x12/7,s1,x0/6,s9,x1/7,s13,x15/0,s2,x11/5,s14,x14/0,s15,x5/7,s15,x2/15,s8,x1/3,s4,x14/13,s11,x5/4,pc/e,x1/2,s13,pa/i,x12/3,pe/h,x10/1,pd/g,x8/12,pi/m,x4/3,s7,x13/5,pl/p,x9/0,s12,x13/10,s11,x8/5,pa/g,x3/6,s10,x8/11,s11,x0/13,s10,x15/1,pp/n,x14/13,pl/k,x12/8,pc/m,x3/14,pb/o,x12/1,pg/n,x6/14,s8,x1/10,s6,x9/13,pb/d,x0/1,s13,x15/6,s2,po/f,x13/9,s3,x7/14,pj/p,s9,x4/11,pe/b,x6/12,s7,x13/8,s12,x5/0,s4,x2/1,pi/a,x11/9,pl/k,x3/5,pd/c,x12/13,ph/l,x0/15,po/a,s5,x2/10,pg/f,x7/3,s14,pk/l,x15/5,s2,x11/3,s7,x4/14,s4,x2/7,ph/d,x6/3,s8,pi/n,x8/11,s4,x7/15,s15,x13/12,s7,x6/15,pb/o,x11/2,s3,x0/14,s11,x6/7,ph/i,x12/13,pj/a,x1/9,s2,x0/14,s7,x3/15,pf/m,x5/14,s4,x2/12,s12,x1/4,s6,ph/a,s4,x8/5,s4,x0/14,s14,x10/3,pm/c,x0/7,pk/a,x11/3,s7,x4/13,pb/o,x5/6,s15,x15/13,s3,x4/5,pa/f,x9/11,s7,x0/5,pm/n,x11/7,s14,x3/5,pe/f,s5,x0/6,s2,x8/9,s4,x10/11,s2,x3/12,pg/k,x1/0,pd/f,x13/6,pe/a,s2,x7/12,pm/i,x11/2,pn/o,x8/3,pl/j,x10/12,s11,x5/15,pn/k,x9/0,s15,x15/11,s14,x7/2,pe/i,x0/5,s8,x13/7,pb/g,s3,x2/11,s3,x1/6,s2,x14/10,s11,x13/4,pc/h,s14,x12/15,pk/f,x11/5,s1,x8/13,pa/m,x0/6,pi/b,x1/5,s3,x3/8,pn/m,x0/10,s6,x1/4,s15,x11/3,pc/l,x12/15,pe/m,x1/3,pi/h,s4,x12/13,s12,x14/2,pc/l,x10/0,s2,x7/1,pf/i,x9/5,s13,x4/15,pj/o,s15,x6/5,s15,x1/2,s2,x0/11,s5,x12/6,s14,x0/11,s10,x8/1,s12,pn/f,x6/14,pe/l,x3/15,s14,x13/1,s13,x15/2,s1,x7/14,s5,x0/9,pc/o,x11/13,pe/g,x5/7,s14,x2/12,s4,x13/7,s2,x5/4,s5,x2/12,s11,x7/0,s4,x5/4,pn/d,x8/9,s11,x10/2,po/b,x6/4,s12,x2/11,s9,pg/k,x15/7,pc/j,x13/6,s13,x11/15,pa/m,s6,x7/6,s1,x14/11,pd/g,x2/6,s5,x8/1,pn/p,x5/6,s10,x0/4,s10,x3/11,pg/b,x13/8,s3,x11/12,s5,x0/15,s11,pf/c,s7,x2/9,s7,x0/15,pg/a,x9/2,s8,x14/8,s2,x10/13,ph/i,s10,x8/12,s15,x14/0,s13,x12/11,pd/c,x7/6,s13,x5/15,s4,x6/4,pa/m,x1/15,pe/f,x10/13,ph/k,x3/12,pe/a,x8/1,pg/f,s10,x9/7,pc/h,x0/15,s10,x14/6,pa/n,x13/1,s10,x0/9,s2,x11/3,pf/k,x14/7,pa/g,x8/9,s12,pi/h,x15/1,pl/p,x12/0,pk/a,x13/1,s1,x14/0,s10,x15/13,ph/b,x10/14,pj/n,x7/9,pb/e,x5/15,s12,pc/d,x9/2,pi/j,x12/8,pm/p,x13/1,s11,x10/8,po/d,x11/7,s15,x2/9,s12,x6/8,pl/j,x5/9,pg/p,x8/15,s8,x3/4,pn/d,x13/5,s12,x12/2,pi/m,s10,x7/4,ph/g,x1/6,s12,x3/14,po/a,x10/0,s6,x2/11,pe/d,s5,ph/k,x1/0,pj/e,x4/9,pc/m,x2/8,s12,ph/g,x9/1,pm/p,x8/10,pf/c,s12,x6/15,s3,x2/11,s8,x5/1,pa/n,x11/10,s10,x1/5,pe/h,x12/2,s3,pj/n,s4,x4/14,pg/f,x13/6,s15,x15/14,s15,x13/11,s5,x14/8,s9,x1/2,pp/i,s14,x13/11,s13,x14/7,s11,x13/6,s8,pk/j,x5/11,pm/l,x13/4,s12,x8/10,s2,x6/5,po/e,x13/14,s9,x4/12,s12,x15/3,s14,x8/1,s2,x13/12,s6,pj/p,x1/14,pl/d,x15/4,s15,x7/1,s13,x4/0,s15,x1/14,s7,x10/13,pj/e,s2,x11/3,s10,x9/13,po/b,x15/3,s7,x4/0,pl/e,x14/2,pg/n,x1/11,pb/l,x4/6,pk/f,x14/10,s9,x12/7,s14,x3/10,s12,x12/2,pa/d,x0/15,s12,x11/8,s11,x2/6,s15,x5/13,pk/g,x8/0,pn/l,s8,x2/9,pg/d,x8/10,pe/h,x12/11,pm/j,x9/1,s14,x6/13,s8,x5/14,s3,pi/g,x12/15,s5,x10/4,s15,x3/12,pf/b,x7/5,pj/o,x15/6,pb/l,x3/0,s12,x14/12,pg/e,x13/7,pk/j,x9/10,s14,x3/4,s8,x7/2,s14,x15/8,s9,x9/4,s15,x3/0,pf/d,x8/6,s4,x3/1,pn/c,x7/9,pm/j,x11/0,s1,x10/5,pl/o,s11,x1/6,pa/d,x2/15,pc/f,x6/4,s2,x10/2,s9,x5/3,po/b,x0/6,pm/f,x1/14,pa/i,x10/12,pn/l,x2/0,s4,x15/8,pa/f,x9/7,s2,x15/14,s11,x5/13,s13,x9/15,pj/d,x7/14,s13,pc/l,x2/0,s10,x15/14,pd/o,x4/11,s14,x7/9,s12,x11/8,s3,x2/6,s14,x8/4,s14,x11/6,pe/k,x14/12,s6,pf/g,x5/0,pk/e,x2/11,s14,x6/9,s5,x15/13,s12,x7/6,pi/h,x0/1,s7,x9/3,s12,x11/2,pe/l,x1/6,s5,x9/2,s8,x11/13,pm/j,x5/12,pp/a,x1/13,s15,x8/4,pj/i,x9/1,pl/a,x3/15,s7,x4/9,pf/c,x10/6,pm/b,x0/14,pk/n,x9/7,s2,x3/13,s11,x6/10,pb/g,x3/8,s8,x2/9,s7,x5/13,s12,po/l,x14/8,s1,x15/5,pm/e,s11,x8/10,pk/a,x15/9,s7,x2/1,s3,x7/14,pn/l,x9/1,s15,x15/8,s13,x14/9,s10,x3/2,pa/j,x6/1,s13,x8/14,pb/i,x12/3,s12,x4/5,s6,x8/7,s14,x6/12,s5,po/g,x9/0,s7,pk/l,x1/10,pm/b,x5/6,s2,x15/10,pd/n,x2/7,s13,x15/11,pp/h,x6/1,s14,x2/14,s14,x12/6,s7,x13/10,s10,x7/15,s15,pb/i,x6/14,pa/m,x15/7,s9,x12/11,s4,x15/10,pp/f,x8/12,s13,x2/10,s15,x11/14,s1,x0/7,pc/d,x11/12,po/g,x13/2,pi/h,x6/5,s4,x2/11,s12,x7/8,s6,x0/10,s10,x3/1,pc/b,x5/6,pi/j,x3/11,pf/d,s12,x1/13,pl/h,x14/7,pg/b,x2/6,s15,x1/4,pk/n,x15/2,s3,x14/5,pd/f,x0/9,pk/g,x15/8,s4,x1/12,pm/d,x13/5,pe/b,x0/15,pi/n,x2/8,pk/j,s7,x0/7,s7,x14/10,pe/p,x12/3,s1,x6/2,s2,x3/14,s11,x11/2,pb/h,x4/14,s5,x13/11,s13,x6/1,s12,x5/4,pn/k,s14,x7/3,pj/b,x13/14,pf/e,x15/8,s12,x9/2,pc/p,x10/4,pg/e,x11/13,pp/j,x9/1,s8,x6/10,s11,x0/15,pb/l,x5/10,s10,x11/6,pp/g,x7/2,s14,x6/4,pi/l,x1/11,pn/h,x5/7,s9,x13/12,pj/i,x0/3,ph/b,x2/6,s1,pd/g,x14/11,pk/i,x3/1,pe/f,x5/14,pg/n,s5,x9/11,s5,x3/12,ph/m,x9/14,s6,x3/13,pg/f,x15/10,s5,x3/4,s8,x2/10,pb/h,x5/12,pl/k,x0/7,po/a,x1/4,pf/k,s5,x8/3,s9,x11/14,s5,x4/2,s10,x13/12,s11,pd/e,x6/5,pi/f,x11/7,pc/o,x6/5,pa/j,x7/4,po/g,x6/1,s15,x7/8,s6,x12/10,pk/l,x4/11,s7,x9/1,s14,x2/7,pc/i,x13/8,s3,x14/0,s9,x9/10,s4,x3/4,s2,x12/8,po/k,x1/15,pp/f,x7/13,pm/d,x2/11,s2,x12/5,po/e,x13/1,s4,x5/10,s3,x4/3,s12,x0/14,s14,x11/7,s9,x4/12,s1,x14/7,s9,x10/13,s6,pg/p,x6/1,s1,x5/4,s15,x12/7,s2,x0/6,s5,x7/15,pe/o,x9/14,pa/j,x0/7,s2,x6/12,s15,pb/n,x2/14,pf/l,x4/1,s1,x3/2,s2,x11/10,s4,x15/3,s13,x1/13,pp/j,x4/5,pf/o,s9,x1/12,s14,x3/8,s14,x7/13,pd/p,x15/8,s8,x12/2,s3,x11/7,s11,x14/15,s15,x5/12,s2,pg/e,x15/13,ph/m,x9/3,s14,pf/g,x1/6,s2,x10/15,s10,pn/l,x12/1,s11,x2/14,s14,x9/3,s4,x0/4,pp/a,x14/9,s3,x11/5,s4,x13/0,s4,x2/10,pk/n,x11/6,ph/p,x4/12,s6,pl/b,x3/14,s1,x6/5,s8,x0/2,s9,x14/5,pc/i,x3/9,pd/p,s1,x10/14,pf/e,x6/7,s6,x2/0,s2,x9/7,s2,x11/5,s6,x0/13,s14,x9/5,po/k,x12/11,pj/e,s5,x6/2,po/f,s7,x14/15,pc/g,x5/2,pj/d,x13/1,s12,x3/6,s3,x0/12,s9,x7/6,s11,x3/11,s6,x5/6,s13,x2/12,pk/n,x1/15,s3,x7/2,s11,x12/4,s8,x2/8,s7,x11/7,pi/p,x0/9,s13,x6/15,pc/n,x12/3,ph/b,s12,x13/7,s12,x3/0,pk/c,x6/12,s3,x13/14,s10,x1/0,pe/h,x14/6,s6,x1/9,s4,x7/5,s12,x3/0,s11,x7/11,s10,x10/0,pn/b,x5/7,pl/i,s5,x6/12,s11,x1/7,s14,x4/5,pp/c,s3,x2/13,pj/o,x4/15,pg/b,s8,x13/5,pl/e,x9/3,s11,x10/4,s13,x0/8,s5,pn/c,x10/11,s13,x6/4,pk/j,x12/2,s14,x11/7,s7,x9/0,ph/m,s8,x10/13,s1,x0/14,s7,x15/2,s15,x5/10,pa/n,x12/4,s10,x3/6,s14,x0/10,pb/m,x8/11,s10,x10/5,pk/n,x14/9,s9,x6/0,s2,x8/11,s15,x10/3,s4,x7/12,s2,x14/10,s1,x3/7,s4,x14/15,pm/p,s2,ph/a,x12/2,pm/e,s6,x14/0,pk/n,x10/8,s12,x4/9,s8,x7/15,pe/a,x8/9,pd/h,x4/12,s13,x2/8,s15,x15/4,s7,x14/6,s1,x5/13,s12,x2/3,pj/b,s1,pe/c,s12,x14/12,pg/f,x4/11,s7,x12/2,s8,x8/5,s3,x12/14,s2,x6/5,s3,x14/10,s9,x6/7,pd/b,x2/1,ph/m,x9/12,pn/j,x8/14,pm/o,x9/2,pe/k,x5/4,pp/i,x11/14,s15,x5/1,pk/h,x6/7,s9,x4/10,s5,x15/1,s2,x11/9,pd/f,x10/13,pn/j,x2/4,s15,x7/8,pc/e,x14/4,s8,x2/3,s5,x7/13,pf/n,x4/10,s15,x7/13,s5,x12/3,pc/e,x13/10,s7,x4/12,s1,x2/14,pn/j,x3/8,pm/d,s2,x12/6,pb/f,x4/3,pn/m,x12/10,pj/i,x7/3,po/f,s2,ph/e,x0/6,s11,x4/5,s6,x8/15,pg/k,x13/6,pn/i,x12/5,s15,x9/7,pd/h,x3/5,s11,x0/1,pg/p,x5/4,s5,x9/0,s3,x2/6,ph/k,x7/12,s1,x11/8,pd/b,x15/7,po/n,x3/0,pg/j,s7,x12/5,s11,pm/c,x3/4,s6,x5/2,s4,x7/4,s5,x6/15,s14,x2/5,s11,x11/4,pj/f,x1/8,s1,x3/12,pp/g,x6/9,pj/o,x14/2,ph/b,x15/6,pp/e,x7/2,pk/a,x9/5,s2,x10/15,s8,x7/0,s8,x8/4,s9,x3/5,s10,x9/4,s15,x7/2,s15,x15/9,s2,x3/4,ph/n,x6/5,pp/j,x2/8,pf/l,x6/4,pi/g,x11/12,s5,x14/3,s1,x0/12,s5,x9/2,s1,x8/5,s11,x7/9,s5,x10/3,pm/k,x11/1,s3,x2/6,s1,x3/11,s14,pp/b,x0/4,s5,x15/14,s13,x2/11,pc/j,s14,x7/15,pn/l,x2/3,pe/g,x15/12,s8,x7/9,pj/m,x5/6,s10,x15/8,s9,x11/0,pp/f,x5/1,pb/c,x3/11,ph/l,x8/5,pn/f,x10/0,s10,x4/14,s4,x3/8,s13,pp/j,x2/0,pm/k,x5/9,pf/g,x15/6,s13,x7/9,s13,x11/14,po/h,x10/5,pj/c,x4/8,pn/b,x6/11,pd/h,s3,x12/1,s8,pk/o,x8/5,pe/l,x1/14,s14,x2/0,s12,x9/10,s13,x11/15,pi/d,s1,x12/8,s1,x2/1,s15,x12/0,s13,pl/j,x9/6,pn/f,x12/14,pl/p,x7/15,s9,x12/11,po/b,x7/9,pk/p,x2/12,s11,pb/e,x6/15,pp/c,x5/12,s15,x11/0,s4,x4/10,pf/o,x1/5,s12,x15/12,s10,pm/n,s10,ph/c,x11/10,pg/p,s2,pa/d,s8,x7/13,s7,x12/2,pl/b,x10/0,pg/d,x1/13,s11,x3/9,s5,x2/13,ph/b,s8,x14/5,pg/o,x13/8,pc/i,x3/10,pa/d,x13/11,s5,x8/6,s2,x0/2,s8,x1/11,pb/j,x8/5,ph/k,x1/6,pe/b,s10,x5/12,pi/c,x6/3,s15,pf/l,x11/2,s14,x5/15,s9,x12/9,pi/p,x5/0,pc/e,x13/1,s5,x12/7,pl/d,x2/0,s1,x7/9,s12,x8/10,s14,x0/14,pj/o,x3/2,s2,x1/15,s12,x13/4,s11,x10/6,pd/c,s9,pm/o,x8/5,ph/p,x14/0,s5,x8/15,s4,x10/6,pg/e,x12/2,s1,x4/3,s10,x7/15,s14,x0/5,pd/f,x13/8,s14,x15/9,s9,x11/14,s8,x15/8,s1,x3/6,pl/p,x5/7,s11,x11/10,pe/b,x14/12,pa/l,x10/6,s14,pm/n,x11/12,s8,x10/15,s7,x7/9,pa/h,x3/0,pf/k,s7,x13/12,pj/i,x6/0,s15,x8/2,pd/p,x12/6,pn/m,x8/9,s1,x7/14,pj/b,s12,x5/11,s3,x8/1,s4,pg/m,x13/5,s9,x9/12,s14,x14/6,pd/l,x0/13,pf/h,x10/5,pd/g,x2/11,pi/h,s10,x0/15,pl/g,x4/9,pd/f,x11/8,s5,x6/4,pp/i,x12/1,s11,x7/5,s4,x0/3,s10,x1/5,pe/a,x12/0,pm/b,x1/9,pn/j,x11/3,s11,x0/6,pe/k,x1/3,pa/d,x9/4,ph/n,x6/10,s9,x11/5,po/m,x1/2,s5,x3/0,pj/k,x2/12,s14,x6/4,pn/f,x11/13,pl/o,x7/3,pk/g,x10/8,s3,x4/0,pm/j,x14/5,s5,x8/12,pl/k,x5/13,s2,x0/11,s15,x13/9,pc/i,x2/1,s2,x14/0,s4,x8/12,pl/p,x6/1,pm/j,s4,x14/9,pd/i,x7/11,s1,x0/6,pm/c,x13/8,pi/d,x6/15,pg/k,x3/10,s14,x1/14,s13,x11/4,s4,x5/8,s8,x10/7,s7,x9/0,s2,x3/4,s3,x2/13,pp/m,x12/6,s5,x11/0,pl/i,x6/12,pa/f,x0/2,ph/l,s12,x15/5,s5,x12/3,pm/o,x6/15,s9,x14/3,s2,x5/12,pp/g,x9/13,pj/d,x0/4,s12,x2/14,s11,x5/8,s3,x4/0,s11,po/k,x12/5,s13,x14/2,s15,x12/10,s11,x1/4,s7,x12/9,pa/h,x10/0,pg/p,x7/11,s5,x3/5,s10,x12/1,s11,x13/4,pi/n,x14/10,s10,x1/2,s3,x14/10,s4,x12/2,s11,x4/11,pk/f,x9/5,s11,x2/0,s4,x4/3,ph/m,x7/8,s12,x13/10,s7,x5/4,s15,x6/2,pb/p,x12/1,s11,x4/14,pk/a,s15,x9/10,s10,x15/8,s13,pf/o,x7/3,pp/i,x11/15,s2,x13/0,pd/f,x8/3,s7,x2/10,s5,x4/12,s8,x10/1,pm/i,x15/2,s2,x7/10,pp/h,s4,x3/5,s15,x12/2,s2,x4/14,s13,x15/8,s11,x13/4,pf/l,s11,x2/0,s4,x5/9,pi/o,x3/6,s11,x0/13,pc/m,x14/3,s14,x15/7,s14,x14/10,pe/h,x11/9,s6,x5/13,pa/p,x8/4,pf/i,x6/14,pp/h,x3/13,s1,x15/6,pi/m,x11/7,s5,x10/9,s12,x11/6,s8,x13/9,s10,x3/2,s14,x10/15,pl/j,x2/11,s15,x8/10,s9,x3/5,pm/n,x11/15,pe/c,x8/12,s7,x15/3,pb/l,x1/13,pj/i,x2/7,s10,x9/13,s9,x10/14,s4,x13/8,s13,pm/b,x5/15,s12,x8/2,s15,x14/4,pj/f,x15/12,s8,x14/9,pk/a,x12/4,pd/c,s3,x2/13,pp/l,x12/6,pn/e,x5/14,s14,x0/13,s10,x10/8,ph/p,x14/12,s12,x4/15,s5,pa/n,x3/0,s14,pf/c,x4/5,s3,x8/1,s15,x2/5,s8,x15/3,s3,pp/i,s9,x13/1,s4,x6/14,s10,x12/13,pf/g,x8/1,pc/m,x4/6,s5,pb/n,x3/10,s5,x9/11,s10,x15/10,s13,x0/3,po/d,x4/12,s5,ph/p,x7/8,s7,pe/k,x10/12,s2,x13/14,pp/b,x12/6,s6,x13/4,po/a,x11/0,s5,x14/1,s6,x3/15,s3,x14/2,pj/l,x4/13,s12,x15/5,pi/d,x1/14,s10,x8/13,s2,x6/15,pp/l,x8/12,s13,x5/4,pc/b,x13/2,s6,x5/15,s2,x12/7,s6,pj/g,x8/0,pn/k,x2/9,s6,x5/12,s7,x10/11,pb/i,x2/13,s6,x0/9,s1,x14/8,s14,x2/4,s6,x11/5,pa/g,x2/9,s12,x8/15,ph/k,x1/5,s3,x9/0,pn/a,s10,pc/e,x5/12,pf/g,x9/14,pd/p,x5/1,s1,x13/3,s6,x0/2,s11,x13/15,s7,x10/6,s14,ph/l,x13/4,pi/k,x3/14,s5,x1/15,s13,x7/0,pm/f,x11/4,s6,x9/5,s5,x2/15,po/p,x6/1,pm/c,x7/13,s15,x10/4,s13,x12/6,s10,x4/1,pl/k,x5/14,s11,x9/7,s3,x8/13,s3,x0/12,pd/m,x7/4,s9,x10/2,pn/f,x1/0,s14,x2/12,pc/k,s1,x0/10,pd/e,x8/12,s6,x6/3,s9,x5/2,pi/k,s3,x13/8,pd/m,s11,x1/5,pp/c,s1,x10/12,pn/o,x2/1,s6,x10/4,s13,x0/14,s11,x15/7,s13,x10/6,s12,x7/8,s5,pj/i,x11/4,s1,x7/10,pb/n,x9/0,s10,pf/g,s10,x8/14,s15,x9/4,pk/a,x10/14,s8,x7/5,s9,pb/h,x14/0,pa/o,x2/15,s12,x13/6,pd/m,x8/9,s8,x13/0,s3,x15/7,po/l,x5/0,pf/a,x12/2,s5,x14/7,pm/o,s8,x11/13,s3,x9/12,pi/b,x3/11,s13,x8/0,pp/m,x3/6,pe/l,x0/2,pi/f,x14/3,po/c,x2/13,s10,x6/7,s8,x14/11,s11,x12/1,s9,x15/7,s6,x9/5,pl/n,x12/11,pk/g,x6/3,s14,pn/p,s2,x7/13,pe/m,x8/14,s4,x5/7,s1,x11/4,s11,x8/12,s5,x15/11,pk/n,x10/9,po/i,x14/12,pn/a,x15/3,pe/i,x5/12,pk/h,x11/9,s3,x2/0,s7,x3/10,pm/c,x1/11,s12,x2/3,s9,pf/a,x7/10,s8,x13/5,pm/g,x2/3,s4,x10/6,s15,x9/4,pl/n,s1,x3/7,s2,x12/0,s14,x13/7,s8,x3/4,pp/g,x13/6,pc/m,x5/7,pl/o,x1/3,pn/j,x2/6,pa/l,x10/7,s12,x9/8,pj/b,x10/12,pk/g,x9/14,pn/m,x12/0,pp/b,x14/9,s13,x5/4,s14,x6/9,pl/k,x10/12,s14,x7/13,s4,x9/6,pf/c,x10/7,s10,x2/14,s12,x11/3,s2,x2/14,pj/b,s14,x10/6,s10,x14/11,s5,x1/3,s13,pa/d,x7/15,pi/f,x4/9,s2,pc/e,x6/1,pk/o,x0/14,s10,x9/2,s1,x6/14,s4,x12/4,s6,x3/8,pm/f,s11,x10/11,ph/b,x0/9,s12,x13/15,pf/i,x0/6,s15,x4/14,s11,x9/0,s4,x6/1,s10,x12/10,s9,x6/11,s2,x7/9,s12,x6/10,po/j,x3/13,s11,x15/9,s1,x8/1,s11,x15/5,s11,x4/7,s4,x10/13,pm/h,x3/4,pi/a,x1/13,s6,x8/0,s11,x1/6,s2,x2/8,s10,x5/9,pc/l,x7/0,pb/j,x6/3,s10,x5/7,pe/i,x4/3,pc/h,x9/11,pa/d,x0/12,pj/k,x9/5,s5,x8/10,pi/e,x7/14,s14,x4/8,po/h,x15/9,s10,x13/8,pc/d,x7/14,pm/k,s14,x9/15,s5,pd/e,x2/11,s9,x10/4,po/c,x11/3,s6,x13/4,s7,pg/a,x10/12,pd/b,s1,x15/8,s12,x14/2,s12,x12/0,ph/g,x5/8,s15,x6/2,pk/l,x8/14,s15,x15/12,s10,x6/2,pj/e,s4,x4/3,ph/a,x9/6,s14,pp/b,x12/8,pl/j,x0/14,s15,pg/e,x7/13,s13,x8/6,s3,x10/0,s7,x14/12,pa/l,x10/7,s10,x9/15,s9,x13/3,s1,x4/0,s14,x6/9,po/c,x13/14,pa/e,x2/8,pm/h,x9/13,pf/b,x15/1,pi/k,x2/0,pd/f,s10,x8/7,s10,x10/5,s15,x7/11,pk/m,x12/13,pa/l,x14/6,pj/b,x15/3,ph/m,x11/4,s4,x13/9,pc/p,x7/11,s13,x4/5,s9,x0/9,s11,x10/11,s11,x13/4,pd/a,x14/3,s11,x1/15,s6,x5/11,s9,x7/14,s1,x4/3,s6,x8/12,s14,x6/15,s5,pn/g,x14/3,pi/p,s11,x11/5,pk/j,x13/15,s8,x2/4,pe/p,x10/3,s15,x6/5,pm/f,x14/0,s10,x6/12,s5,x4/9,s15,x6/12,s5,x10/8,pp/e,x14/5,pj/m,x13/15,ph/e,x6/5,s3,x14/7,pj/m,s10,x3/6,s6,pn/b,x10/15,s13,x11/7,pi/j,x14/13,pa/e,x0/15,s12,x7/11,s6,x0/2,s7,x14/15,s11,x13/3,pi/l,x7/12,s10,pf/n,x4/11,s15,x12/9,pk/p,x2/14,s14,x5/1,pg/a,x7/13,s11,x3/2,pl/n,x8/13,pb/e,x6/5,s9,x3/11,s4,pl/c,x4/9,s11,pp/o,x7/15,s15,x0/8,s12,x14/1,s10,x7/8,s15,x9/12,pl/a,x3/14,s5,x6/2,s2,x8/15,pn/j,x11/0,pa/l,x4/12,pn/b,x6/14,s12,x0/15,pd/i,x13/11,po/l,x14/4,s14,x2/7,pc/k,x8/4,s2,pj/a,s1,x10/15,pp/h,s5,x5/9,s9,x13/6,s15,x1/9,pd/c,x0/7,pm/f,x5/13,pp/c,x3/10,s12,x14/4,s9,x2/6,s3,x8/0,s10,pk/f,x5/13,s10,x11/1,pa/j,x10/4,pg/i,x5/8,s7,x6/12,s1,x8/5,s11,x12/2,s2,x4/10,pn/l,x8/0,pa/k,x12/11,s5,x10/9,s6,x7/4,s2,ph/g,x11/14,s5,x12/13,s10,x15/8,s2,x7/12,s1,x9/2,s4,x8/12,pn/e,x6/4,s6,x9/8,po/l,x10/2,s8,x14/13,s5,pc/h,s9,pl/k,x3/0,pg/e,s13,x2/1,s9,x3/6,pd/k,x8/9,pm/l,x3/15,s15,x12/5,s1,x14/13,pb/c,x8/9,s9,pl/a,x14/7,s5,x0/15,pj/g,x9/12,pp/e,x13/2,pa/b,x10/8,s8,x0/2,s4,x1/3,pm/e,x12/7,s7,pn/b,x2/5,pg/e,x12/7,s15,x8/14,pp/l,x3/5,pa/f,x15/6,s7,x1/7,pi/k,x0/11,pd/l,x9/8,pp/b,x1/0,s6,x8/14,pd/a,x11/7,s7,x6/14,s9,x1/8,s4,x2/13,pp/f,x7/0,pl/k,x8/12,pf/j,x4/1,pc/e,x2/7,pk/b,x12/5,s14,x0/13,pi/m,x6/5,pe/p,x7/14,s6,pi/a,x5/8,s8,x13/10,s15,x9/7,s7,x14/1,s2,x3/11,s4,x12/8,pb/h,x11/3,s9,x13/1,s2,x8/10,pg/p,x0/14,s10,x6/5,s6,x2/9,pa/h,x13/7,pb/c,s1,x1/0,s7,x14/6,s1,x13/7,s10,x9/11,pk/o,x7/6,pp/c,x4/9,s9,x15/10,pm/o,x6/5,pn/l,s5,x12/8,s3,x3/0,s13,x10/5,s14,x9/12,s6,x1/13,s8,x2/0,s7,x7/6,s8,x12/11,s2,x6/13,s4,pc/b,s15,x14/9,s1,x3/1,pn/m,s8,x5/2,pe/i,x4/8,s2,x9/6,s11,x12/2,s15,x0/11,pc/m,x7/4,pf/e,x13/11,pg/k,x12/10,s2,x9/13,s12,x1/0,pm/j,s12,x3/2,pb/k,x7/4,pj/f,x5/12,s11,x7/11,pn/g,x13/15,s14,x14/7,pk/p,x6/8,s8,x0/5,pb/i,x9/2,s2,x3/1,pc/j,x10/12,s10,x11/14,s9,x15/6,s8,x12/11,pn/h,x8/9,po/b,x15/3,pj/f,x11/14,s9,x12/6,pi/e,x11/9,s2,x6/3,s10,x4/10,ph/c,x12/14,s10,x4/1,s11,x11/15,pa/j,x9/13,pn/o,x2/12,s6,x11/3,s3,x4/13,pj/d,x2/14,pl/p,x15/6,ph/m,x5/14,s9,x2/11,pp/l,x12/0,s1,x3/11,pi/a,x5/6,pk/c,x10/7,s11,pf/a,x4/2,s3,x14/9,pi/e,x5/2,s4,x1/4,s14,x12/5,ph/f,x10/14,pk/i,x2/4,s3,x8/10,ph/n,x12/4,pj/g,x5/6,pd/n,x9/15,s14,x13/11,ph/o,x9/4,pi/f,x2/7,pl/e,x1/5,pb/d,x7/0,pf/l,x12/5,s14,x10/14,pi/d,x1/13,pa/f,x0/8,pb/n,x7/1,pl/o,x14/2,s12,x1/3,s12,x4/13,s7,x7/0,s15,x6/15,s2,pd/b,x11/7,pl/o,x0/12,s9,x7/3,pb/g,x4/0,pe/a,x6/12,s3,x5/10,ph/p,x15/12,pf/b,x10/5,s1,pg/l,x14/7,s12,x3/9,s2,x15/6,pi/k,x1/7,s4,x12/2,s15,x11/1,pa/d,x5/4,s7,x3/14,pb/h,x5/10,pj/i,x12/8,pe/p,x15/14,s3,x5/1,s5,x14/11,s15,x9/3,pj/b,x1/8,pg/i,x2/14,s9,x0/5,s4,x9/14,s1,x3/4,s3,x1/9,pd/f,x3/14,pj/c,x12/6,pl/f,x10/14,s8,x0/13,pc/m,x5/4,s11,x2/11,pj/o,x5/3,pm/e,x1/13,pg/f,s5,x0/6,pc/a,x4/10,pd/f,x8/14,pa/i,x0/13,pl/m,x7/10,s4,x2/5,s2,x7/1,s4,pa/h,x6/5,pm/l,x2/4,pa/k,x9/1,s11,x7/2,pg/c,x12/5,s9,x1/14,pl/i,x7/9,pp/f,x6/0,ph/i,x15/8,s9,x2/1,pp/e,s6,x7/5,s14,x6/14,pl/j,x1/9,pm/k,x10/14,pf/i,x3/8,pl/a,x2/5,pi/n,x1/3,s9,x15/6,s1,x9/8,ph/j,x1/5,s10,x4/9,s9,x13/2,s13,x6/8,s12,x7/0,s15,x13/12,pa/g,x15/10,pi/l,x8/11,s5,x10/15,pc/k,x6/13,s7,pj/g,x0/2,pa/f,s1,x14/6,s6,ph/g,s8,pd/p,x8/5,pe/i,x15/6,s2,x12/4,pj/h,x5/8,pl/i,x14/6,s7,x10/2,s8,pf/p,x12/1,s5,x13/4,pn/c,x15/0,pf/i,x4/7,po/p,x2/12,s6,x15/7,pn/c,x5/8,pi/e,x1/9,pa/p,x3/15,po/h,x10/1,pm/f,x6/11,s2,x10/4,pb/h,x13/12,pj/a,x11/10,s13,x3/1,s7,x15/11,s14,x4/9,s8,x15/8,pe/o,x1/4,s14,x5/10,s2,x15/0,s11,x8/3,s5,x4/5,s5,pf/m,x12/7,s6,pk/j,x11/9,pm/n,x5/13,ph/o,x2/4,s14,x9/11,s10,pk/j,x7/5,s3,x11/4,s11,x3/13,s7,x15/2,s11,x4/14,pn/d,x7/9,pe/i,x11/14,pp/h,x8/9,s1,x7/5,s8,x10/1,s1,x14/11,pe/g,x0/2,pf/l,x10/5,s1,x14/9,pb/o,s1,x4/1,s1,x12/15,pi/e,x0/11,s2,x13/8,s5,x4/6,s12,pk/h,x3/1,s3,x14/0,pb/c,x8/10,pk/a,x11/4,s5,x8/7,pn/d,x12/14,pm/c,x10/9,s14,x7/12,s6,pb/e,x15/6,s8,x0/5,s2,x14/9,s1,x6/2,s2,x3/13,pl/h,x11/7,s10,x10/15,s9,pb/d,x0/2,pg/j,x8/12,pp/b,x9/14,s10,x3/1,pn/o,s3,x7/9,s1,x11/14,pi/e,x10/12,s7,pc/l,x8/15,s1,x6/5,s3,x14/13,s14,x5/1,ph/k,x0/13,s1,pl/i,x5/3,s2,x7/10,pf/o,s5,x4/14,s5,x2/12,pj/l,x5/8,pi/o,x10/9,pm/e,x7/0,s11,x13/11,pl/i,x12/9,s3,x3/14,pe/f,x11/1,s7,po/b,x7/9,s14,x14/8,s2,x0/13,pd/l,x7/14,pk/m,x5/12,s3,x7/14,pp/h,x1/9,po/d,s7,x12/14,s5,x7/8,s15,x3/4,pp/i,s9,x1/14,s14,x6/5,pf/d,x10/9,pm/n,x8/7,pi/p,x6/15,s1,x10/4,s2,x13/12,s1,x7/10,s11,x3/12,pf/o,x0/9,s15,x7/11,s14,x5/14,s2,x15/7,s6,x8/5,pc/n,x10/15,s11,pl/i,x1/12,s8,x15/7,s3,x13/11,pa/g,x2/6,s14,x10/13,s14,x4/8,pf/c,x2/12,s7,x1/11,pp/g,x9/12,s14,x8/7,pb/f,x3/10,s5,x4/8,pa/g,x3/0,s6,x9/15,pn/e,s12,x10/14,pk/h,x9/6,s4,x1/14,pd/a,x12/15,pp/g,x0/5,s12,x9/4,s5,x14/15,s13,x8/10,s10,x12/2,s8,x15/7,pn/o,x3/13,s15,x14/4,pg/m,x5/7,s2,x11/15,s3,ph/f,x0/13,pp/i,x9/2,s15,x14/8,pe/l,s14,x2/3,s14,x8/4,pb/f,x10/3,s15,x8/13,s12,x12/0,pe/a,x8/1,s2,pf/g,x10/0,pa/p,x15/8,s1,x3/6,pm/b,x11/4,s8,x13/12,pd/p,x5/6,s2,x0/12,s14,x5/7,s15,pk/e,x3/13,pm/j,x1/14,s14,x10/13,pn/g,x0/3,pm/h,x5/2,pf/g,x9/1,pi/h,x4/0,pn/m,x10/13,pj/k,s15,x14/11,pb/a,x12/2,s11,x4/10,pc/i,x13/15,s3,x1/4,s12,x6/5,s14,x12/0,pl/h,s7,x11/4,s12,pb/c,x15/9,s12,x10/1,pn/g,x15/4,s9,x10/8,ph/l,x5/15,s2,pa/c,s5,x14/12,s13,x9/3,pi/f,x6/10,s10,x13/7,s14,x1/14,s5,x3/11,s6,x1/14,s14,x6/15,s5,pg/b,x5/13,pa/k,x14/6,s8,x5/8,s3,x13/15,s4,x3/2,pe/d,x11/14,pm/a,x7/5,s13,x11/13,ph/o,s9,x1/4,s8,pi/m,x9/6,s4,x12/3,ph/c,x13/9,po/n,x12/3,pg/d,x13/6,pa/b,s12,pi/g,x10/15,s11,x9/13,s9,x10/8,s6,x13/6,pj/c,x11/12,pf/k,x9/4,s14,x11/0,s8,x8/4,s5,pi/o,x10/1,s13,x4/2,s9,x14/6,s2,x9/1,pj/c,s3,x2/4,pp/k,x8/1,s10,x6/3,pn/j,x12/14,s5,x8/7,s11,x2/12,s2,x4/5,s6,x11/13,pa/h,x2/5,pf/l,x1/0,s9,x5/14,s12,x10/13,pe/h,x14/9,s7,x5/7,s14,x13/2,s9,x10/3,s12,x4/0,pm/f,x1/5,ph/k,x11/7,pb/c,x3/14,s15,x6/13,s9,x14/15,s10,x7/13,s7,x6/5,pd/h,x12/7,pc/l,x8/0,s13,x13/11,s10,x3/6,ph/m,x8/14,po/j,s9,pf/p,x5/12,s6,x9/14,ph/e,x1/5,s7,x12/6,s10,x15/4,pn/c,s13,x2/6,s12,x3/7,ph/b,x6/8,s7,x10/0,s14,x6/12,s8,x13/4,po/c,x2/3,pl/d,x8/14,s1,x1/4,s7,pg/k,x6/15,s9,x11/8,pm/p,x10/7,pl/c,x13/3,s10,x0/11,pn/i,x13/8,pl/b,x1/2,s11,pp/k,x10/9,s9,x8/1,pf/a,x5/3,pl/n,x6/0,s4,x15/12,s3,x9/4,pd/m,x12/0,s8,po/c,x11/4,pg/l,x12/13,s11,x3/7,pc/e,x4/9,s3,x8/6,s11,x3/5,s13,x1/6,s6,x5/15,s11,x3/14,s6,x5/13,ph/g,x8/9,s8,x11/2,s4,x9/3,s13,x10/6,s4,x13/11,s11,x5/1,pc/n,s10,x12/4,pd/e,x5/2,pk/g,s4,x8/11,s7,x13/4,pp/h,x5/8,s4,x3/13,po/f,x5/11,s7,x7/8,s15,x0/4,s8,x14/2,s14,x10/13,s10,x15/3,s9,x10/1,s11,x9/13,s10,x15/11,s8,x12/5,s3,x8/9,s7,x1/12,s5,x5/13,s15,x0/15,s12,x7/2,s8,x14/5,s6,x11/15,pp/j,s3,x13/5,s14,x10/8,s7,x7/3,s3,x15/2,pd/g,x4/0,s11,x1/2,s12,x10/13,s8,x9/8,s7,x14/12,s15,x1/4,s15,x14/15,s3,x9/4,s15,pk/l,x6/11,s5,x9/12,pp/n,x10/7,s3,x2/5,po/i,x6/10,s10,x11/7,s4,pp/n,s11,x3/9,pj/f,x0/4,s8,x2/5,pb/h,x14/7,s6,pd/i,x2/15,pl/p,x9/8,s7,x7/11,pe/o,x5/10,pk/d,x4/7,s11,x9/6,s11,po/j,x1/2,s3,x15/11,pi/m,x5/0,s1,x12/15,s2,x5/11,pk/g,x7/14,s13,x3/4,pf/n,x13/5,pp/c,s11,x15/10,pn/h,x12/7,s8,x0/3,s4,pf/e,x14/13,s9,pg/p,x11/3,s2,x2/5,s9,x15/9,s8,pj/o,x1/2,s10,x12/11,s5,x2/10,s12,x12/7,pl/k,x13/14,po/f,x10/7,s2,x0/8,s15,x12/13,s4,x7/2,pn/d,s1,pl/c,x14/5,s15,x6/7,s14,x10/9,pd/b,x6/11,pg/m,x13/14,s9,x11/15,pi/l,x1/2,pb/c,x11/4,pg/m,x0/10,pn/k,x8/9,s9,x3/11,pj/f,x14/1,s12,x15/9,s11,x7/2,s6,x8/5,pe/d,x6/4,pa/m,x9/12,s1,x0/13,pn/c,x9/6,ph/p,x0/12,s15,pg/b,s5,x4/9,s14,x13/11,s12,x14/4,s14,x1/2,pm/f,x15/14,pc/k,x9/2,pb/o,x8/12,pj/d,x13/0,s2,x14/3,s8,x7/6,s12,x12/3,pe/i,x8/6,pb/m,x12/4,pc/f,x7/1,s12,x6/11,s6,x4/15,s14,x5/8,s5,x3/12,pb/k,x5/15,pl/n,x12/1,pg/o,x5/3,s15,x2/10,pi/a,x4/11,ph/b,x7/10,pp/a,x3/6,pl/g,x8/2,pa/b,x14/10,pe/k,s2,x4/15,pf/g,x3/1,s2,x0/8,s6,x5/14,s4,x2/0,s8,x14/4,s3,x10/0,s13,x8/9,pd/a,x10/1,s12,x0/6,pn/h,x12/4,s2,x11/14,s4,x6/8,s4,x9/5,s13,x7/6,s4,x5/9,s8,pe/b,x1/8,s5,x4/6,s7,x14/11,po/n,x15/9,s6,x11/10,pc/m,x12/4,pi/a,x10/3,pj/b,x12/0,s3,pl/c,x9/10,s10,x4/13,pi/p,x10/5,s9,x7/12,s4,x8/0,s11,x7/4,s3,pa/o,x2/12,pl/k,x13/6,pg/h,s11,x0/15,s2,x3/6,s14,pa/f,x8/0,s10,x9/13,s6,x8/11,pe/b,x10/3,pj/i,x13/5,s3,x12/10,pp/f,x4/15,pd/g,x13/0,pc/e,x8/14,s4,x10/7,pd/a,x5/2,s3,x4/6,pi/h,x0/14,s5,x2/10,s15,x13/15,pg/o,x10/5,s7,x9/1,pm/k,x3/10,pa/p,s8,x7/6,s12,x0/8,s11,x15/7,s12,x1/14,pb/o,x10/3,s15,pa/k,s5,x8/6,s14,x1/7,s3,x3/6,s5,x12/8,s13,x9/14,s8,x2/1,s12,x6/7,s15,x9/2,s1,x15/3,s11,x1/13,s15,x0/14,pj/o,x4/3,s8,x7/5,s1,x9/4,s15,x0/1,s10,x15/6,pc/m,x14/0,pd/h,x6/2,pk/f,x11/8,po/i,x9/6,pk/e,x5/13,pc/o,x3/6,pf/d,x7/11,s12,x2/6,s1,x0/7,s15,x10/12,pi/m,x3/6,s7,x8/15,s1,x1/11,s11,x10/14,s6,x8/6,s2,x11/10,pg/p,x13/6,pd/o,x10/5,s14,x6/4,s9,pi/n,x8/2,s12,x10/9,s15,x5/15,pd/f,s3,x11/13,pi/l,x8/12,po/h,x4/13,pj/n,x12/10,s2,x6/11,s7,x12/13,s11,x9/14,s8,x2/11,pe/b,x14/8,pf/d,s1,x9/13,s10,x10/11,po/g,x13/5,pa/n,x7/11,pm/c,x15/4,s5,po/i,x1/13,s4,x9/3,s10,x2/5,s1,x4/1,pl/k,x6/5,s12,x15/13,s4,x7/9,pf/a,x12/13,s13,pd/l,x8/5,pa/j,s10,pp/b,x9/14,s8,x13/7,s1,x12/8,pe/l,s1,x5/11,s9,x7/0,s5,x5/4,s9,x10/6,pp/m,x15/1,s9,x9/6,s7,x13/10,po/k,x15/12,pa/c,x8/6,pb/d,s10,pl/i,x13/4,pb/p,x12/1,s3,x13/9,s6,x12/8,s11,x6/0,s1,pg/h,x10/2,pl/d,x4/6,s12,x9/15,s6,x3/14,s4,x7/2,s9,x8/12,ph/b,x9/1,s11,x3/14,s12,x8/13,s6,x14/7,s6,x8/9,s15,x0/3,s3,x11/8,pg/e,s3,x0/6,pi/h,s5,x14/3,s2,x4/9,pb/j,x10/5,s2,x1/13,s13,x7/2,s9,x3/9,pl/n,x12/4,s10,x14/10,s11,pk/a,x6/12,s13,x3/14,s11,x13/8,pj/f,x14/11,s12,pc/k,s3,x2/0,pl/d,x3/1,s8,x11/8,s10,x6/9,s4,x4/3,s9,x2/9,s12,x12/13,s4,x7/9,s11,x1/3,s4,x7/0,pb/c,x12/10,s4,x7/6,s1,x11/2,s8,x5/3,s9,x7/2,s13,x10/1,s15,x3/8,s2,x1/11,s13,x4/13,s2,x10/9,s2,x1/12,s9,x5/4,pg/e,x11/7,pi/l,x1/3,pn/j,x2/7,pd/c,x10/6,pk/a,x5/12,s15,x2/11,pm/i,x3/1,s3,x4/5,pe/j,x13/15,s6,x7/2,s14,x13/12,s6,x14/3,pk/p,x6/5,s15,x12/0,pf/h,x9/1,s5,x7/2,pk/c,x8/10,s14,x12/9,pg/n,x7/10,s12,x8/1,pe/o,x15/10,pc/k,x14/6,s10,x3/12,pe/l,x5/4,pf/h,x13/1,pe/p,x9/6,pf/h,x12/10,pb/e,x4/7,s8,x5/10,s5,x9/6,s1,x12/4,s11,x13/1,pa/o,x4/0,pp/l,x12/14,s9,x11/3,s9,x10/9,s2,x15/14,s8,x8/0,s4,x13/2,s14,x9/3,s5,x4/8,pk/n,x11/14,pi/f,x15/10,pj/o,x8/1,s7,x6/15,pd/n,x0/9,s15,x4/14,pg/e,x3/10,pi/o,x15/13,pe/n,x1/9,s7,x2/10,s7,x0/6,s12,x8/2,s7,x9/6,s8,pc/m,x12/1,s7,x14/7,pi/n,x1/13,pd/o,x14/15,pp/i,x0/10,s10,x8/14,s4,x15/5,pe/a,x8/13,ph/o,s14,x2/1,s1,x8/14,pa/d,x12/13,s8,x5/3,pk/l,x11/7,pj/a,x0/12,pf/m,x10/3,s9,x12/8,s6,x1/3,s13,x15/11,pk/c,x12/6,s15,x8/11,s4,x15/13,pg/b,x11/4,s11,x0/6,s11,x5/4,pk/m,x0/3,s11,x13/9,pe/h,x15/2,s5,x1/10,pj/i,x12/15,s13,x7/5,s4,ph/p,x3/12,pd/e,s3,x6/1,s8,x15/14,s1,pi/k,x4/3,s12,x15/6,s1,x5/13,pf/g,x11/14,s3,x3/9,ph/j,s7,x12/13,po/m,s1,x10/9,pb/a,x7/6,s4,x2/12,s15,x4/13,s9,x1/2,ph/j,s9,x10/3,s8,x13/2,s7,x15/4,s14,x8/7,s5,x1/6,s4,x3/13,s2,x4/8,pa/f,x3/6,s6,x5/15,s9,x8/10,s4,x3/0,s5,x14/7,s5,x4/1,s9,x10/5,pi/k,x3/7,s1,x4/9,pl/e,s12,x10/2,s7,x7/4,pc/b,x14/2,s7,x10/6,pp/d,x9/0,pk/j,x15/8,s12,x11/1,po/h,x13/5,s4,x15/4,s1,x14/3,s9,x2/7,s3,x15/9,s3,x1/14,s2,x9/8,pn/a,x12/7,s2,x0/4,pe/b,x9/7,po/k,s1,x5/6,s5,x10/1,pb/e,x11/12,s14,x0/10,s13,x4/11,s15,x0/8,pg/p,x13/3,s10,pd/o,x11/5,pl/c,x9/6,s8,x7/11,s2,x10/3,s7,x8/5,s13,x6/2,s3,x0/7,s3,x4/11,s12,x6/9,pf/n,x14/10,s9,x11/7,s13,x0/12,s2,x3/6,s12,x9/5,s8,x15/3,pk/m,x13/6,s6,pp/f,s13,x9/3,pc/j,x7/10,pa/d,x2/9,pn/p,s14,x11/6,pm/j,x8/0,s1,x14/4,s14,x10/12,s2,x13/7,s2,x3/1,s10,x15/13,ph/c,x9/11,po/b,x15/3,s13,x6/5,pe/k,x8/15,ph/d,x5/12,s15,x7/14,pf/b,s13,x13/3,s8,x6/5,pp/g,x3/7,s9,x11/6,pk/l,x14/1,s12,x0/13,pd/j,s8,pb/i,x14/4,pc/h,x2/6,pl/g,x11/12,s13,x13/1,pd/p,x14/7,s1,x5/4,s12,x12/9,s1,x1/4,s14,x8/0,po/c,x7/13,pn/j,s9,x8/10,s5,x2/13,s8,ph/a,x4/6,s11,x8/0,s12,po/g,x13/6,pf/k,s2,x10/15,s5,x0/8,s1,x1/2,po/g,x7/12,s4,x15/6,s5,x9/1,s14,x5/12,pl/m,x8/0,s10,pk/b,x5/11,pm/g,x13/3,pa/o,x4/7,s14,x8/15,s8,pj/f,x14/0,s9,x13/15,s15,x9/11,s6,x6/7,s5,x4/8,s8,x9/15,s15,x14/2,pb/n,x7/13,pj/e,x4/15,s5,x12/13,s12,x0/5,pi/a,x6/13,s13,x5/12,s3,x4/13,s1,x5/6,s15,x7/15,s10,x2/4,s9,x0/5,pn/d,s10,x9/3,s4,x12/1,s13,x8/7,pp/g,x0/2,pa/e,x9/5,po/n,s11,x0/8,pa/e,x15/3,pm/c,x11/2,s10,x5/6,s3,x7/3,s11,x8/13,s3,x5/6,s6,x13/7,pk/e,s14,x14/3,s10,x11/2,s9,pl/a,x6/9,s11,x7/0,pn/i,s7,x11/13,pp/j,x1/7,s4,pl/a,s3,pg/k,x0/6,pp/e,x5/10,s10,x6/13,s8,x4/12,s5,x8/14,pk/o,x4/13,s13,x5/12,pe/f,s6,x7/1,s6,x15/11,s11,x8/12,pa/m,x9/7,s9,x1/15,pn/p,x8/12,pe/m,x1/7,s5,x12/5,s9,pk/f,x8/15,s6,x3/13,s5,x4/9,pp/g,x13/0,pk/e,x8/9,s12,x13/10,s15,x11/12,pc/a,s5,ph/e,x13/9,s3,x1/2,pb/f,s10,x12/0,s14,x11/9,s14,x6/3,s14,x8/15,s14,x1/2,s13,x5/10,s5,x0/12,pj/g,x1/5,pb/k,s12,x0/11,pf/p,x5/12,s15,x10/2,s4,x15/0,s10,x3/4,s14,x2/7,s2,pd/m,x0/6,s10,x3/13,s4,x5/0,pb/e,x12/4,pd/h,x3/13,s1,x2/5,pe/c,x0/6,ph/n \ No newline at end of file diff --git a/problems/day16.html b/problems/day16.html new file mode 100644 index 0000000..e1d775b --- /dev/null +++ b/problems/day16.html @@ -0,0 +1,156 @@ + + + + +Day 16 - Advent of Code 2017 + + + + + + + +

Advent of Code

Neil Smith (AoC++) 32*

   $year=2017;

+ + + +
+

--- Day 16: Permutation Promenade ---

You come upon a very unusual sight; a group of programs here appear to be dancing.

+

There are sixteen programs in total, named a through p. They start by standing in a line: a stands in position 0, b stands in position 1, and so on until p, which stands in position 15.

+

The programs' dance consists of a sequence of dance moves:

+
    +
  • Spin, written sX, makes X programs move from the end to the front, but maintain their order otherwise. (For example, s3 on abcde produces cdeab).
  • +
  • Exchange, written xA/B, makes the programs at positions A and B swap places.
  • +
  • Partner, written pA/B, makes the programs named A and B swap places.
  • +
+

For example, with only five programs standing in a line (abcde), they could do the following dance:

+
    +
  • s1, a spin of size 1: eabcd.
  • +
  • x3/4, swapping the last two programs: eabdc.
  • +
  • pe/b, swapping programs e and b: baedc.
  • +
+

After finishing their dance, the programs end up in order baedc.

+

You watch the dance for a while and record their dance moves (your puzzle input). In what order are the programs standing after their dance?

+
+

Your puzzle answer was giadhmkpcnbfjelo.

--- Part Two ---

Now that you're starting to get a feel for the dance moves, you turn your attention to the dance as a whole.

+

Keeping the positions they ended up in from their previous dance, the programs perform it again and again: including the first dance, a total of one billion (1000000000) times.

+

In the example above, their second dance would begin with the order baedc, and use the same dance moves:

+
    +
  • s1, a spin of size 1: cbaed.
  • +
  • x3/4, swapping the last two programs: cbade.
  • +
  • pe/b, swapping programs e and b: ceadb.
  • +
+

In what order are the programs standing after their billion dances?

+
+

Your puzzle answer was njfgilbkcoemhpad.

Both parts of this puzzle are complete! They provide two gold stars: **

+

At this point, you should return to your advent calendar and try another puzzle.

+

If you still want to see it, you can get your puzzle input.

+

You can also this puzzle.

+
+ + + + + + \ No newline at end of file diff --git a/src/advent16/advent16.hs b/src/advent16/advent16.hs new file mode 100644 index 0000000..dc24552 --- /dev/null +++ b/src/advent16/advent16.hs @@ -0,0 +1,124 @@ +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TypeFamilies #-} + +import Prelude hiding ((++)) +import Data.Text (Text) +import qualified Data.Text as T +import qualified Data.Text.IO as TIO + +import Text.Megaparsec hiding (State) +import qualified Text.Megaparsec.Lexer as L +import Text.Megaparsec.Text (Parser) +import qualified Control.Applicative as CA + +import Control.Monad.State.Lazy +import Control.Monad.Reader + +import Data.Vector.Unboxed ((!), (++), (//)) +import qualified Data.Vector.Unboxed as V + +import qualified Data.IntMap as M + + +data Step = Spin Int + | Exchange Int Int + | Partner Char Char + deriving (Show, Eq) + +type Dancers = V.Vector Char + +type DanceHistory = M.IntMap Dancers + +type HistoryRecorder = ReaderT [Step] (State DanceHistory) DanceHistory + + +startingDancers :: Dancers +startingDancers = V.fromList ['a'..'p'] + +emptyHistory :: DanceHistory +emptyHistory = M.singleton 0 startingDancers + + +main :: IO () +main = do + text <- TIO.readFile "data/advent16.txt" + let instrs = successfulParse text + print $ part1 instrs + print $ part2 instrs + + +part1 :: [Step] -> Dancers +part1 instrs = evalState (runDance instrs) startingDancers + +part2 instrs = (M.!) history (1000000000 `rem` M.size history) + where history = evalState (runReaderT (recordDance startingDancers) instrs) emptyHistory + + +runDance :: [Step] -> State Dancers Dancers +runDance [] = do dancers <- get + return dancers +runDance (step:steps) = + do dancers <- get + let dancers' = case step of + Spin n -> spin n dancers + Exchange a b -> exchange a b dancers + Partner a b -> partner a b dancers + put dancers' + runDance steps + + +recordDance :: Dancers -> HistoryRecorder +recordDance dancers = + do + history <- get + instrs <- ask + let dancers' = evalState (runDance instrs) dancers + if dancers' == startingDancers && (not (history == emptyHistory)) + then return history + else do +-- instrs <- ask +-- let dancers' = evalState (runDance instrs) dancers + let history' = M.insert (M.size history) dancers' history + put history' + recordDance dancers' + +spin :: Int -> Dancers -> Dancers +spin n dancers = back ++ front + where (front, back) = V.splitAt n' dancers + n' = V.length dancers - n + +exchange :: Int -> Int -> Dancers -> Dancers +exchange a b dancers = dancers // [(a, dancers!b), (b, dancers!a)] + +partner :: Char -> Char -> Dancers -> Dancers +partner a b dancers = exchange a' b' dancers + where a' = V.head $ V.elemIndices a dancers + b' = V.head $ V.elemIndices b dancers + + +sc :: Parser () +sc = L.space (skipSome spaceChar) CA.empty CA.empty + +-- lexeme = L.lexeme sc + +int :: Parser Int +int = read <$> some digitChar + +symb = L.symbol sc +comma = char ',' +dancer = oneOf ['a'..'p'] + +stepsP = stepP `sepBy` comma +stepP = (try spinP) <|> (try exchangeP) <|> partnerP + +spinP = Spin <$> (symb "s" *> int) +exchangeP = Exchange <$> (symb "x" *> int) <*> (symb "/" *> int) +partnerP = Partner <$> (symb "p" *> dancer) <*> (symb "/" *> dancer) + +successfulParse :: Text -> [Step] +successfulParse input = + case parse stepsP "input" input of + Left _error -> [] -- TIO.putStr $ T.pack $ parseErrorPretty err + Right steps -> steps \ No newline at end of file diff --git a/src/advent16/advent16.ipynb b/src/advent16/advent16.ipynb new file mode 100644 index 0000000..3e5a9db --- /dev/null +++ b/src/advent16/advent16.ipynb @@ -0,0 +1,413 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "{-# LANGUAGE NegativeLiterals #-}\n", + "{-# LANGUAGE FlexibleContexts #-}\n", + "{-# LANGUAGE OverloadedStrings #-}\n", + "{-# LANGUAGE TypeFamilies #-}" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import Prelude hiding ((++))\n", + "import Data.Text (Text)\n", + "import qualified Data.Text as T\n", + "import qualified Data.Text.IO as TIO\n", + "\n", + "import Text.Megaparsec hiding (State)\n", + "import qualified Text.Megaparsec.Lexer as L\n", + "import Text.Megaparsec.Text (Parser)\n", + "import qualified Control.Applicative as CA\n", + "\n", + "import Control.Monad.State.Lazy\n", + "import Control.Monad.Reader\n", + "\n", + "import Data.Vector.Unboxed ((!), (++), (//))\n", + "import qualified Data.Vector.Unboxed as V\n", + "\n", + "import qualified Data.IntMap as M" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "data Step = Spin Int\n", + " | Exchange Int Int\n", + " | Partner Char Char\n", + " deriving (Show, Eq)\n", + "\n", + "type Dancers = V.Vector Char\n", + "\n", + "type DanceHistory = M.IntMap Dancers\n", + "\n", + "type HistoryRecorder = ReaderT [Step] (State DanceHistory) DanceHistory" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"abcdefghijklmnop\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "['a'..'p']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "sc :: Parser ()\n", + "sc = L.space (skipSome spaceChar) CA.empty CA.empty\n", + "\n", + "lexeme = L.lexeme sc\n", + "\n", + "int :: Parser Int\n", + "int = read <$> some digitChar\n", + "\n", + "symb = L.symbol sc\n", + "comma = char ','\n", + "dancer = oneOf ['a'..'p']\n", + "\n", + "stepsP = stepP `sepBy` comma\n", + "\n", + "\n", + "stepP = (try spinP) <|> (try exchangeP) <|> partnerP\n", + "\n", + "spinP = Spin <$> (symb \"s\" *> int)\n", + "exchangeP = Exchange <$> (symb \"x\" *> int) <*> (symb \"/\" *> int)\n", + "partnerP = Partner <$> (symb \"p\" *> dancer) <*> (symb \"/\" *> dancer)\n", + "\n", + "successfulParse :: Text -> [Step]\n", + "successfulParse input = \n", + " case parse stepsP \"input\" input of\n", + " Left err -> [] -- TIO.putStr $ T.pack $ parseErrorPretty err\n", + " Right steps -> steps" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Partner 'o' 'k',Exchange 4 0,Spin 12,Exchange 7 6]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "successfulParse $ T.pack \"po/k,x4/0,s12,x7/6\"" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "startingDancers :: Dancers\n", + "startingDancers = V.fromList ['a'..'p'] " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"abcdefghijklmnop\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "startingDancers" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "spin :: Int -> Dancers -> Dancers\n", + "spin n dancers = back ++ front\n", + " where (front, back) = V.splitAt n' dancers\n", + " n' = V.length dancers - n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"nopabcdefghijklm\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "spin 3 startingDancers" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "exchange :: Int -> Int -> Dancers -> Dancers\n", + "exchange a b dancers = dancers // [(a, dancers!b), (b, dancers!a)]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"aocdefghijklmnbp\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "exchange 1 14 startingDancers" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "partner :: Char -> Char -> Dancers -> Dancers\n", + "partner a b dancers = exchange a' b' dancers\n", + " where a' = V.head $ V.elemIndices a dancers\n", + " b' = V.head $ V.elemIndices b dancers" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"abkdefghijclmnop\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "partner 'c' 'k' startingDancers" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "runDance :: [Step] -> State Dancers Dancers\n", + "runDance [] = do dancers <- get\n", + " return dancers\n", + "runDance (step:steps) = \n", + " do dancers <- get\n", + " let dancers' = case step of\n", + " Spin n -> spin n dancers\n", + " Exchange a b -> exchange a b dancers\n", + " Partner a b -> partner a b dancers\n", + " put dancers'\n", + " runDance steps\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "part1 :: [Step] -> Dancers\n", + "part1 instrs = evalState (runDance instrs) startingDancers" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "main :: IO ()\n", + "main = do \n", + " text <- TIO.readFile \"../../data/advent16.txt\"\n", + " let instrs = successfulParse text\n", + " print $ part1 instrs\n", + "-- print $ part2 instrs" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"giadhmkpcnbfjelo\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "main" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "emptyHistory :: DanceHistory\n", + "emptyHistory = M.singleton 0 startingDancers\n", + "-- emptyHistory = M.empty" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "recordDance :: Dancers -> HistoryRecorder\n", + "recordDance dancers = \n", + " do\n", + " history <- get\n", + " instrs <- ask\n", + " let dancers' = evalState (runDance instrs) dancers\n", + " if dancers' == startingDancers && (not (history == emptyHistory))\n", + " then return history\n", + " else do \n", + "-- instrs <- ask\n", + "-- let dancers' = evalState (runDance instrs) dancers\n", + " let history' = M.insert (M.size history) dancers' history\n", + " put history'\n", + " recordDance dancers'" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "part2 instrs = (M.!) history (1000000000 `rem` M.size history)\n", + " where history = evalState (runReaderT (recordDance startingDancers) instrs) emptyHistory" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "main :: IO ()\n", + "main = do \n", + " text <- TIO.readFile \"../../data/advent16.txt\"\n", + " let instrs = successfulParse text\n", + " print $ part1 instrs\n", + " print $ part2 instrs" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"giadhmkpcnbfjelo\"\n", + "\"njfgilbkcoemhpad\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "main" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Haskell", + "language": "haskell", + "name": "haskell" + }, + "language_info": { + "codemirror_mode": "ihaskell", + "file_extension": ".hs", + "name": "haskell", + "version": "8.0.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- 2.34.1