Problem Display
PID: 91918 (KBBn2Q1/2R5/1ppp1n2/Npk1N3/2p2p2/P7/3R2b1/8 w - - 0 1)

Hulsmann, Hans

Westfalische Schachbund, 1938

KBBn2Q1/2R5/1ppp1n2/Npk1N3/2p2p2/P7/3R2b1/8

#2

9 + 10


6490 yacpdb 2009

SOLUTION


  • SOUND
  • Sets
    • 1...Bf1
      • 2.Qg1#
    • 1...Bh1
      • 2.Qg1#
    • 1...Bf3
      • 2.Qg1#
    • 1...Bh3
      • 2.Qg1#
    • 1...Be4
      • 2.Qg1#
    • 1...Bd5
      • 2.Qg1#
    • 1...Se4
      • 2.Sd7#
      • 2.Rd5#
      • 2.Qd5#
    • 1...Sg4
      • 2.Sd7#
    • 1...Sd5
      • 2.Sd7#
    • 1...Sh5
      • 2.Sd7#
    • 1...Sd7
      • 2.Sxd7#
    • 1...Sh7
      • 2.Sd7#
    • 1...Se8
      • 2.Sd7#
    • 1...Sxg8
      • 2.Sd7#
    • 1...Se6
      • 2.Sb7#
    • 1...Sb7
      • 2.Sxb7#
    • 1...Sf7
      • 2.Sb7#
    • 1...c3
      • 2.Sb3#
    • 1...b4
      • 2.Qxc4#
    • 1...bxa5
      • 2.Ba7#
    • 1...dxe5
      • 2.Qf8#
    • 1...d5
      • 2.Qf8#
  • Tries
    • 1.Sd3+?
      • 1...cxd3
        • 2.Sb3#
      • 1...Kd4!
    • 1.Sf3?
      • 1...Bxf3
        • 2.Qg1#
      • 1...bxa5
        • 2.Ba7#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Se4
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sd5
        • 2.Rxd5#
        • 2.Qxd5#
      • 1...Sh5
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sd7
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sh7
        • 2.Rd5#
        • 2.Qd5#
      • 1...Se8
        • 2.Rd5#
        • 2.Qd5#
      • 1...Se6
        • 2.Sb7#
        • 2.Rxc6#
      • 1...Sb7
        • 2.Sxb7#
        • 2.Rxc6#
      • 1...Sf7
        • 2.Sb7#
        • 2.Rxc6#
      • 1...c3
        • 2.Sb3#
      • 1...Sxg8!
    • 1.Ba7?
      • 1...Sxg8
        • 2.Sd7#
      • 1...dxe5
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...f3!
    • 1.Bh3?
      • 1...Bxh3
        • 2.Qg1#
      • 1...Sxg8
        • 2.Sd7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...f3!
    • 1.Bf5?
      • 1...Sxg8
        • 2.Sd7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...f3!
    • 1.Ba6?
      • 1...Sxg8
        • 2.Sd7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qf8#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...b4
        • 2.Qxc4#
      • 1...f3!
    • 1.Rd1?
      • 1...Sxg8
        • 2.Sd7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...f3!
    • 1.Rd3?
      • 1...Sxg8
        • 2.Sd7#
      • 1...cxd3
        • 2.Sb3#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...d5
        • 2.Qf8#
      • 1...Bf1
        • 2.Qg1#
      • 1...Bh1
        • 2.Qg1#
      • 1...Bf3
        • 2.Qg1#
      • 1...Bh3
        • 2.Qg1#
      • 1...Be4
        • 2.Qg1#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sg4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Sh5
        • 2.Sd7#
      • 1...Sd7
        • 2.Sxd7#
      • 1...Sh7
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Se6
        • 2.Sb7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...c3
        • 2.Sb3#
      • 1...f3!
    • 1.Rd5+?
      • 1...Bxd5
        • 2.Qg1#
      • 1...Sxd5!
    • 1.Rxc6+?
      • 1...Sxc6
        • 2.Sb7#
        • 2.Bxd6#
      • 1...Bxc6+!
    • 1.Ra7?
      • threat
        • 2.Bxd6#
      • 1...dxe5
        • 2.Bd6#
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...d5
        • 2.Qf8#
      • 1...bxa5!
    • 1.Rb7?
      • threat
        • 2.Bxd6#
      • 1...Sxb7
        • 2.Sxb7#
      • 1...dxe5
        • 2.Bd6#
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...d5
        • 2.Qf8#
      • 1...Sf7!
    • 1.Re7?
      • threat
        • 2.Bxd6#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Bd6#
      • 1...b4
        • 2.Qxc4#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...d5!
    • 1.Rf7?
      • threat
        • 2.Bxd6#
      • 1...Sxf7
        • 2.Sb7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Bd6#
        • 2.Qf8#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...d5
        • 2.Qf8#
      • 1...b4!
    • 1.Rg7?
      • threat
        • 2.Bxd6#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Bd6#
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...d5
        • 2.Qf8#
      • 1...Bd5!
    • 1.Qd5+?
      • 1...Sxd5
        • 2.Sd7#
      • 1...Bxd5!
    • 1.Qe6?
      • threat
        • 2.Qxd6#
      • 1...Sxe6
        • 2.Sb7#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Qd6#
        • 2.Qe7#
      • 1...b4
        • 2.Qxc4#
      • 1...Se4
        • 2.Sd7#
        • 2.Rd5#
        • 2.Qd5#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...d5
        • 2.Qe7#
      • 1...Bd5!
    • 1.Qxd8?
      • threat
        • 2.Sb7#
        • 2.Qxd6#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Sb7#
        • 2.Qe7#
        • 2.Qd6#
        • 2.Qf8#
      • 1...Bd5
        • 2.Sb7#
      • 1...Se4
        • 2.Sb7#
        • 2.Sd7#
        • 2.Rxc6#
      • 1...Sd5
        • 2.Sb7#
        • 2.Sd7#
        • 2.Rxc6#
      • 1...Sd7
        • 2.Sb7#
        • 2.Sxd7#
      • 1...Se8
        • 2.Sb7#
        • 2.Sd7#
      • 1...d5
        • 2.Sb7#
        • 2.Rxc6#
        • 2.Qe7#
        • 2.Qf8#
      • 1...b4!
  • Keys
    • 1.Rh7!
      • threat
        • 2.Bxd6#
      • 1...bxa5
        • 2.Ba7#
      • 1...dxe5
        • 2.Bd6#
        • 2.Qf8#
      • 1...b4
        • 2.Qxc4#
      • 1...Bd5
        • 2.Qg1#
      • 1...Se4
        • 2.Sd7#
      • 1...Sd5
        • 2.Sd7#
      • 1...Se8
        • 2.Sd7#
      • 1...Sb7
        • 2.Sxb7#
      • 1...Sf7
        • 2.Sb7#
      • 1...d5
        • 2.Qf8#

FEATURES


  • Static
    • TYPE = THREAT
    • CHANGED MATES = 0
    • ADDED MATES = 1
    • REMOVED MATES = 13
  • Sets
    • B(a);OGATE::QAB(I)
    • S(i);N_GUARD::S(D)
    • S(i);N_GUARD::S(D),XS(i)
    • S(i);N_GUARD,XQ(I)::S(D)
    • S(j);N_GUARD::S(C)
    • S(j);N_GUARD::S(C),XS(j)
    • P(b);N_GUARD::S(C)
    • P(d);N_GUARD::QAR1(I),XP(b)
    • P(f);OGATEB,XS(C)::B(G)
    • P(h);OGATEB,XS(D)::QAB(I)
    • P(h);OGATEB::QAB(I)
  • Tries
    • Try
      • S(D);CHECK
      • Vars
        • P(b);XS(D)::S(C)
      • Refutation
        • K(e);N_SPINP(g),S_FLIGHT
    • Try
      • S(D);
      • Vars
        • B(a);OGATE,XS(D)::QAB(I)
        • P(f);OGATEB,XS(C)::B(G)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • P(b);N_GUARD::S(C)
      • Refutation
        • S(i);XQ(I)
    • Try
      • B(G);N_PINP(g),P_PINP(f)
      • Vars
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
      • Refutation
        • P(c);
    • Try
      • B(H);
      • Vars
        • B(a);OGATE,XB(H)::QAB(I)
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
      • Refutation
        • P(c);
    • Try
      • B(H);
      • Vars
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
      • Refutation
        • P(c);
    • Try
      • B(H);
      • Vars
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
        • P(d);N_GUARD::QAR1(I),XP(b)
      • Refutation
        • P(c);
    • Try
      • R(A);
      • Vars
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
      • Refutation
        • P(c);
    • Try
      • R(A);
      • Vars
        • S(i);N_GUARD,XQ(I)::S(D)
        • P(b);N_GUARD,XR(A)::S(C)
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);OGATEB,XS(D)::QAB(I)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • P(h);OGATEB::QAB(I)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(i);N_GUARD::S(D),XS(i)
        • S(j);N_GUARD::S(C)
        • S(j);N_GUARD::S(C),XS(j)
        • P(b);N_GUARD::S(C)
      • Refutation
        • P(c);
    • Try
      • R(A);CHECK
      • Vars
        • B(a);OGATE,SBLOCK,XR(A)::QAB(I)
      • Refutation
        • S(i);XR(A)
    • Try
      • R(E);CHECK,P_SPINR(E),XP(g)
      • Refutation
        • B(a);CHECK,XR(E)
    • Try
      • R(E);N_PINP(g)
      • Threat
        • B(G),XP(h)
      • Vars
        • P(d);N_GUARD::QAR1(I),XP(b)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(j);N_GUARD::S(C),XS(j)
        • S(j);N_GUARD::S(C)
        • P(h);OGATEB::QAB(I)
      • Refutation
        • P(f);XS(C)
    • Try
      • R(E);N_PINP(g)
      • Threat
        • B(G),XP(h)
      • Vars
        • S(j);XR(E)::S(C),XS(j)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • P(h);OGATEB::QAB(I)
      • Refutation
        • S(j);
    • Try
      • R(E);N_PINP(g)
      • Threat
        • B(G),XP(h)
      • Vars
        • P(f);OGATEB,XS(C)::B(G)
        • P(h);XS(D)::B(G)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(j);N_GUARD::S(C),XS(j)
        • S(j);N_GUARD::S(C)
      • Refutation
        • P(h);
    • Try
      • R(E);N_PINP(g)
      • Threat
        • B(G),XP(h)
      • Vars
        • S(j);N_GUARD,XR(E)::S(C)
        • P(f);OGATEB,XS(C)::B(G)
        • B(a);OGATE::QAB(I)
        • S(i);N_GUARD::S(D)
        • S(j);N_GUARD::S(C),XS(j)
        • P(h);OGATEB::QAB(I)
      • Refutation
        • P(d);
    • Try
      • R(E);N_PINP(g)
      • Threat
        • B(G),XP(h)
      • Vars
        • P(f);OGATEB,XS(C)::B(G)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • S(i);N_GUARD::S(D)
        • S(j);N_GUARD::S(C),XS(j)
        • S(j);N_GUARD::S(C)
        • P(h);OGATEB::QAB(I)
      • Refutation
        • B(a);
    • Try
      • Q(I);CHECK
      • Vars
        • S(i);XQ(I)::S(D)
      • Refutation
        • B(a);XQ(I)
    • Try
      • Q(I);
      • Threat
        • QAB1(I),XP(h)
      • Vars
        • S(j);N_GUARD,XQ(I)::S(C)
        • P(f);OGATEB,XS(C)::B(G)
        • P(d);N_GUARD::QAR1(I),XP(b)
        • S(i);N_GUARD::S(D)
        • S(j);N_GUARD::S(C),XS(j)
        • S(j);N_GUARD::S(C)
        • P(h);OGATEB::QAB(I)
      • Refutation
        • B(a);
    • Try
      • Q(I);XS(j)
      • Threat
        • DUALS(2)
      • Vars
        • P(f);OGATEB,XS(C)::B(G)
        • B(a);::S(C)
      • Refutation
        • P(d);
  • Actual
    • R(E);N_PINP(g)
    • Threat
      • B(G),XP(h)
    • Vars
      • P(f);OGATEB,XS(C)::B(G)
      • P(d);N_GUARD::QAR1(I),XP(b)
      • B(a);OGATE::QAB(I)
      • S(i);N_GUARD::S(D)
      • S(j);N_GUARD::S(C),XS(j)
      • S(j);N_GUARD::S(C)
      • P(h);OGATEB::QAB(I)


Developed and maintained by Brian Stephenson.
Implemented with HTML5, MySQL, Perl (with, inter alia, CGI::Simple, HTML::Template & XML::LibXML) & CSS/Javascript (jQuery, Bootstrap & DataTables).