Test position

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

zd3nik
Posts: 193
Joined: Wed Mar 11, 2015 3:34 am
Location: United States

Test position

Post by zd3nik »

[d] 1k2r2r/pbb2p2/2qn2p1/8/PP6/2P2N2/1Q2NPB1/R4RK1 b - - bm Qxf3; c0 "M7"; id "CCC-I No.10";

All my engines have trouble with this position, but most other engines I plug it into solve it without breaking a sweat. Usually right at the 11 ply mark. Even way passed the 11 ply mark my engines still don't see the mating line.

It seems likely the quiet Ne4 move in the middle of the mating line is the problem. All the other moves are captures or checks so they don't get reduced by LMR and qsearch should also consider them. But even when I turn LMR off it I have the problem.

If your engine, or an engine you know well, can solve this position quickly do you know why? Inversely, if your engine has trouble with this position too, do you know why?
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Test position

Post by MikeB »

zd3nik wrote:[d] 1k2r2r/pbb2p2/2qn2p1/8/PP6/2P2N2/1Q2NPB1/R4RK1 b - - bm Qxf3; c0 "M7"; id "CCC-I No.10";

All my engines have trouble with this position, but most other engines I plug it into solve it without breaking a sweat. Usually right at the 11 ply mark. Even way passed the 11 ply mark my engines still don't see the mating line.

It seems likely the quiet Ne4 move in the middle of the mating line is the problem. All the other moves are captures or checks so they don't get reduced by LMR and qsearch should also consider them. But even when I turn LMR off it I have the problem.

If your engine, or an engine you know well, can solve this position quickly do you know why? Inversely, if your engine has trouble with this position too, do you know why?


I'm pretty sure it is related to null move. I bet your engine finds out fast with our having a null move. You might to add some conditions as to when or when not to use null move and for how long.

Code: Select all

        time surplus   0.00  time limit 10.00 (10.00)
        depth     time       score   variation (1)
         16->   1.33/10.00   -7.70   1. ... Nc4 2. Ned4 Bh2+ 3. Kh1 Be5+ 4. Kg1
                                     Bxd4 5. Qc1 Qxf3 6. Bxf3 Bxf3 7. Qf4+ Ne5
                                     8. Qh2 Rxh2 9. Kxh2 Bxc3 10. Rab1
         17     1.87/10.00   -7.47   1. ... Nc4 2. Ned4 Bh2+ 3. Kh1 Be5+ 4. Kg1
                                     Bxd4 5. Qc1 Qxf3 6. Bxf3 Bxf3 7. Qf4+ Ne5
                                     8. Qh2 Rxh2 9. Kxh2 Bxc3 10. Rab1 Rh8+
                                     11. Kg3
         17->   2.66/10.00   -7.47   1. ... Nc4 2. Ned4 Bh2+ 3. Kh1 Be5+ 4. Kg1
                                     Bxd4 5. Qc1 Qxf3 6. Bxf3 Bxf3 7. Qf4+ Ne5
                                     8. Qh2 Rxh2 9. Kxh2 Bxc3 10. Rab1 Rh8+
                                     11. Kg3
         18     3.43/10.00   -7.41   1. ... Nc4 2. Ned4 Bh2+ 3. Kh1 Be5+ 4. Kg1
                                     Bxd4 5. Qc1 Qxf3 6. Bxf3 Bxf3 7. Qf4+ Ne5
                                     8. Qh2 Rxh2 9. Kxh2 Bxc3 10. Rab1 Rh8+
                                     11. Kg3 f5
         18     5.99/10.00  -Mat07   1. ... Qxf3 2. Bxf3 Bxf3 3. Ng3 Ne4 4. Qe2
                                     Rh1+ 5. Nxh1 Bh2+ 6. Kxh2 Rh8+ 7. Kg1
                                     Rxh1#
         18->   8.42/10.00  -Mat07   1. ... Qxf3 2. Bxf3 Bxf3 3. Ng3 Ne4 4. Qe2
                                     Rh1+ 5. Nxh1 Bh2+ 6. Kxh2 Rh8+ 7. Kg1
                                     Rxh1#
        time=8.42(100%)  nodes=60226405(60.2M)  fh1=90%  pred=0  nps=7.2M
        checks=1.9M  qchecks=3.8M  fp=34.6M  mcp=553.0K  reversible=0
        LMReductions:  1/331.1K  2/210.4K  3/173.9K  4/132.8K  5/11.1K  6/104
        null-move (R):  1/1.1M  2/3.6K
        splits=0  aborts=0  joins=0  data=0%  tbhits=0
adjusting null move

Code: Select all

White(1): pon off
pondering disabled.
White(1): st 10
search time set to 10.00.
White(1):  1k2r2r/pbb2p2/2qn2p1/8/PP6/2P2N2/1Q2NPB1/R4RK1 b - - 
Black(1): go
        time surplus   0.00  time limit 10.00 (10.00)
        depth     time       score   variation (1)
         16->   1.33/10.00  -Mat07   1. ... Qxf3 2. Bxf3 Bxf3 3. Ng3 Ne4 4. Qe2
                                     Rh1+ 5. Nxh1 Bh2+ 6. Kxh2 Rh8+ 7. Kg1
                                     Rxh1#
         17     1.35/10.00  -Mat07   1. ... Qxf3 2. Bxf3 Bxf3 3. Ng3 Ne4 4. Qe2
                                     Rh1+ 5. Nxh1 Bh2+ 6. Kxh2 Rh8+ 7. Kg1
                                     Rxh1#
         17->   1.36/10.00  -Mat07   1. ... Qxf3 2. Bxf3 Bxf3 3. Ng3 Ne4 4. Qe2
                                     Rh1+ 5. Nxh1 Bh2+ 6. Kxh2 Rh8+ 7. Kg1
                                     Rxh1#
        time=1.36(100%)  nodes=9319967(9.3M)  fh1=94%  pred=0  nps=6.9M
        checks=412.4K  qchecks=1.1M  fp=4.1M  mcp=45.7K  reversible=0
        LMReductions:  1/42.6K  2/30.3K  3/26.7K  4/17.2K  5/2.5K  6/28
        null-move (R):  1/7.4K  2/84  3/301.9K  4/13.4K  5/179
        splits=0  aborts=0  joins=0  data=0%  tbhits=0
elcabesa
Posts: 855
Joined: Sun May 23, 2010 1:32 pm

Re: Test position

Post by elcabesa »

Vajolet discover the mate in 7 at depth 22
Joost Buijs
Posts: 1564
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: Test position

Post by Joost Buijs »

elcabesa wrote:Vajolet discover the mate in 7 at depth 22
Nightmare sees the mate at depth 15.
The SMP barely starts to work at these depths.

Code: Select all

info depth 1 score cp 208 time 0 nodes 406 nps 406 tbhits 0 pv d6e4
info depth 2 score cp 193 time 1 nodes 690 nps 690000 tbhits 0 pv d6c4 b2a2
info depth 3 score cp 245 time 2 nodes 1825 nps 912500 tbhits 0 pv d6e4 e2g3 e4g3 f2g3 c7g3
info depth 4 score cp 174 time 5 nodes 4430 nps 886000 tbhits 0 pv d6e4 a1d1 c6a4 c3c4
info depth 5 score cp 197 time 9 nodes 10348 nps 1149777 tbhits 0 pv d6e4 a1d1 h8h5 e2g3 e4g3 f2g3 c7g3
info depth 6 score cp 420 time 29 nodes 63501 nps 2189689 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b4b5
info depth 7 score cp 420 time 32 nodes 68282 nps 2133812 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2b3 c4d2
info depth 8 score cp 420 time 36 nodes 74398 nps 2066611 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2b3 c4d2 b3f7
info depth 9 score cp 435 time 41 nodes 91568 nps 2233365 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2b3 c4d2 b3f7d4e5
info depth 10 score cp 471 time 53 nodes 134912 nps 2545509 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2b3 c4d2 b3f7 d4e5 f3h4
info depth 11 score cp 698 time 108 nodes 480693 nps 4450861 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c6f3 g2f3 b7f3 c1f4 c4e5
info depth 12 score cp 698 time 123 nodes 575306 nps 4677284 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c6f3 g2f3 b7f3 c1f4 c4e5 f4h2
info depth 13 score cp 698 time 180 nodes 1098936 nps 6105200 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c6f3 g2f3 b7f3 c1f4 c4e5 f4h2 h8h2
info depth 14 score cp 698 time 209 nodes 1380630 nps 6605885 tbhits 0 pv d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c6f3 g2f3 b7f3 c1f4 c4e5 f4h2 h8h2 g1h2
info depth 15 score mate 7 time 352 nodes 3082171 nps 8756167 tbhits 0 pv c6f3 g2f3 b7f3 e2g3 d6e4 b2e2 h8h1 g3h1 c7h2 g1h2 e8h8 h2g1 h8h1
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: Test position

Post by Steve Maughan »

Maverick 1.0 solves at 11 ply

[D]1k2r2r/pbb2p2/2qn2p1/8/PP6/2P2N2/1Q2NPB1/R4RK1 b - -

Engine: Maverick 1.0 x64 (1024 MB)
by Steve Maughan

10/24 0:00 -4.30 1...Nc4 2.Ned4 Bh2+ 3.Kh1 Be5+ 4.Kg1 Bxd4
5.Qc1 Be5 6.Re1 Bh2+ 7.Kf1 Re4 (229.445)

11/37 0:00 -4.78 1...Nc4 2.Ned4 Bh2+ 3.Kh1 Be5+ 4.Kg1 Bxd4
5.Qc1 Be5 6.Qg5 Qd6 7.Qg4 Bf4 (652.268)

11/37 0:00 -4.87++ 1...Qxf3 (924.195)

11/37 0:00 -M7 1...Qxf3 2.Bxf3 Bxf3 3.Ng3 Ne4 4.Qe2 Rh1+
5.Nxh1 Bh2+ 6.Kxh2 Rh8+ 7.Kg1 Rxh1+ (1.101.028)

12/37 0:00 -M7 1...Qxf3 2.Bxf3 Bxf3 3.Ng3 Ne4 4.Qe2 Rh1+
5.Nxh1 Bh2+ 6.Kxh2 Rh8+ 7.Kg1 Rxh1+ (1.255.530)

13/37 0:00 -M7 1...Qxf3 2.Bxf3 Bxf3 3.Ng3 Ne4 4.Qe2 Rh1+
5.Nxh1 Bh2+ 6.Kxh2 Rh8+ 7.Kg1 Rxh1+ (1.787.859)

Looking at the PV, I think it's to do with checks in first ply of the qsearch, which are extended when there is only one reply
http://www.chessprogramming.net - Maverick Chess Engine
User avatar
RolandoFurioso
Posts: 55
Joined: Sat Feb 22, 2014 7:29 pm
Location: Frankfurt

Re: Test position

Post by RolandoFurioso »

zd3nik wrote:[d] 1k2r2r/pbb2p2/2qn2p1/8/PP6/2P2N2/1Q2NPB1/R4RK1 b - - bm Qxf3; c0 "M7"; id "CCC-I No.10";

All my engines have trouble with this position, but most other engines I plug it into solve it without breaking a sweat. Usually right at the 11 ply mark. Even way passed the 11 ply mark my engines still don't see the mating line.

It seems likely the quiet Ne4 move in the middle of the mating line is the problem. All the other moves are captures or checks so they don't get reduced by LMR and qsearch should also consider them. But even when I turn LMR off it I have the problem.

If your engine, or an engine you know well, can solve this position quickly do you know why? Inversely, if your engine has trouble with this position too, do you know why?
Fischerle 0.9.61 64-bit with 256MB TT finds M7 at nominal depth 10, visiting 523k nodes. With nullmove pruning disabled, M7 is still found at depth 10, while visiting considerably more nodes (2686k).

L1: 555 ♛c6-c4
L2: 318 ♛c6-e4 ♘e2-d4
L3: 603 ♛c6-e4 ♘e2-g3 ♛e4-c4
L4: 843
L4: 4357 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-f4 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6
L5: 4327 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-d6 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6
L6: 4357 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-f4 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6
L7: 4357 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-f4 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6
L8: 4357 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-f4 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6
L9: 4321 ♞d6-c4 ♘e2-d4 ♝c7-h2 ♔g1-h1 ♝h2-f4 ♔h1-g1 ♞c4x♕b2 ♘d4x♛c6 ♝b7x♘c6 ♙a4-a5
L10: 4561
L10: 999987 ♛c6x♘f3 ♗g2x♛f3 ♝b7x♗f3 ♘e2-g3 ♞d6-e4 ♕b2-e2 ♜h8-h1 ♘g3x♜h1 ♝c7-h2 ♔g1x♝h2 ♜e8-h8 ♔h2-g1 ♜h8x♘h1 MATT
L11: 999987 ♛c6x♘f3 ♗g2x♛f3 ♝b7x♗f3 ♘e2-g3 ♞d6-e4 ♕b2-e2 ♜h8-h1 ♘g3x♜h1 ♝c7-h2 ♔g1x♝h2 ♜e8-h8 ♔h2-g1 ♜h8x♘h1 MATT
L12: 999987 ♛c6x♘f3 ♗g2x♛f3 ♝b7x♗f3 ♘e2-g3 ♞d6-e4 ♕b2-e2 ♜h8-h1 ♘g3x♜h1 ♝c7-h2 ♔g1x♝h2 ♜e8-h8 ♔h2-g1 ♜h8x♘h1 MATT
L13: 999987 ♛c6x♘f3 ♗g2x♛f3 ♝b7x♗f3 ♘e2-g3 ♞d6-e4 ♕b2-e2 ♜h8-h1 ♘g3x♜h1 ♝c7-h2 ♔g1x♝h2 ♜e8-h8 ♔h2-g1 ♜h8x♘h1 MATT
HV: 999987 ♛c6x♘f3 ♗g2x♛f3 ♝b7x♗f3 ♘e2-g3 ♞d6-e4 ♕b2-e2 ♜h8-h1 ♘g3x♜h1 ♝c7-h2 ♔g1x♝h2 ♜e8-h8 ♔h2-g1 ♜h8x♘h1 MATT
Last edited by RolandoFurioso on Mon Jun 01, 2015 5:01 pm, edited 1 time in total.
F. Bluemers
Posts: 868
Joined: Thu Mar 09, 2006 11:21 pm
Location: Nederland

Re: Test position

Post by F. Bluemers »

Dirty:

Code: Select all

1 -13 0 3 a5
1 65 0 5 f5
1 110 0 10 g5
1 211 0 14 Nc4
1 211 0 66 Nc4
2 227 0 182 Nc4 Qc2
2 227 0 321 Nc4 Qc2
3 267 0 539 Nc4 Qc2 Bh2+ Kh1
3 267 1 749 Nc4 Qc2 Bh2+ Kh1
4 571 1 3686 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1
4 571 1 3899 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1
5 571 1 4805 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4
5 571 1 4969 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4
6 585 3 6842 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 b5
6 585 3 10278 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 b5
7 593 3 14518 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5
7 593 4 25716 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5
8 563 4 30907 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1
8 563 6 56988 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1
9 559 7 73985 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1 Rd8
9 559 9 108431 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1 Rd8
10 561 12 152776 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1 Rd8 a5
10 561 17 250652 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Re1 Rd8 a5
11 609 21 350929 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Nh4 Bh2+ Kh1 Qd6 Bxb7
11 609 34 613666 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Be5 Nh4 Bh2+ Kh1 Qd6 Bxb7
12 622 45 829568 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc2 Ne5 Qd1 Bxc3 Rc1 Ng4 Qd3
12 622 70 1398599 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc2 Ne5 Qd1 Bxc3 Rc1 Ng4 Qd3
13 852 95 1947868 Nc4 Ned4 Bh2+ Kh1 Be5+ Kg1 Bxd4 Qc1 Qxf3 Bxf3 Bxf3 Qf4+ Ne5 Qh2 Rxh2 Kxh2 Rh8+ Kg3
13 31987 146 3336449 Qxf3 Bxf3 Bxf3 Ng3 Ne4 Qe2 Rh1+ Nxh1 Bh2+ Kxh2 Rh8+ Kg1 Rxh1#
Maarten Claessens
Posts: 106
Joined: Mon May 12, 2014 10:08 am
Location: Near Nijmegen

Re: Test position

Post by Maarten Claessens »

WaDuuttie:

Code: Select all

ply      nodes  score  pv
  1         58    134  d6c4
  2        381    106  d6c4 b2c2
  3        747    182  d6c4 b2c2 c7h2 g1h1
  4       1322    236  d6c4 b2c2 c7h2 g1h1 c6d6
  5       2368    216  d6c4 b2c2 c7h2 g1h1 c6c7 e2d4
  6       3342    264  d6c4!
  6       4991    296  d6c4 b2c2 c7h2 g1h1 c6c7 f1d1 b7e4
  7       9198    298  d6c4 b2c2 c7h2 g1h1 c6c7 f1d1 b7e4 c2b3
  8      13880    310  d6c4!
  8      18029    410  d6c4!
  8      28782    520  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c3d4
  9      43624    532  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       d4c3
 10      70560    560  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       g6g5 f4d4
 11     115989    570  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       g6g5 f4g3 d4c3
 12     218745    560  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       g6g5 f4g3 d4c3 a1c1
 13     323245    600  d6c4!
 13     489122    700  d6c4!
 13     696740    736  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       c6c7 f3e5 d4e5 f4g4 e5h2 g1h1 g6g5 g2b7
 14    1123472    698  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       c6c7 f3e5 d4e5 f4g4 e5c3 g4g3 c7g3
 15    1396169    746  d6c4!
 15    1849634    770  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       c6c7 f3e5 d4e5 f4g4 e5c3 f1c1 c7h2 g1f1 c3a1 c1a1
 16    2791877    818  d6c4!
 16    4146137    858  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       c6c7 f3e5 d4e5 f4g4 e5c3 g2h3 c3a1 f1a1 b7d5
 17    5437119    810  d6c4?
 17    6116121    878  d6c4 e2d4 c7h2 g1h1 h2e5 h1g1 e5d4 b2c1 c4e5 c1f4
                       c6c7 f3h4 e5f3 f4f3 b7f3 h4f3 d4c3 a1b1 c7c4 f1c1
                       c4d3
 18    8516038    926  c6f3!
 18    8530144   1026  c6f3!
 18    8595571   1326  c6f3!
 18   10679260    +M7  c6f3 g2f3 b7f3 e2g3 d6e4 b2e2 h8h1 g3h1 c7h2 g1h2
                       e8h8 h2g1 h8h1
Nothing is unstable (Lawrence Krauss)
User avatar
Bloodbane
Posts: 154
Joined: Thu Oct 03, 2013 4:17 pm

Re: Test position

Post by Bloodbane »

Hakkapeliitta finds the mate at depth 17. This rather large number is explained by the fact that Hakkapeliitta has no extensions.

Code: Select all

info depth 17 seldepth 16 score mate 7 time 469 nodes 898191 nps 1911000 tbhits 0 pv c6f3 g2f3 b7f3 e2g3 d6e4 b2e2 h8h1 g3h1 c7h2 g1h2 e8h8 h2g1
Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics.
https://github.com/mAarnos
User avatar
RolandoFurioso
Posts: 55
Joined: Sat Feb 22, 2014 7:29 pm
Location: Frankfurt

Re: Test position

Post by RolandoFurioso »

PS: I have just re-run Fischerle 0.9.61 64-Bit on this position with all extensions and reductions switched of. Even then and somewhat surprising, it founds mate fairly quickly, i.e. in a couple of seconds at nominal depth 12. Thus, it looks like whether the position isn't really malign in a general sense. No idea why your engines have problems with this position - maybe indeed a rather deep issue with your particular blend of restrictions and extensions.