MDaytek commited on
Commit
af2d2d0
·
verified ·
1 Parent(s): c55753a

Chess Challenge submission by MDaytek

Browse files
Files changed (8) hide show
  1. README.md +31 -26
  2. config.json +18 -19
  3. model.py +48 -190
  4. model.safetensors +2 -2
  5. pytorch_model.bin +3 -0
  6. tokenizer.py +42 -171
  7. tokenizer_config.json +13 -50
  8. vocab.json +1797 -1076
README.md CHANGED
@@ -1,26 +1,31 @@
1
- ---
2
- library_name: transformers
3
- tags:
4
- - chess
5
- - llm-course
6
- - chess-challenge
7
- license: mit
8
- ---
9
-
10
- # chess-submission-v21-MDaytek
11
-
12
- Chess model submitted to the LLM Course Chess Challenge.
13
-
14
- ## Submission Info
15
-
16
- - **Submitted by**: [MDaytek](https://huggingface.co/MDaytek)
17
- - **Parameters**: 880,544
18
- - **Organization**: LLM-course
19
-
20
- ## Model Details
21
-
22
- - **Architecture**: Chess Transformer (GPT-style)
23
- - **Vocab size**: 1075
24
- - **Embedding dim**: 112
25
- - **Layers**: 5
26
- - **Heads**: 8
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ tags:
4
+ - chess
5
+ - llm-course
6
+ - chess-challenge
7
+ license: mit
8
+ ---
9
+
10
+ # chess-submission-v21-MDaytek
11
+
12
+ Chess model submitted to the LLM Course Chess Challenge.
13
+
14
+ ## Submission Info
15
+
16
+ - **Submitted by**: [MDaytek](https://huggingface.co/MDaytek)
17
+ - **Parameters**: 1,040,640
18
+ - **Organization**: LLM-course
19
+
20
+ ## Usage
21
+
22
+ ```python
23
+ from transformers import AutoModelForCausalLM, AutoTokenizer
24
+
25
+ model = AutoModelForCausalLM.from_pretrained("LLM-course/chess-submission-v21-MDaytek", trust_remote_code=True)
26
+ tokenizer = AutoTokenizer.from_pretrained("LLM-course/chess-submission-v21-MDaytek", trust_remote_code=True)
27
+ ```
28
+
29
+ ## Evaluation
30
+
31
+ This model is evaluated at the [Chess Challenge Arena](https://huggingface.co/spaces/LLM-course/Chess1MChallenge).
config.json CHANGED
@@ -1,19 +1,18 @@
1
- {
2
- "architectures": [
3
- "ChessForCausalLM"
4
- ],
5
- "auto_map": {
6
- "AutoConfig": "model.ChessConfig",
7
- "AutoModelForCausalLM": "model.ChessForCausalLM"
8
- },
9
- "dropout": 0.1,
10
- "dtype": "float32",
11
- "model_type": "chess_gpt_rope",
12
- "n_ctx": 256,
13
- "n_embd": 112,
14
- "n_head": 8,
15
- "n_layer": 5,
16
- "n_positions": 256,
17
- "transformers_version": "4.57.6",
18
- "vocab_size": 1075
19
- }
 
1
+ {
2
+ "architectures": [
3
+ "ChessForCausalLM"
4
+ ],
5
+ "dropout": 0.1,
6
+ "dtype": "float32",
7
+ "model_type": "chess_gpt",
8
+ "n_embd": 96,
9
+ "n_head": 8,
10
+ "n_layer": 6,
11
+ "n_positions": 256,
12
+ "transformers_version": "4.57.6",
13
+ "vocab_size": 1796,
14
+ "auto_map": {
15
+ "AutoConfig": "model.ChessConfig",
16
+ "AutoModelForCausalLM": "model.ChessForCausalLM"
17
+ }
18
+ }
 
model.py CHANGED
@@ -1,190 +1,48 @@
1
- import math
2
- import torch
3
- import torch.nn as nn
4
- import torch.nn.functional as F
5
- from transformers import PreTrainedModel, PretrainedConfig
6
- from transformers.modeling_outputs import CausalLMOutputWithPast
7
-
8
- class ChessConfig(PretrainedConfig):
9
- model_type = "chess_gpt"
10
-
11
- def __init__(
12
- self,
13
- vocab_size=477,
14
- n_positions=256,
15
- n_embd=114,
16
- n_layer=6,
17
- n_head=6,
18
- dropout=0.1,
19
- use_sinusoidal_pos=True,
20
- **kwargs
21
- ):
22
- super().__init__(**kwargs)
23
- self.vocab_size = vocab_size
24
- self.n_positions = n_positions
25
- self.n_ctx = n_positions
26
- self.n_embd = n_embd
27
- self.n_layer = n_layer
28
- self.n_head = n_head
29
- self.dropout = dropout
30
- self.use_sinusoidal_pos = use_sinusoidal_pos
31
- self.tie_word_embeddings = True
32
-
33
- def sinusoidal_positional_encoding(n_positions, n_embd):
34
- """Crée une positional encoding sinusoïdale (0 paramètres)"""
35
- position = torch.arange(0, n_positions, dtype=torch.float).unsqueeze(1)
36
- div_term = torch.exp(
37
- torch.arange(0, n_embd, 2, dtype=torch.float) * (-math.log(10000.0) / n_embd)
38
- )
39
- pe = torch.zeros(n_positions, n_embd)
40
- pe[:, 0::2] = torch.sin(position * div_term)
41
- if n_embd % 2 == 0:
42
- pe[:, 1::2] = torch.cos(position * div_term)
43
- else:
44
- pe[:, 1::2] = torch.cos(position * div_term[:-1])
45
- return pe
46
-
47
- class CausalSelfAttention(nn.Module):
48
- def __init__(self, config):
49
- super().__init__()
50
- assert config.n_embd % config.n_head == 0
51
-
52
- self.c_attn = nn.Linear(config.n_embd, 3 * config.n_embd)
53
- self.c_proj = nn.Linear(config.n_embd, config.n_embd)
54
-
55
- self.attn_dropout = nn.Dropout(config.dropout)
56
- self.resid_dropout = nn.Dropout(config.dropout)
57
-
58
- self.n_head = config.n_head
59
- self.n_embd = config.n_embd
60
-
61
- def forward(self, x):
62
- B, T, C = x.size()
63
-
64
- q, k, v = self.c_attn(x).split(self.n_embd, dim=2)
65
-
66
- k = k.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
67
- q = q.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
68
- v = v.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
69
-
70
- att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1)))
71
-
72
- mask = torch.triu(torch.ones(T, T, device=x.device, dtype=torch.bool), diagonal=1)
73
- att = att.masked_fill(mask, -1e9)
74
-
75
- att = F.softmax(att, dim=-1)
76
- att = self.attn_dropout(att)
77
-
78
- y = att @ v
79
- y = y.transpose(1, 2).contiguous().view(B, T, C)
80
-
81
- y = self.resid_dropout(self.c_proj(y))
82
- return y
83
-
84
- class GPTBlock(nn.Module):
85
- def __init__(self, config):
86
- super().__init__()
87
- self.ln_1 = nn.LayerNorm(config.n_embd)
88
- self.attn = CausalSelfAttention(config)
89
- self.ln_2 = nn.LayerNorm(config.n_embd)
90
- self.mlp = nn.Sequential(
91
- nn.Linear(config.n_embd, 4 * config.n_embd),
92
- nn.GELU(),
93
- nn.Linear(4 * config.n_embd, config.n_embd),
94
- nn.Dropout(config.dropout)
95
- )
96
-
97
- def forward(self, x):
98
- x = x + self.attn(self.ln_1(x))
99
- x = x + self.mlp(self.ln_2(x))
100
- return x
101
-
102
- class ChessForCausalLM(PreTrainedModel):
103
- config_class = ChessConfig
104
- _no_split_modules = ["GPTBlock"]
105
- _tied_weights_keys = ["lm_head.weight"]
106
-
107
- def __init__(self, config):
108
- super().__init__(config)
109
-
110
- self.token_emb = nn.Embedding(config.vocab_size, config.n_embd)
111
-
112
- if config.use_sinusoidal_pos:
113
- self.register_buffer(
114
- "pos_emb",
115
- sinusoidal_positional_encoding(config.n_positions, config.n_embd)
116
- )
117
- self.use_learned_pos = False
118
- else:
119
- self.pos_emb = nn.Embedding(config.n_positions, config.n_embd)
120
- self.use_learned_pos = True
121
-
122
- self.dropout = nn.Dropout(config.dropout)
123
-
124
- self.blocks = nn.ModuleList([GPTBlock(config) for _ in range(config.n_layer)])
125
-
126
- self.ln_f = nn.LayerNorm(config.n_embd)
127
- self.lm_head = nn.Linear(config.n_embd, config.vocab_size, bias=False)
128
-
129
- self.apply(self._init_weights)
130
- self.post_init()
131
-
132
- def _init_weights(self, module):
133
- if isinstance(module, nn.Linear):
134
- torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
135
- if module.bias is not None:
136
- torch.nn.init.zeros_(module.bias)
137
- elif isinstance(module, nn.Embedding):
138
- torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
139
- elif isinstance(module, nn.LayerNorm):
140
- torch.nn.init.zeros_(module.bias)
141
- torch.nn.init.ones_(module.weight)
142
-
143
- def get_input_embeddings(self):
144
- return self.token_emb
145
-
146
- def set_input_embeddings(self, value):
147
- self.token_emb = value
148
-
149
- def get_output_embeddings(self):
150
- return self.lm_head
151
-
152
- def set_output_embeddings(self, new_embeddings):
153
- self.lm_head = new_embeddings
154
-
155
- def tie_weights(self):
156
- if self.config.tie_word_embeddings:
157
- self._tie_or_clone_weights(self.lm_head, self.token_emb)
158
-
159
- def forward(self, input_ids, labels=None, **kwargs):
160
- B, T = input_ids.shape
161
- device = input_ids.device
162
-
163
- tok_emb = self.token_emb(input_ids)
164
-
165
- if self.use_learned_pos:
166
- pos = torch.arange(0, T, dtype=torch.long, device=device)
167
- pos_emb = self.pos_emb(pos)
168
- else:
169
- pos_emb = self.pos_emb[:T, :].to(device)
170
-
171
- x = self.dropout(tok_emb + pos_emb)
172
-
173
- for block in self.blocks:
174
- x = block(x)
175
-
176
- x = self.ln_f(x)
177
- logits = self.lm_head(x)
178
-
179
- loss = None
180
- if labels is not None:
181
- shift_logits = logits[..., :-1, :].contiguous()
182
- shift_labels = labels[..., 1:].contiguous()
183
-
184
- loss_fct = nn.CrossEntropyLoss(ignore_index=0)
185
- loss = loss_fct(
186
- shift_logits.view(-1, shift_logits.size(-1)),
187
- shift_labels.view(-1)
188
- )
189
-
190
- return CausalLMOutputWithPast(loss=loss, logits=logits)
 
1
+ import math, torch
2
+ import torch.nn as nn
3
+ import torch.nn.functional as F
4
+ from transformers import PreTrainedModel, PretrainedConfig
5
+ from transformers.modeling_outputs import CausalLMOutputWithPast
6
+
7
+ class ChessConfig(PretrainedConfig):
8
+ model_type = "chess_gpt"
9
+ def __init__(self, vocab_size=1804, n_positions=256, n_embd=96, n_layer=6, n_head=8, dropout=0.1, **kwargs):
10
+ super().__init__(**kwargs)
11
+ self.vocab_size = vocab_size
12
+ self.n_positions = n_positions
13
+ self.n_embd = n_embd
14
+ self.n_layer = n_layer
15
+ self.n_head = n_head
16
+ self.dropout = dropout
17
+ self.tie_word_embeddings = True
18
+
19
+ class ChessForCausalLM(PreTrainedModel):
20
+ config_class = ChessConfig
21
+ def __init__(self, config):
22
+ super().__init__(config)
23
+ self.token_emb = nn.Embedding(config.vocab_size, config.n_embd)
24
+ self.pos_emb = nn.Embedding(config.n_positions, config.n_embd)
25
+ self.dropout = nn.Dropout(config.dropout)
26
+ self.blocks = nn.ModuleList([nn.TransformerEncoderLayer(
27
+ d_model=config.n_embd, nhead=config.n_head,
28
+ dim_feedforward=4*config.n_embd, dropout=config.dropout,
29
+ batch_first=True) for _ in range(config.n_layer)])
30
+ self.ln_f = nn.LayerNorm(config.n_embd)
31
+ self.lm_head = nn.Linear(config.n_embd, config.vocab_size, bias=False)
32
+ self.post_init()
33
+
34
+ def forward(self, input_ids, labels=None, **kwargs):
35
+ B, T = input_ids.shape
36
+ pos = torch.arange(0, T, dtype=torch.long, device=input_ids.device).unsqueeze(0)
37
+ x = self.token_emb(input_ids) + self.pos_emb(pos)
38
+ x = self.dropout(x)
39
+ mask = nn.Transformer.generate_square_subsequent_mask(T, device=input_ids.device)
40
+ for block in self.blocks:
41
+ x = block(x, src_mask=mask, is_causal=True)
42
+ x = self.ln_f(x)
43
+ logits = self.lm_head(x)
44
+ loss = None
45
+ if labels is not None:
46
+ loss_fct = nn.CrossEntropyLoss(ignore_index=-100)
47
+ loss = loss_fct(logits.view(-1, logits.size(-1)), labels.view(-1))
48
+ return CausalLMOutputWithPast(loss=loss, logits=logits)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:5bbb597fc11d260a8c1bfb522838e8a4152a2a98e6aad64f1d77c0af6c2cc6bd
3
- size 3672008
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:971af605f1f266eba24bf507782307628735cbaf1a7b21d12e087d5b51faa6e2
3
+ size 4169488
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf70ce190a12abf05b43834e09a83188ee82d7d4dff636aa14a866e7ba097661
3
+ size 4189781
tokenizer.py CHANGED
@@ -1,171 +1,42 @@
1
- import json
2
- import os
3
- import torch
4
-
5
- class BatchEncoding(dict):
6
- """
7
- Wrapper class for tokenizer outputs that supports .to(device)
8
- Compatible with HuggingFace Transformers
9
- """
10
- def to(self, device):
11
- """Move all tensors to device"""
12
- for key, value in self.items():
13
- if isinstance(value, torch.Tensor):
14
- self[key] = value.to(device)
15
- return self
16
-
17
- def __getattr__(self, item):
18
- try:
19
- return self[item]
20
- except KeyError:
21
- raise AttributeError(f"'{type(self).__name__}' object has no attribute '{item}'")
22
-
23
- class ChessTokenizer:
24
- """Tokenizer pour le modèle Chess - Compatible HuggingFace"""
25
-
26
- def __init__(self, vocab):
27
- self.vocab = vocab
28
- self.id_to_token = {v: k for k, v in vocab.items()}
29
-
30
- # Token IDs
31
- self.pad_token_id = vocab["[PAD]"]
32
- self.bos_token_id = vocab["[BOS]"]
33
- self.eos_token_id = vocab["[EOS]"]
34
- self.unk_token_id = vocab["[UNK]"]
35
-
36
- # Token strings (HuggingFace attend ces attributs)
37
- self.pad_token = "[PAD]"
38
- self.bos_token = "[BOS]"
39
- self.eos_token = "[EOS]"
40
- self.unk_token = "[UNK]"
41
-
42
- # Autres attributs HF
43
- self.model_max_length = 256
44
-
45
- @property
46
- def vocab_size(self):
47
- return len(self.vocab)
48
-
49
- def _convert_token_to_id(self, token):
50
- return self.vocab.get(token, self.unk_token_id)
51
-
52
- def _convert_id_to_token(self, id):
53
- return self.id_to_token.get(id, self.unk_token)
54
-
55
- def convert_tokens_to_ids(self, tokens):
56
- if isinstance(tokens, str):
57
- return self._convert_token_to_id(tokens)
58
- return [self._convert_token_to_id(t) for t in tokens]
59
-
60
- def convert_ids_to_tokens(self, ids):
61
- if isinstance(ids, int):
62
- return self._convert_id_to_token(ids)
63
- return [self._convert_id_to_token(i) for i in ids]
64
-
65
- def encode(self, text, add_special_tokens=True, return_tensors=None):
66
- """Encode text to token IDs"""
67
- tokens = text.split()
68
- ids = []
69
-
70
- if add_special_tokens:
71
- ids.append(self.bos_token_id)
72
-
73
- for token in tokens:
74
- ids.append(self._convert_token_to_id(token))
75
-
76
- if add_special_tokens:
77
- ids.append(self.eos_token_id)
78
-
79
- if return_tensors == "pt":
80
- return BatchEncoding({"input_ids": torch.tensor([ids], dtype=torch.long)})
81
-
82
- return ids
83
-
84
- def __call__(self, text, return_tensors=None, padding=False, truncation=False, max_length=None, **kwargs):
85
- """
86
- Make tokenizer callable (HuggingFace compatibility).
87
- Returns dict with input_ids that can be moved to device.
88
- """
89
- if isinstance(text, str):
90
- text = [text]
91
-
92
- all_ids = []
93
- for t in text:
94
- ids = self.encode(t, add_special_tokens=True, return_tensors=None)
95
- all_ids.append(ids)
96
-
97
- # Padding
98
- if padding:
99
- max_len = max(len(ids) for ids in all_ids)
100
- if max_length:
101
- max_len = min(max_len, max_length)
102
-
103
- all_ids = [
104
- ids[:max_len] + [self.pad_token_id] * (max_len - len(ids[:max_len]))
105
- for ids in all_ids
106
- ]
107
-
108
- if return_tensors == "pt":
109
- return BatchEncoding({"input_ids": torch.tensor(all_ids, dtype=torch.long)})
110
-
111
- return BatchEncoding({"input_ids": all_ids})
112
-
113
- def decode(self, ids, skip_special_tokens=True):
114
- """Decode token IDs to text"""
115
- if isinstance(ids, torch.Tensor):
116
- ids = ids.tolist()
117
-
118
- tokens = []
119
- for id in ids:
120
- if skip_special_tokens and id in [
121
- self.pad_token_id,
122
- self.bos_token_id,
123
- self.eos_token_id
124
- ]:
125
- continue
126
- tokens.append(self._convert_id_to_token(id))
127
-
128
- return " ".join(tokens)
129
-
130
- def save_pretrained(self, path):
131
- os.makedirs(path, exist_ok=True)
132
- with open(os.path.join(path, "vocab.json"), "w") as f:
133
- json.dump(self.vocab, f, indent=2)
134
-
135
- @classmethod
136
- def from_pretrained(cls, pretrained_model_name_or_path, **kwargs):
137
- """
138
- Load tokenizer from path or HuggingFace repo.
139
-
140
- Args:
141
- pretrained_model_name_or_path: Local path or "org/model" repo name
142
- **kwargs: Additional arguments (trust_remote_code, etc.)
143
- """
144
- # Si c'est un nom de repo HF (contient "/")
145
- if "/" in pretrained_model_name_or_path and not os.path.exists(pretrained_model_name_or_path):
146
- from huggingface_hub import hf_hub_download
147
- try:
148
- vocab_file = hf_hub_download(
149
- repo_id=pretrained_model_name_or_path,
150
- filename="vocab.json"
151
- )
152
- vocab_dir = os.path.dirname(vocab_file)
153
- except Exception as e:
154
- raise RuntimeError(f"Failed to download vocab.json from {pretrained_model_name_or_path}: {e}")
155
- else:
156
- vocab_dir = pretrained_model_name_or_path
157
-
158
- vocab_path = os.path.join(vocab_dir, "vocab.json")
159
-
160
- if not os.path.exists(vocab_path):
161
- raise FileNotFoundError(f"vocab.json not found in {vocab_dir}")
162
-
163
- with open(vocab_path, "r") as f:
164
- vocab = json.load(f)
165
-
166
- return cls(vocab)
167
-
168
- @classmethod
169
- def register_for_auto_class(cls, auto_class="AutoTokenizer"):
170
- """Register tokenizer for AutoTokenizer"""
171
- return cls
 
1
+ import json, os, torch
2
+ class BatchEncoding(dict):
3
+ def to(self, device):
4
+ for key, value in self.items():
5
+ if isinstance(value, torch.Tensor):
6
+ self[key] = value.to(device)
7
+ return self
8
+ def __getattr__(self, item):
9
+ try:
10
+ return self[item]
11
+ except KeyError:
12
+ raise AttributeError(f"'{type(self).__name__}' object has no attribute '{item}'")
13
+
14
+ class ChessTokenizer:
15
+ def __init__(self, vocab):
16
+ self.vocab = vocab
17
+ self.id_to_token = {v: k for k, v in vocab.items()}
18
+ self.pad_token_id = vocab["[PAD]"]
19
+ self.bos_token_id = vocab["[BOS]"]
20
+ self.eos_token_id = vocab["[EOS]"]
21
+ self.unk_token_id = vocab["[UNK]"]
22
+ self.pad_token = "[PAD]"
23
+ self.bos_token = "[BOS]"
24
+ self.eos_token = "[EOS]"
25
+ self.unk_token = "[UNK]"
26
+ self.model_max_length = 256
27
+ @property
28
+ def vocab_size(self):
29
+ return len(self.vocab)
30
+ def _convert_token_to_id(self, token):
31
+ return self.vocab.get(token, self.unk_token_id)
32
+ def _convert_id_to_token(self, id):
33
+ return self.id_to_token.get(id, self.unk_token)
34
+ def save_pretrained(self, path):
35
+ os.makedirs(path, exist_ok=True)
36
+ with open(os.path.join(path, "vocab.json"), "w") as f:
37
+ json.dump(self.vocab, f, indent=2)
38
+ @classmethod
39
+ def from_pretrained(cls, path, **kwargs):
40
+ with open(os.path.join(path, "vocab.json")) as f:
41
+ vocab = json.load(f)
42
+ return cls(vocab)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tokenizer_config.json CHANGED
@@ -1,50 +1,13 @@
1
- {
2
- "added_tokens_decoder": {
3
- "0": {
4
- "content": "[PAD]",
5
- "lstrip": false,
6
- "normalized": false,
7
- "rstrip": false,
8
- "single_word": false,
9
- "special": true
10
- },
11
- "1": {
12
- "content": "[BOS]",
13
- "lstrip": false,
14
- "normalized": false,
15
- "rstrip": false,
16
- "single_word": false,
17
- "special": true
18
- },
19
- "2": {
20
- "content": "[EOS]",
21
- "lstrip": false,
22
- "normalized": false,
23
- "rstrip": false,
24
- "single_word": false,
25
- "special": true
26
- },
27
- "3": {
28
- "content": "[UNK]",
29
- "lstrip": false,
30
- "normalized": false,
31
- "rstrip": false,
32
- "single_word": false,
33
- "special": true
34
- }
35
- },
36
- "auto_map": {
37
- "AutoTokenizer": [
38
- "tokenizer.ChessTokenizer",
39
- null
40
- ]
41
- },
42
- "bos_token": "[BOS]",
43
- "clean_up_tokenization_spaces": false,
44
- "eos_token": "[EOS]",
45
- "extra_special_tokens": {},
46
- "model_max_length": 1000000000000000019884624838656,
47
- "pad_token": "[PAD]",
48
- "tokenizer_class": "ChessTokenizer",
49
- "unk_token": "[UNK]"
50
- }
 
1
+ {
2
+ "auto_map": {
3
+ "AutoTokenizer": [
4
+ "tokenizer.ChessTokenizer",
5
+ null
6
+ ]
7
+ },
8
+ "model_max_length": 256,
9
+ "pad_token": "[PAD]",
10
+ "bos_token": "[BOS]",
11
+ "eos_token": "[EOS]",
12
+ "unk_token": "[UNK]"
13
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vocab.json CHANGED
@@ -1,1077 +1,1798 @@
1
- {
2
- "[PAD]": 0,
3
- "[BOS]": 1,
4
- "[EOS]": 2,
5
- "[UNK]": 3,
6
- "WNg1f3": 4,
7
- "BNg8f6": 5,
8
- "WPe2e4": 6,
9
- "WPd2d4": 7,
10
- "WKe1g1(o)": 8,
11
- "WNb1c3": 9,
12
- "BNb8c6": 10,
13
- "BKe8g8(o)": 11,
14
- "BPd7d5": 12,
15
- "BPe7e6": 13,
16
- "BPe7e5": 14,
17
- "BPd7d6": 15,
18
- "WPc2c3": 16,
19
- "WPh2h3": 17,
20
- "BPg7g6": 18,
21
- "BPc7c6": 19,
22
- "BPh7h6": 20,
23
- "BPc7c5": 21,
24
- "BPa7a6": 22,
25
- "WPc2c4": 23,
26
- "WPa2a3": 24,
27
- "BBf8e7": 25,
28
- "WPg2g3": 26,
29
- "WPe2e3": 27,
30
- "WPf2f4": 28,
31
- "WPd2d3": 29,
32
- "BNb8d7": 30,
33
- "WRf1e1": 31,
34
- "BPb7b6": 32,
35
- "WNb1d2": 33,
36
- "WPe4e5": 34,
37
- "BPf7f6": 35,
38
- "WPb2b3": 36,
39
- "WBf1d3": 37,
40
- "WBf1c4": 38,
41
- "BPb7b5": 39,
42
- "WPf2f3": 40,
43
- "WBc1e3": 41,
44
- "WPe4d5(x)": 42,
45
- "WBc1g5": 43,
46
- "BBf8g7": 44,
47
- "BBc8g4": 45,
48
- "BRf8e8": 46,
49
- "BPf7f5": 47,
50
- "WBf1e2": 48,
51
- "WPb2b4": 49,
52
- "BPc5d4(x)": 50,
53
- "BBc8b7": 51,
54
- "WPa2a4": 52,
55
- "WPg2g4": 53,
56
- "WPh2h4": 54,
57
- "BPa7a5": 55,
58
- "WNf3e5": 56,
59
- "BBc8d7": 57,
60
- "WBc1f4": 58,
61
- "WPd4d5": 59,
62
- "BBf8d6": 60,
63
- "WPd4e5(x)": 61,
64
- "BRa8c8": 62,
65
- "BPh7h5": 63,
66
- "BNg8e7": 64,
67
- "BBc8e6": 65,
68
- "BPe6e5": 66,
69
- "WRa1d1": 67,
70
- "BPe5d4(x)": 68,
71
- "BPd5e4(x)": 69,
72
- "WRa1c1": 70,
73
- "WNf3d4(x)": 71,
74
- "BPc6c5": 72,
75
- "WKg1h1": 73,
76
- "WKe1c1(O)": 74,
77
- "BPg7g5": 75,
78
- "BBf8c5": 76,
79
- "WQd1e2": 77,
80
- "BRa8d8": 78,
81
- "BNf6e4": 79,
82
- "BBc8f5": 80,
83
- "WBf1g2": 81,
84
- "WBc1d2": 82,
85
- "BKg8h8": 83,
86
- "WNf3e5(x)": 84,
87
- "WPc4d5(x)": 85,
88
- "WBc1b2": 86,
89
- "BPe5e4": 87,
90
- "WPh4h5": 88,
91
- "BKe8c8(O)": 89,
92
- "WQd1d2": 90,
93
- "BPe6d5(x)": 91,
94
- "BPd6d5": 92,
95
- "BQd8e7": 93,
96
- "BRa8b8": 94,
97
- "BPd5d4": 95,
98
- "WNf3g5": 96,
99
- "WPc3c4": 97,
100
- "BNf6e4(x)": 98,
101
- "BQd8c7": 99,
102
- "BPb5b4": 100,
103
- "BPc6d5(x)": 101,
104
- "WRa1b1": 102,
105
- "BPb7c6(x)": 103,
106
- "BPd6e5(x)": 104,
107
- "WNc3d5": 105,
108
- "WPc3d4(x)": 106,
109
- "WPb2c3(x)": 107,
110
- "BPa5a4": 108,
111
- "WPf4f5": 109,
112
- "WPe3e4": 110,
113
- "WPh3h4": 111,
114
- "WNg1e2": 112,
115
- "WPg4g5": 113,
116
- "BNc6d4": 114,
117
- "WPd3d4": 115,
118
- "WBf1b5": 116,
119
- "WKg1h2": 117,
120
- "BKg8g7": 118,
121
- "BBg4f3(x)": 119,
122
- "BBf8b4": 120,
123
- "BPc5c4": 121,
124
- "BNf6d5": 122,
125
- "BNf6d5(x)": 123,
126
- "WQd1c2": 124,
127
- "WKg1g2": 125,
128
- "WPa4a5": 126,
129
- "BPa6a5": 127,
130
- "BPg6g5": 128,
131
- "BQd8d7": 129,
132
- "WPc4c5": 130,
133
- "WPb4b5": 131,
134
- "WRa1e1": 132,
135
- "BQd8b6": 133,
136
- "BPh5h4": 134,
137
- "WQd1f3": 135,
138
- "WRf1d1": 136,
139
- "BRf8d8": 137,
140
- "WBg5f6(x)": 138,
141
- "BKg8h7": 139,
142
- "BNc6e5(x)": 140,
143
- "WNc3e4": 141,
144
- "WPf3f4": 142,
145
- "BNf6d7": 143,
146
- "BPf6f5": 144,
147
- "BRa8e8": 145,
148
- "BNc6d4(x)": 146,
149
- "BNf6g4": 147,
150
- "BPh6h5": 148,
151
- "WPg3g4": 149,
152
- "BPg5g4": 150,
153
- "BPd5c4(x)": 151,
154
- "WNc3e2": 152,
155
- "BPf5f4": 153,
156
- "WNd2f3": 154,
157
- "WPd4c5(x)": 155,
158
- "WNc3d5(x)": 156,
159
- "BNc6e5": 157,
160
- "WKg1f2": 158,
161
- "WPf4e5(x)": 159,
162
- "BQd8f6": 160,
163
- "BQd8d5(x)": 161,
164
- "BNd7f6": 162,
165
- "BPb6b5": 163,
166
- "WBc4b3": 164,
167
- "BKg8f7": 165,
168
- "WNc3e4(x)": 166,
169
- "BNf6h5": 167,
170
- "WPa3a4": 168,
171
- "WNf3d4": 169,
172
- "WKg1f1": 170,
173
- "WPg2f3(x)": 171,
174
- "BKg8f8": 172,
175
- "WPb3b4": 173,
176
- "BPg7f6(x)": 174,
177
- "WNf3d2": 175,
178
- "BNc6e7": 176,
179
- "WQd1b3": 177,
180
- "BPf7e6(x)": 178,
181
- "WNc3b5": 179,
182
- "WKc1b1": 180,
183
- "BNc6a5": 181,
184
- "WNf3h4": 182,
185
- "BNe7g6": 183,
186
- "BNd7b6": 184,
187
- "WBg5h4": 185,
188
- "BNe7f5": 186,
189
- "BPe5f4(x)": 187,
190
- "BNc6b4": 188,
191
- "BBg4h5": 189,
192
- "BNd7e5(x)": 190,
193
- "WNe2g3": 191,
194
- "WQd1d4(x)": 192,
195
- "WPe3d4(x)": 193,
196
- "BKc8b8": 194,
197
- "BPf6e5(x)": 195,
198
- "BBe7f6": 196,
199
- "BNd7c5": 197,
200
- "WQd1f3(x)": 198,
201
- "BPh6g5(x)": 199,
202
- "WPe4f5(x)": 200,
203
- "WPf2e3(x)": 201,
204
- "BRh8g8": 202,
205
- "BPf5e4(x)": 203,
206
- "WPd3e4(x)": 204,
207
- "WQd1d3": 205,
208
- "WNc3a4": 206,
209
- "WPe5e6": 207,
210
- "BPa4a3": 208,
211
- "BPa6b5(x)": 209,
212
- "BRf8c8": 210,
213
- "WPh3g4(x)": 211,
214
- "WNd2b3": 212,
215
- "WBf4g3": 213,
216
- "WBb5c6(x)": 214,
217
- "WRh1g1": 215,
218
- "BKe8d7": 216,
219
- "BNd7e5": 217,
220
- "WPe5f6(x)": 218,
221
- "WPd5d6": 219,
222
- "WBe2f3": 220,
223
- "WPa3b4(x)": 221,
224
- "WPh5h6": 222,
225
- "WRd1e1": 223,
226
- "BKe8e7": 224,
227
- "BPh7g6(x)": 225,
228
- "BKf8e7": 226,
229
- "BBe7f6(x)": 227,
230
- "WPa5a6": 228,
231
- "WNd2c4": 229,
232
- "WKf1e2": 230,
233
- "WNd2e4(x)": 231,
234
- "WNd2e4": 232,
235
- "BBb4c3(x)": 233,
236
- "WPf3e4(x)": 234,
237
- "BQd8f6(x)": 235,
238
- "WRf1f2": 236,
239
- "BRf8f7": 237,
240
- "WPa4b5(x)": 238,
241
- "BPd4d3": 239,
242
- "WRa1f1": 240,
243
- "BBe7d6": 241,
244
- "BBc5b6": 242,
245
- "BRa8f8": 243,
246
- "WRh1e1": 244,
247
- "BPe6f5(x)": 245,
248
- "WRf1c1": 246,
249
- "BBc8a6": 247,
250
- "BKe8f8": 248,
251
- "WNe2f4": 249,
252
- "BPf7g6(x)": 250,
253
- "BRh8f8": 251,
254
- "BPa5b4(x)": 252,
255
- "BRd8e8": 253,
256
- "WNd4c6(x)": 254,
257
- "WRe1e2": 255,
258
- "BKg7f6": 256,
259
- "BRh8e8": 257,
260
- "WBf1b5(+)": 258,
261
- "WRd1d2": 259,
262
- "WBe2d3": 260,
263
- "BPb5c4(x)": 261,
264
- "BPe4e3": 262,
265
- "BQd8d6": 263,
266
- "WPe5d6(x)": 264,
267
- "BBh5g6": 265,
268
- "BNg8h6": 266,
269
- "BQd8a5": 267,
270
- "BNb8a6": 268,
271
- "WBh4g3": 269,
272
- "WKf2e3": 270,
273
- "WRe1d1": 271,
274
- "BRd8d7": 272,
275
- "WKg2f3": 273,
276
- "WBc4d3": 274,
277
- "WBd3e4(x)": 275,
278
- "BPh4h3": 276,
279
- "BPb4b3": 277,
280
- "BBf5g6": 278,
281
- "WKe1d2": 279,
282
- "BKe8d8": 280,
283
- "BBd7c6": 281,
284
- "BPg6f5(x)": 282,
285
- "BPh5g4(x)": 283,
286
- "WKe1e2": 284,
287
- "WPa2b3(x)": 285,
288
- "WPh2g3(x)": 286,
289
- "BBf8b4(+)": 287,
290
- "WNb1a3": 288,
291
- "WPh4g5(x)": 289,
292
- "WBd3e2": 290,
293
- "WPd5c6(x)": 291,
294
- "WBe2f3(x)": 292,
295
- "WKh1g1": 293,
296
- "BKf7e6": 294,
297
- "BPd4c3(x)": 295,
298
- "BKh8g8": 296,
299
- "WQd1h5": 297,
300
- "BBd6e5(x)": 298,
301
- "WRh1f1": 299,
302
- "BKg8g7(x)": 300,
303
- "BPc7d6(x)": 301,
304
- "WPb5b6": 302,
305
- "BPb6c5(x)": 303,
306
- "BKg7h6": 304,
307
- "WPc5c6": 305,
308
- "BRe8e7": 306,
309
- "WBg5e7(x)": 307,
310
- "BKe7d6": 308,
311
- "WPb3c4(x)": 309,
312
- "WPb4c5(x)": 310,
313
- "WBb5a4": 311,
314
- "WKe1f1": 312,
315
- "BPc4c3": 313,
316
- "WKh1h2": 314,
317
- "WPf5f6": 315,
318
- "BBb4c3(x+)": 316,
319
- "WPg5g6": 317,
320
- "WBd3c2": 318,
321
- "WRe1e3": 319,
322
- "BRe8d8": 320,
323
- "WBb5c6(x+)": 321,
324
- "WBe3d4(x)": 322,
325
- "WNe5c6(x)": 323,
326
- "WPg4f5(x)": 324,
327
- "WKg2g3": 325,
328
- "WPc2d3(x)": 326,
329
- "WNg5f3": 327,
330
- "WKe2d3": 328,
331
- "WKf2g3": 329,
332
- "WKg2h3": 330,
333
- "WPh5g6(x)": 331,
334
- "WPf2g3(x)": 332,
335
- "WKh2g3": 333,
336
- "BKf7g6": 334,
337
- "BPa7b6(x)": 335,
338
- "BBg7e5(x)": 336,
339
- "BNe7c6": 337,
340
- "WQf3g3": 338,
341
- "BQd8e7(x)": 339,
342
- "BPf4f3": 340,
343
- "WRe1f1": 341,
344
- "WNf3h2": 342,
345
- "WBf1c4(x)": 343,
346
- "BKe8f7": 344,
347
- "WBc4d5(x)": 345,
348
- "WRf1f3": 346,
349
- "BKf7e7": 347,
350
- "WBf4e5(x)": 348,
351
- "WBg5e3": 349,
352
- "BBd6e7": 350,
353
- "WKe1d1": 351,
354
- "BPa3a2": 352,
355
- "WPg3f4(x)": 353,
356
- "WRd1c1": 354,
357
- "WNe4f6(x+)": 355,
358
- "WBd2c3": 356,
359
- "BKh7g8": 357,
360
- "WKh2g1": 358,
361
- "BQd8e8": 359,
362
- "WQd1e1": 360,
363
- "BRd8c8": 361,
364
- "BPg4g3": 362,
365
- "WPd5e6(x)": 363,
366
- "WQd1d3(x)": 364,
367
- "WKc1d2": 365,
368
- "BNd5c3(x)": 366,
369
- "BRe8f8": 367,
370
- "BKh8h7": 368,
371
- "WNe5f3": 369,
372
- "WPa6a7": 370,
373
- "BKg7g6": 371,
374
- "BRh8d8": 372,
375
- "WKf2e2": 373,
376
- "WRh1d1": 374,
377
- "BRc8d8": 375,
378
- "BKf7f6": 376,
379
- "WBc1a3": 377,
380
- "BPe4f3(x)": 378,
381
- "WKf2f3": 379,
382
- "WBe3d2": 380,
383
- "WBc4e6(x)": 381,
384
- "BBf5d3(x)": 382,
385
- "WNg1h3": 383,
386
- "WNd2f1": 384,
387
- "BKe8f7(x)": 385,
388
- "BRf8g8": 386,
389
- "BKe7d7": 387,
390
- "WNe5d7(x)": 388,
391
- "WNd4f3": 389,
392
- "WNf3g5(x)": 390,
393
- "BNe4c3(x)": 391,
394
- "WPc4b5(x)": 392,
395
- "BKh7g6": 393,
396
- "WBd3f5(x)": 394,
397
- "BKc8d7": 395,
398
- "WBf4d6(x)": 396,
399
- "BKf8g8": 397,
400
- "WPc3b4(x)": 398,
401
- "BNe7d5": 399,
402
- "BQd8c8": 400,
403
- "WQd1g4": 401,
404
- "WRc1d1": 402,
405
- "BKf8g7": 403,
406
- "WBd2e3": 404,
407
- "BKf7g8": 405,
408
- "BNe4f6": 406,
409
- "WQd1a4": 407,
410
- "WRd1f1": 408,
411
- "WKe2d2": 409,
412
- "WBf4e3": 410,
413
- "WBe3g5": 411,
414
- "WRf1g1": 412,
415
- "WBe3d4": 413,
416
- "BBg7f6(x)": 414,
417
- "WKe1f2": 415,
418
- "BKe7f6": 416,
419
- "WBc4f7(x+)": 417,
420
- "WKf1g1": 418,
421
- "BPd6c5(x)": 419,
422
- "WBc1f4(x)": 420,
423
- "BKd7c6": 421,
424
- "WBe3c5(x)": 422,
425
- "BQf6g6": 423,
426
- "WBb5d7(x+)": 424,
427
- "BPg5f4(x)": 425,
428
- "BRf8b8": 426,
429
- "BQd8h4": 427,
430
- "BBf8c5(x)": 428,
431
- "BNf6e8": 429,
432
- "BNf6g4(x)": 430,
433
- "WBg5f4": 431,
434
- "BPc6b5(x)": 432,
435
- "WRe1e4(x)": 433,
436
- "BBb4a5": 434,
437
- "BNg4f6": 435,
438
- "WKe2f3": 436,
439
- "BPg7h6(x)": 437,
440
- "BRd8f8": 438,
441
- "BQd8d6(x)": 439,
442
- "WRe1e5(x)": 440,
443
- "BBb7e4(x)": 441,
444
- "BNd7f8": 442,
445
- "BKf8e8": 443,
446
- "BQb6c7": 444,
447
- "WPe3f4(x)": 445,
448
- "WBe3f4": 446,
449
- "BRf8f6": 447,
450
- "WPf4g5(x)": 448,
451
- "BNe5f3(x+)": 449,
452
- "WRd1d3": 450,
453
- "BQd5d8": 451,
454
- "BKg7g8": 452,
455
- "BBd7e6": 453,
456
- "BNf6h7": 454,
457
- "BKg7f7": 455,
458
- "BRc8c7": 456,
459
- "WNb5c3": 457,
460
- "BRe8e6": 458,
461
- "BKh8g7": 459,
462
- "WPd3c4(x)": 460,
463
- "BBg4e2(x)": 461,
464
- "WKf1g2": 462,
465
- "WKh1g2": 463,
466
- "BBe6d5(x)": 464,
467
- "WNe2c3": 465,
468
- "BPf5g4(x)": 466,
469
- "BBb7d5(x)": 467,
470
- "BPc5b4(x)": 468,
471
- "WBa4b3": 469,
472
- "WPd6d7": 470,
473
- "WNe2d4": 471,
474
- "BBe7g5": 472,
475
- "WRf1b1": 473,
476
- "WRd1d7": 474,
477
- "WBf4g5": 475,
478
- "WPh6h7": 476,
479
- "BKf6e5": 477,
480
- "BKf7e8": 478,
481
- "BRf8f7(x)": 479,
482
- "BBd7c6(x)": 480,
483
- "WBd3e4": 481,
484
- "BKd7c7": 482,
485
- "WKe2e3": 483,
486
- "BBg4e6": 484,
487
- "WBb3c2": 485,
488
- "BBc8f5(x)": 486,
489
- "BPg6h5(x)": 487,
490
- "WQd1e2(x)": 488,
491
- "BQd8d7(x)": 489,
492
- "BNb4c6": 490,
493
- "WKf3e4": 491,
494
- "BNe7d5(x)": 492,
495
- "BQd8a5(+)": 493,
496
- "BPf6g5(x)": 494,
497
- "BKe7e6": 495,
498
- "WKf1e1": 496,
499
- "BQd8g5": 497,
500
- "WPg2h3(x)": 498,
501
- "BBg4f5": 499,
502
- "BNh5f4": 500,
503
- "WPc6c7": 501,
504
- "BNd5f6": 502,
505
- "BRd8d2": 503,
506
- "WNd4f5": 504,
507
- "BPd3d2": 505,
508
- "WNe4g3": 506,
509
- "BBc5e3(x)": 507,
510
- "WRc1c2": 508,
511
- "BBc5d6": 509,
512
- "BNd7f6(x)": 510,
513
- "BBc5d4(x)": 511,
514
- "WNe4g5": 512,
515
- "WKd2c3": 513,
516
- "WQd1c1": 514,
517
- "BKg7f8": 515,
518
- "BPb3b2": 516,
519
- "WKh2h1": 517,
520
- "WPb6b7": 518,
521
- "BBe7g5(x)": 519,
522
- "BBd6f4(x)": 520,
523
- "WNe2d4(x)": 521,
524
- "WKg2f2": 522,
525
- "BRe8e5(x)": 523,
526
- "BNd5f4": 524,
527
- "WKd2e3": 525,
528
- "WKg3f4": 526,
529
- "WNg5e6(x)": 527,
530
- "BBb7f3(x)": 528,
531
- "BKd8c7": 529,
532
- "WKg2f1": 530,
533
- "WPf3g4(x)": 531,
534
- "BKf7g7": 532,
535
- "WQd1h5(+)": 533,
536
- "WBb5d3": 534,
537
- "BPb4c3(x)": 535,
538
- "WBd3g6(x)": 536,
539
- "WKg1g2(x)": 537,
540
- "WNc3b5(x)": 538,
541
- "BRb8c8": 539,
542
- "BKc7b6": 540,
543
- "BKc8b7": 541,
544
- "BNb6d5": 542,
545
- "BPc3c2": 543,
546
- "WRe1e8(x+)": 544,
547
- "BKd7e6": 545,
548
- "WKf3e3": 546,
549
- "WBc4e2": 547,
550
- "WBd3c4": 548,
551
- "WNg5f7(x)": 549,
552
- "WRd1d4(x)": 550,
553
- "WBh6g7(x)": 551,
554
- "WRd1d5(x)": 552,
555
- "WKe3d3": 553,
556
- "BBb7c8": 554,
557
- "BRe8e1(x+)": 555,
558
- "BNb6c4": 556,
559
- "BNa5c4": 557,
560
- "BKh7h8": 558,
561
- "BNd7c5(x)": 559,
562
- "WKd2c2": 560,
563
- "BNd4f3(x+)": 561,
564
- "BNe5c4": 562,
565
- "BBe7c5": 563,
566
- "WKe3d4": 564,
567
- "WBc4b5": 565,
568
- "BPh3h2": 566,
569
- "WRd1d8(x+)": 567,
570
- "WBd2c3(x)": 568,
571
- "BKd8e7": 569,
572
- "WRe1c1": 570,
573
- "BBg7f8": 571,
574
- "BKf6e6": 572,
575
- "BNd5b6": 573,
576
- "BKe7f7": 574,
577
- "BBe6d7": 575,
578
- "BKg6f5": 576,
579
- "WQe2f3": 577,
580
- "BKe6d5": 578,
581
- "WKh2h3": 579,
582
- "BBg7h6": 580,
583
- "BRd8d6": 581,
584
- "WNd5f6(x+)": 582,
585
- "WKg3f3": 583,
586
- "BRa8d8(x)": 584,
587
- "BRd8d1(x+)": 585,
588
- "WKc1b2": 586,
589
- "BRc8b8": 587,
590
- "WKh2g2": 588,
591
- "WNg3f5": 589,
592
- "BKh7g7": 590,
593
- "WKg2g1": 591,
594
- "BBb7a6": 592,
595
- "BBf5e4(x)": 593,
596
- "BNe5g6": 594,
597
- "WPe6e7": 595,
598
- "WNd2c4(x)": 596,
599
- "BBe6c4(x)": 597,
600
- "WBf4e5": 598,
601
- "BRe8c8": 599,
602
- "WKf2g1": 600,
603
- "BKc8c7": 601,
604
- "BNe4d2(x)": 602,
605
- "WKf3g4": 603,
606
- "BKe8d8(x)": 604,
607
- "BKd7e7": 605,
608
- "WNf3e1": 606,
609
- "WNd4b5": 607,
610
- "WRb1c1": 608,
611
- "BNg6f4": 609,
612
- "WRe1e7": 610,
613
- "WRe1e6(x)": 611,
614
- "BKf6f5": 612,
615
- "WNe4c5": 613,
616
- "WKg3g4": 614,
617
- "BBc8e6(x)": 615,
618
- "BKg6f6": 616,
619
- "WQd1d8(x+)": 617,
620
- "WRd1g1": 618,
621
- "BQd8g5(x)": 619,
622
- "BKd6c5": 620,
623
- "BRf8f6(x)": 621,
624
- "WKf3f4": 622,
625
- "BKg8f8(x)": 623,
626
- "BRb8d8": 624,
627
- "BRd8d4(x)": 625,
628
- "WKc2b3": 626,
629
- "WBb5c4": 627,
630
- "WKc1c2": 628,
631
- "WNd2f3(x)": 629,
632
- "WRa1d1(x)": 630,
633
- "BKe6d6": 631,
634
- "BRf8d8(x)": 632,
635
- "BPh4g3(x)": 633,
636
- "WPf5g6(x)": 634,
637
- "BKf8f7": 635,
638
- "BKd7d6": 636,
639
- "WKd1e2": 637,
640
- "WRf1d1(x)": 638,
641
- "BKf6e7": 639,
642
- "BQb6b2(x)": 640,
643
- "WRb1d1": 641,
644
- "WQd1a4(+)": 642,
645
- "BKe7f8": 643,
646
- "BPe7f6(x)": 644,
647
- "BQd8d5": 645,
648
- "BBb4d6": 646,
649
- "BRe8e4(x)": 647,
650
- "BRd8d5(x)": 648,
651
- "BBb4d2(x+)": 649,
652
- "BBd6c7": 650,
653
- "WRf1f2(x)": 651,
654
- "BNg4e3(x)": 652,
655
- "BBe6d5": 653,
656
- "WKd2e2": 654,
657
- "WKf2g2": 655,
658
- "BPe4d3(x)": 656,
659
- "BQe7f6": 657,
660
- "BBc5e7": 658,
661
- "WPg4h5(x)": 659,
662
- "BNe5g4": 660,
663
- "WKe2f2": 661,
664
- "WBg2e4(x)": 662,
665
- "BBf5e6": 663,
666
- "WQb3c2": 664,
667
- "BBd6g3(x)": 665,
668
- "BPe3e2": 666,
669
- "BNh5f6": 667,
670
- "WKg1f1(x)": 668,
671
- "BPa4b3(x)": 669,
672
- "WKd2d3": 670,
673
- "WKf1f2": 671,
674
- "WNb3c5": 672,
675
- "BKf6g5": 673,
676
- "BRa8a7": 674,
677
- "BKe6f5": 675,
678
- "BPb5a4(x)": 676,
679
- "WKe3f4": 677,
680
- "WBc4a2": 678,
681
- "WRc1e1": 679,
682
- "BPd7c6(x)": 680,
683
- "WRd1d8(x)": 681,
684
- "BRe8e2": 682,
685
- "WNh4f5": 683,
686
- "WBc1h6(x)": 684,
687
- "WBe3f2": 685,
688
- "BNh6f5": 686,
689
- "WKg3f2": 687,
690
- "WNa4c5": 688,
691
- "WQf3e2": 689,
692
- "BKh7h6": 690,
693
- "WKf3g3": 691,
694
- "WBe2g4": 692,
695
- "WKe3f3": 693,
696
- "WNb1c3(x)": 694,
697
- "BQc7b6": 695,
698
- "WKf3e2": 696,
699
- "BBe7f8": 697,
700
- "WBc4d5": 698,
701
- "BKf6g6": 699,
702
- "BRd8d1(x)": 700,
703
- "BNe5c6": 701,
704
- "WKd1c2": 702,
705
- "WKg3h4": 703,
706
- "WQe2d2": 704,
707
- "BRc8e8": 705,
708
- "BBe6f5": 706,
709
- "WRd1d6(x)": 707,
710
- "WKe2f1": 708,
711
- "WPb4a5(x)": 709,
712
- "WQe2e3": 710,
713
- "WRf1f3(x)": 711,
714
- "WKd3c4": 712,
715
- "WQd1d2(x)": 713,
716
- "WNg3e4": 714,
717
- "WRc1b1": 715,
718
- "WRd1d2(x)": 716,
719
- "BNc6b4(x)": 717,
720
- "BBa5b6": 718,
721
- "BBf8d6(x)": 719,
722
- "BQd8d1(x+)": 720,
723
- "WPg6g7": 721,
724
- "WQd2e2": 722,
725
- "BNe5c4(x)": 723,
726
- "BKg6g5": 724,
727
- "BBb4e7": 725,
728
- "BQa5b6": 726,
729
- "BRf8h8": 727,
730
- "BKd8c8": 728,
731
- "WQd2e3": 729,
732
- "BBf5e4": 730,
733
- "BRd8d6(x)": 731,
734
- "BBd6c5": 732,
735
- "BBf6e7": 733,
736
- "WNg5e4": 734,
737
- "BKg6f7": 735,
738
- "BNd5b4": 736,
739
- "BKd6c6": 737,
740
- "BBf5g4": 738,
741
- "WBb2f6(x)": 739,
742
- "BBd7b5": 740,
743
- "BBg7d4(x)": 741,
744
- "BBb4c5": 742,
745
- "BBb7c6": 743,
746
- "WNd4b3": 744,
747
- "WBb2e5(x)": 745,
748
- "BQe7d7": 746,
749
- "BBe7c5(x)": 747,
750
- "BQa5c7": 748,
751
- "BBe6g4": 749,
752
- "BQc7d7": 750,
753
- "BRd8d7(x)": 751,
754
- "BKg8f7(x)": 752,
755
- "BBg7f6": 753,
756
- "WBe3h6": 754,
757
- "WKe3e4": 755,
758
- "BKe7d8": 756,
759
- "WKe1d1(x)": 757,
760
- "BPd4e3(x)": 758,
761
- "WRe1e3(x)": 759,
762
- "WBd3b5": 760,
763
- "WBe2c4": 761,
764
- "WKf2e1": 762,
765
- "BKe6f6": 763,
766
- "WKb1a1": 764,
767
- "BKh6g7": 765,
768
- "BKd7c8": 766,
769
- "BBe7b4": 767,
770
- "WRc1c7": 768,
771
- "WNh4f3": 769,
772
- "WNc7a8(x)": 770,
773
- "BKg7h7": 771,
774
- "WQe2d3": 772,
775
- "WRd1b1": 773,
776
- "BRa8g8": 774,
777
- "WQd1g4(x)": 775,
778
- "WRd1d3(x)": 776,
779
- "BNb6d7": 777,
780
- "BPa2a1(Q)": 778,
781
- "BRc8c2": 779,
782
- "BBc8g4(x)": 780,
783
- "BRe8e6(x)": 781,
784
- "WKh3g2": 782,
785
- "WBd3c4(x)": 783,
786
- "BNa5c6": 784,
787
- "BQd8d4(x)": 785,
788
- "BKf6g7": 786,
789
- "BRd8d3(x)": 787,
790
- "WPb5c6(x)": 788,
791
- "WQd1d5(x)": 789,
792
- "BNc6b8": 790,
793
- "WNb3d4": 791,
794
- "BNc5e4": 792,
795
- "BKg6h5": 793,
796
- "WRe1e4": 794,
797
- "BBd6e5": 795,
798
- "BRf8f5(x)": 796,
799
- "BRd8g8": 797,
800
- "WRf1e1(+)": 798,
801
- "BRd8d5": 799,
802
- "BBf6g7": 800,
803
- "WBf3e2": 801,
804
- "BPg5h4(x)": 802,
805
- "WKf3g2": 803,
806
- "WPf5e6(x)": 804,
807
- "WPg3h4(x)": 805,
808
- "WNe4d6": 806,
809
- "BRd8b8": 807,
810
- "BBc5f2(x+)": 808,
811
- "WBg2f3(x)": 809,
812
- "WRf1f4(x)": 810,
813
- "WQd1d4": 811,
814
- "WNf1g3": 812,
815
- "BBf8h6": 813,
816
- "WNe5g4": 814,
817
- "BBg4d7": 815,
818
- "WKd3c3": 816,
819
- "WNc4e5": 817,
820
- "BQd5a5": 818,
821
- "BRe8e7(x)": 819,
822
- "WBc4b5(+)": 820,
823
- "WRa1g1": 821,
824
- "WKg2h2": 822,
825
- "WKg1f2(x)": 823,
826
- "WQc2d2": 824,
827
- "BPg3g2": 825,
828
- "BRb8a8": 826,
829
- "WRa1a2": 827,
830
- "WBc1g5(x)": 828,
831
- "WPf6f7": 829,
832
- "BBf6e5(x)": 830,
833
- "WKe3d2": 831,
834
- "WBb2d4(x)": 832,
835
- "BNd5e3(x)": 833,
836
- "WBc1h6": 834,
837
- "BKe6d7": 835,
838
- "WPa7a8(Q)": 836,
839
- "WNe5d3": 837,
840
- "BKb8a8": 838,
841
- "WKd2c1": 839,
842
- "BNf6g8": 840,
843
- "BRb8b2(x)": 841,
844
- "BNa6c5": 842,
845
- "BBd7e8": 843,
846
- "WBe2g4(x)": 844,
847
- "BKf7f8": 845,
848
- "BQd7e7": 846,
849
- "WQh5f3": 847,
850
- "WQe2f2": 848,
851
- "BKd7e8": 849,
852
- "WNe5f7(x)": 850,
853
- "WKd3e3": 851,
854
- "WNe5g6(x)": 852,
855
- "BNe4d6": 853,
856
- "BNe7f5(x)": 854,
857
- "WRf1f6(x)": 855,
858
- "BKe7e8": 856,
859
- "BPf3f2": 857,
860
- "WBg2f1": 858,
861
- "WPb3a4(x)": 859,
862
- "WRf1f8(x+)": 860,
863
- "BNg6e5": 861,
864
- "WNa3c4": 862,
865
- "WRe1e2(x)": 863,
866
- "BQf6e7": 864,
867
- "WNe4c3": 865,
868
- "WNh2g4": 866,
869
- "WPc2b3(x)": 867,
870
- "BKd8e8": 868,
871
- "WKh3g4": 869,
872
- "WKc2d3": 870,
873
- "BRc8c3(x)": 871,
874
- "BBc5d4": 872,
875
- "BKh6g5": 873,
876
- "BNg4e5": 874,
877
- "WNc4e3": 875,
878
- "BKd8d7": 876,
879
- "BRf8a8": 877,
880
- "WBb2a3": 878,
881
- "WKe2d1": 879,
882
- "WBd2g5": 880,
883
- "BPc4b3(x)": 881,
884
- "WBg2h3": 882,
885
- "WQb3b7(x)": 883,
886
- "BRe8e3(x)": 884,
887
- "BNc2a1(x)": 885,
888
- "WRd1d4": 886,
889
- "WRf1f5(x)": 887,
890
- "WNd4e6(x)": 888,
891
- "WNe4f6(+)": 889,
892
- "BKe6e5": 890,
893
- "BQd8h4(+)": 891,
894
- "WRf1h1": 892,
895
- "WPa5b6(x)": 893,
896
- "BKe6f7": 894,
897
- "WKd1c1": 895,
898
- "BBg7b2(x)": 896,
899
- "WQd2d3": 897,
900
- "BKc7d6": 898,
901
- "BRh8c8": 899,
902
- "WBd2f4": 900,
903
- "WNc3d1": 901,
904
- "BRf8f1(x+)": 902,
905
- "BRg8g7": 903,
906
- "WPg5f6(x)": 904,
907
- "BNg8f6(x)": 905,
908
- "BBd7b5(x)": 906,
909
- "WBe2c4(x)": 907,
910
- "WBb2c1": 908,
911
- "BNd4c6": 909,
912
- "BNe4c5": 910,
913
- "BBc8h3(x)": 911,
914
- "BQe7f7": 912,
915
- "BRc8a8": 913,
916
- "BBg7c3(x)": 914,
917
- "WBg5d2": 915,
918
- "WQd4d1": 916,
919
- "WQc2b3": 917,
920
- "BPf4g3(x)": 918,
921
- "WRb1e1": 919,
922
- "WKd3e4": 920,
923
- "BNa6c7": 921,
924
- "BBb7c6(x)": 922,
925
- "WQf3e3": 923,
926
- "WKe3f2": 924,
927
- "WQd3d2": 925,
928
- "BKh6h5": 926,
929
- "WNb5d6": 927,
930
- "BKg7h8": 928,
931
- "BRe8e5": 929,
932
- "BQe7e6": 930,
933
- "BKd6e6": 931,
934
- "WNg5e6": 932,
935
- "WPb2a3(x)": 933,
936
- "BKd6e7": 934,
937
- "BKe5d4": 935,
938
- "BKd6e5": 936,
939
- "WBf4d2": 937,
940
- "BNe5d3": 938,
941
- "WBb3d5(x)": 939,
942
- "WBd3b1": 940,
943
- "BNc5e6": 941,
944
- "WRb1a1": 942,
945
- "BNb8c6(x)": 943,
946
- "BKf5e4": 944,
947
- "BNc6d8": 945,
948
- "BNf6h5(x)": 946,
949
- "WPc5b6(x)": 947,
950
- "WBb5e2": 948,
951
- "WKb1a2": 949,
952
- "BKb8a7": 950,
953
- "WBg5h6": 951,
954
- "WBe2b5": 952,
955
- "WBg2d5(x)": 953,
956
- "BRf8f3(x)": 954,
957
- "WRa1e1(x)": 955,
958
- "WRb1b7(x)": 956,
959
- "WQe2e4(x)": 957,
960
- "WRg1g2": 958,
961
- "BRf8f4(x)": 959,
962
- "WNg3e2": 960,
963
- "WKh3h4": 961,
964
- "WKd3c2": 962,
965
- "WQd3e2": 963,
966
- "WQc2e2": 964,
967
- "BKd6c7": 965,
968
- "BRb8e8": 966,
969
- "WBe3c5": 967,
970
- "WKd3d4": 968,
971
- "WKf4g5": 969,
972
- "BRa8e8(x)": 970,
973
- "BQc7e5(x)": 971,
974
- "WKe1f2(x)": 972,
975
- "BKc7c6": 973,
976
- "BRf8e8(+)": 974,
977
- "BNg6e7": 975,
978
- "WRd1d6": 976,
979
- "BBd7g4": 977,
980
- "WNe4c5(x)": 978,
981
- "BRc8c6": 979,
982
- "WNb3d2": 980,
983
- "WRd1d7(x)": 981,
984
- "BQc7e7": 982,
985
- "WRe1e7(x)": 983,
986
- "WPc5d6(x)": 984,
987
- "WKb1c1": 985,
988
- "BNf6d7(x)": 986,
989
- "BNf5d4": 987,
990
- "BQe7d6": 988,
991
- "WNd4c6": 989,
992
- "WNg3h5": 990,
993
- "WNe5c4": 991,
994
- "BPc4d3(x)": 992,
995
- "BBd7f5": 993,
996
- "WNa4c3": 994,
997
- "BQd7e6": 995,
998
- "WKe4d5": 996,
999
- "BBc5b4": 997,
1000
- "BKd6d5": 998,
1001
- "BKd5c4": 999,
1002
- "WKf2f1": 1000,
1003
- "WNf3g5(+)": 1001,
1004
- "BKc6b5": 1002,
1005
- "BBf6g5": 1003,
1006
- "WQd2f4": 1004,
1007
- "WKd2e1": 1005,
1008
- "WBf1h3": 1006,
1009
- "WKd1d2": 1007,
1010
- "WBe3f4(x)": 1008,
1011
- "WBe3b6(x)": 1009,
1012
- "WKf4e5": 1010,
1013
- "WRe1e5": 1011,
1014
- "BBd6b4": 1012,
1015
- "BPb7a6(x)": 1013,
1016
- "BBe7d8": 1014,
1017
- "WNe2f4(x)": 1015,
1018
- "WNd5e3": 1016,
1019
- "WNg5e4(x)": 1017,
1020
- "BKc6b6": 1018,
1021
- "WRe1g1": 1019,
1022
- "BNg4e5(x)": 1020,
1023
- "WKd3e2": 1021,
1024
- "WBg3e5(x)": 1022,
1025
- "BNe5d3(x)": 1023,
1026
- "BNf5d4(x)": 1024,
1027
- "WNf3h4(x)": 1025,
1028
- "BKc7d7": 1026,
1029
- "WPh7h8(Q)": 1027,
1030
- "BPc7b6(x)": 1028,
1031
- "WKg3g2": 1029,
1032
- "BNb8d7(x)": 1030,
1033
- "BKf6f7": 1031,
1034
- "WBd3h7(x+)": 1032,
1035
- "WBe2f1": 1033,
1036
- "WNg5h3": 1034,
1037
- "BRd8d3": 1035,
1038
- "WKg4g5": 1036,
1039
- "BRf8f5": 1037,
1040
- "BNe4g5": 1038,
1041
- "WRc1c3": 1039,
1042
- "BBe7d6(x)": 1040,
1043
- "WNb5d4": 1041,
1044
- "WKb1c2": 1042,
1045
- "WNc3b1": 1043,
1046
- "WQd3e3": 1044,
1047
- "WRf1a1": 1045,
1048
- "BRa8f8(x)": 1046,
1049
- "BKg8h7(x)": 1047,
1050
- "WNe5c6": 1048,
1051
- "BNg6e5(x)": 1049,
1052
- "WRf3g3": 1050,
1053
- "WKd4c5": 1051,
1054
- "WNh3f4": 1052,
1055
- "WBf4c7(x)": 1053,
1056
- "BBa6b7": 1054,
1057
- "BRc8c4": 1055,
1058
- "BNa6b4": 1056,
1059
- "WRc1c6(x)": 1057,
1060
- "BKc8d8": 1058,
1061
- "WNa3c2": 1059,
1062
- "WQe2g4": 1060,
1063
- "WBc2b3": 1061,
1064
- "WKc2d2": 1062,
1065
- "WBd2b4(x)": 1063,
1066
- "WBb2c3": 1064,
1067
- "BPb6a5(x)": 1065,
1068
- "WRh1c1": 1066,
1069
- "WKf4e3": 1067,
1070
- "WNh4g6(x)": 1068,
1071
- "BNc5e4(x)": 1069,
1072
- "WKd1e1": 1070,
1073
- "BRc8c2(x)": 1071,
1074
- "WKe2e1": 1072,
1075
- "BNd4e6": 1073,
1076
- "WKf3f2": 1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1077
  }
 
1
+ {
2
+ "[PAD]": 0,
3
+ "[BOS]": 1,
4
+ "[EOS]": 2,
5
+ "[UNK]": 3,
6
+ "g1f3": 4,
7
+ "g8f6": 5,
8
+ "e2e4": 6,
9
+ "d2d4": 7,
10
+ "e1g1": 8,
11
+ "b1c3": 9,
12
+ "b8c6": 10,
13
+ "e8g8": 11,
14
+ "d7d5": 12,
15
+ "e7e6": 13,
16
+ "e7e5": 14,
17
+ "d7d6": 15,
18
+ "c2c3": 16,
19
+ "g7g6": 17,
20
+ "h2h3": 18,
21
+ "c7c6": 19,
22
+ "h7h6": 20,
23
+ "c7c5": 21,
24
+ "a7a6": 22,
25
+ "f8e7": 23,
26
+ "e2e3": 24,
27
+ "g2g3": 25,
28
+ "c2c4": 26,
29
+ "d2d3": 27,
30
+ "f3e5": 28,
31
+ "a2a3": 29,
32
+ "f1e1": 30,
33
+ "f7f6": 31,
34
+ "f2f4": 32,
35
+ "e4e5": 33,
36
+ "b7b6": 34,
37
+ "b8d7": 35,
38
+ "f1c4": 36,
39
+ "f2f3": 37,
40
+ "b2b3": 38,
41
+ "b1d2": 39,
42
+ "e4d5": 40,
43
+ "f1e2": 41,
44
+ "f1d3": 42,
45
+ "f8e8": 43,
46
+ "b7b5": 44,
47
+ "f6e4": 45,
48
+ "f8g7": 46,
49
+ "c1g5": 47,
50
+ "c5d4": 48,
51
+ "c1e3": 49,
52
+ "c8g4": 50,
53
+ "f7f5": 51,
54
+ "c8b7": 52,
55
+ "c8d7": 53,
56
+ "f3d4": 54,
57
+ "b2b4": 55,
58
+ "d4e5": 56,
59
+ "d1d2": 57,
60
+ "c1f4": 58,
61
+ "d4d5": 59,
62
+ "c3d5": 60,
63
+ "c6d4": 61,
64
+ "a2a4": 62,
65
+ "g2g4": 63,
66
+ "c4d5": 64,
67
+ "f6d5": 65,
68
+ "e6d5": 66,
69
+ "e5d4": 67,
70
+ "d6e5": 68,
71
+ "f8d6": 69,
72
+ "e6e5": 70,
73
+ "a7a5": 71,
74
+ "d1e2": 72,
75
+ "h2h4": 73,
76
+ "d8d7": 74,
77
+ "d5e4": 75,
78
+ "d8e7": 76,
79
+ "c8e6": 77,
80
+ "a8c8": 78,
81
+ "a1d1": 79,
82
+ "c1d2": 80,
83
+ "c6e5": 81,
84
+ "f8c5": 82,
85
+ "c3e4": 83,
86
+ "e1c1": 84,
87
+ "h7h5": 85,
88
+ "e7f6": 86,
89
+ "c6c5": 87,
90
+ "g8e7": 88,
91
+ "f1g2": 89,
92
+ "a8d8": 90,
93
+ "b7c6": 91,
94
+ "c8f5": 92,
95
+ "c1b2": 93,
96
+ "e5e4": 94,
97
+ "d6d5": 95,
98
+ "g7f6": 96,
99
+ "f3g5": 97,
100
+ "g1h1": 98,
101
+ "a1c1": 99,
102
+ "d1f3": 100,
103
+ "d5d4": 101,
104
+ "g8g7": 102,
105
+ "f4e5": 103,
106
+ "h4h5": 104,
107
+ "g4f3": 105,
108
+ "e8c8": 106,
109
+ "b2c3": 107,
110
+ "c6d5": 108,
111
+ "d8c7": 109,
112
+ "g5f6": 110,
113
+ "g7g5": 111,
114
+ "c3c4": 112,
115
+ "e3e4": 113,
116
+ "g8h8": 114,
117
+ "f1b5": 115,
118
+ "c3d4": 116,
119
+ "e3d4": 117,
120
+ "g4g5": 118,
121
+ "f4f5": 119,
122
+ "f8b4": 120,
123
+ "a8b8": 121,
124
+ "d3e4": 122,
125
+ "e2f3": 123,
126
+ "g2f3": 124,
127
+ "b5b4": 125,
128
+ "d3d4": 126,
129
+ "f3f4": 127,
130
+ "f6f5": 128,
131
+ "h3h4": 129,
132
+ "a1b1": 130,
133
+ "g6g5": 131,
134
+ "g1g2": 132,
135
+ "g3g4": 133,
136
+ "a5a4": 134,
137
+ "d8f6": 135,
138
+ "d8d5": 136,
139
+ "c5c4": 137,
140
+ "d1c2": 138,
141
+ "c4c5": 139,
142
+ "h5h4": 140,
143
+ "f6e5": 141,
144
+ "f6g4": 142,
145
+ "d5c4": 143,
146
+ "g5g4": 144,
147
+ "f7e6": 145,
148
+ "f5f4": 146,
149
+ "d7c6": 147,
150
+ "b4b5": 148,
151
+ "h6h5": 149,
152
+ "a4a5": 150,
153
+ "d4c5": 151,
154
+ "a1e1": 152,
155
+ "b4c3": 153,
156
+ "d1d3": 154,
157
+ "f8d8": 155,
158
+ "b5c6": 156,
159
+ "f1d1": 157,
160
+ "a6a5": 158,
161
+ "g1h2": 159,
162
+ "d7e5": 160,
163
+ "e7d6": 161,
164
+ "f5e4": 162,
165
+ "g1e2": 163,
166
+ "e8e7": 164,
167
+ "d8b6": 165,
168
+ "d1d4": 166,
169
+ "f6d7": 167,
170
+ "c4b3": 168,
171
+ "g8h7": 169,
172
+ "f2e3": 170,
173
+ "a8e8": 171,
174
+ "g8f8": 172,
175
+ "d2f3": 173,
176
+ "e1e2": 174,
177
+ "e5f6": 175,
178
+ "g1f1": 176,
179
+ "f3e4": 177,
180
+ "g4h5": 178,
181
+ "b6b5": 179,
182
+ "d7f6": 180,
183
+ "d1e1": 181,
184
+ "c3e2": 182,
185
+ "e8d8": 183,
186
+ "e2d3": 184,
187
+ "h8g8": 185,
188
+ "d8e8": 186,
189
+ "e1d1": 187,
190
+ "h5g6": 188,
191
+ "g5h4": 189,
192
+ "e5f4": 190,
193
+ "e6f5": 191,
194
+ "b3b4": 192,
195
+ "g1f2": 193,
196
+ "d8d6": 194,
197
+ "h1g1": 195,
198
+ "h6g5": 196,
199
+ "d3c4": 197,
200
+ "g8f7": 198,
201
+ "d2c3": 199,
202
+ "c3b5": 200,
203
+ "g7h6": 201,
204
+ "a3a4": 202,
205
+ "d2e4": 203,
206
+ "e3f4": 204,
207
+ "f6h5": 205,
208
+ "f8f7": 206,
209
+ "f7g6": 207,
210
+ "e4f5": 208,
211
+ "c6e7": 209,
212
+ "f4g3": 210,
213
+ "h7g6": 211,
214
+ "c1b1": 212,
215
+ "h3g4": 213,
216
+ "d6c5": 214,
217
+ "e8f8": 215,
218
+ "f1f2": 216,
219
+ "g4f5": 217,
220
+ "e5e6": 218,
221
+ "g5f4": 219,
222
+ "h4g3": 220,
223
+ "d5d6": 221,
224
+ "d1b3": 222,
225
+ "e5d6": 223,
226
+ "f5g6": 224,
227
+ "c8b8": 225,
228
+ "f3d2": 226,
229
+ "c6b4": 227,
230
+ "c4b5": 228,
231
+ "f2g3": 229,
232
+ "e7f5": 230,
233
+ "f4g5": 231,
234
+ "f3h4": 232,
235
+ "h2g3": 233,
236
+ "e1f1": 234,
237
+ "g6f5": 235,
238
+ "h5h6": 236,
239
+ "b5c4": 237,
240
+ "d7c5": 238,
241
+ "d4d3": 239,
242
+ "d5c6": 240,
243
+ "g2h3": 241,
244
+ "c7d6": 242,
245
+ "f6g5": 243,
246
+ "c5b6": 244,
247
+ "d8c8": 245,
248
+ "d2e3": 246,
249
+ "c2d3": 247,
250
+ "c4d3": 248,
251
+ "e4e3": 249,
252
+ "f3g4": 250,
253
+ "d7e6": 251,
254
+ "d4c3": 252,
255
+ "h4g5": 253,
256
+ "e4f3": 254,
257
+ "h5g4": 255,
258
+ "d1d8": 256,
259
+ "e4f6": 257,
260
+ "c6a5": 258,
261
+ "a6b5": 259,
262
+ "d1c1": 260,
263
+ "e7g6": 261,
264
+ "b4c5": 262,
265
+ "f3g3": 263,
266
+ "d5e6": 264,
267
+ "g3f4": 265,
268
+ "d8d1": 266,
269
+ "d3e2": 267,
270
+ "d7b6": 268,
271
+ "a4a3": 269,
272
+ "e8f7": 270,
273
+ "a3b4": 271,
274
+ "e5f3": 272,
275
+ "f5g4": 273,
276
+ "f5f6": 274,
277
+ "d4c6": 275,
278
+ "b3c4": 276,
279
+ "e2g3": 277,
280
+ "h4h3": 278,
281
+ "e8d7": 279,
282
+ "b6c5": 280,
283
+ "f4f3": 281,
284
+ "d6e7": 282,
285
+ "d2c4": 283,
286
+ "g5g6": 284,
287
+ "d1h5": 285,
288
+ "d8a5": 286,
289
+ "c5b4": 287,
290
+ "a4b5": 288,
291
+ "c7b6": 289,
292
+ "f4e3": 290,
293
+ "a5a6": 291,
294
+ "b5a4": 292,
295
+ "e2d2": 293,
296
+ "c2b3": 294,
297
+ "c5c6": 295,
298
+ "e5c6": 296,
299
+ "f5e6": 297,
300
+ "a5b4": 298,
301
+ "f6g6": 299,
302
+ "e7d7": 300,
303
+ "g4g3": 301,
304
+ "d6d7": 302,
305
+ "d3c2": 303,
306
+ "e7g5": 304,
307
+ "d3d2": 305,
308
+ "c5d6": 306,
309
+ "d4f3": 307,
310
+ "c8c7": 308,
311
+ "c4c3": 309,
312
+ "a1f1": 310,
313
+ "e2f4": 311,
314
+ "f8g8": 312,
315
+ "c1c2": 313,
316
+ "a8f8": 314,
317
+ "d8d4": 315,
318
+ "g6h5": 316,
319
+ "d4e3": 317,
320
+ "c3a4": 318,
321
+ "c6b5": 319,
322
+ "a4b3": 320,
323
+ "e4d3": 321,
324
+ "f1g1": 322,
325
+ "f8c8": 323,
326
+ "b4b3": 324,
327
+ "g3h4": 325,
328
+ "e3d2": 326,
329
+ "c3b4": 327,
330
+ "e7c5": 328,
331
+ "d1d5": 329,
332
+ "h6g7": 330,
333
+ "f6e7": 331,
334
+ "f3e2": 332,
335
+ "d5f6": 333,
336
+ "d2b3": 334,
337
+ "b5b6": 335,
338
+ "d7e7": 336,
339
+ "d7c7": 337,
340
+ "h1h2": 338,
341
+ "e6e7": 339,
342
+ "a5b6": 340,
343
+ "c8d8": 341,
344
+ "f7e7": 342,
345
+ "e3e2": 343,
346
+ "e1d2": 344,
347
+ "f3e3": 345,
348
+ "d2e2": 346,
349
+ "e7f7": 347,
350
+ "h8h7": 348,
351
+ "c6c7": 349,
352
+ "a2b3": 350,
353
+ "e7d5": 351,
354
+ "e1e3": 352,
355
+ "b7a6": 353,
356
+ "e5c4": 354,
357
+ "c1d1": 355,
358
+ "f1c1": 356,
359
+ "b4a5": 357,
360
+ "g5e7": 358,
361
+ "h1e1": 359,
362
+ "b3c2": 360,
363
+ "e4c3": 361,
364
+ "e2f2": 362,
365
+ "e6d7": 363,
366
+ "d2c2": 364,
367
+ "g5h6": 365,
368
+ "f6f7": 366,
369
+ "h8f8": 367,
370
+ "b2a3": 368,
371
+ "e5d7": 369,
372
+ "f3f2": 370,
373
+ "d5c3": 371,
374
+ "h6h7": 372,
375
+ "c8a6": 373,
376
+ "f6g7": 374,
377
+ "g7f8": 375,
378
+ "a3a2": 376,
379
+ "h8e8": 377,
380
+ "e4d6": 378,
381
+ "d8h4": 379,
382
+ "e2g4": 380,
383
+ "d1g4": 381,
384
+ "f2e2": 382,
385
+ "d6c7": 383,
386
+ "d1d7": 384,
387
+ "c3c2": 385,
388
+ "a6a7": 386,
389
+ "h7h8": 387,
390
+ "f1f3": 388,
391
+ "b6c7": 389,
392
+ "e2d4": 390,
393
+ "e2c4": 391,
394
+ "e5d3": 392,
395
+ "f7g7": 393,
396
+ "e7f8": 394,
397
+ "e7d8": 395,
398
+ "d8g5": 396,
399
+ "d1a4": 397,
400
+ "e4c5": 398,
401
+ "a7b6": 399,
402
+ "d3f5": 400,
403
+ "b6b7": 401,
404
+ "c7d7": 402,
405
+ "e1f2": 403,
406
+ "e3f3": 404,
407
+ "e3c5": 405,
408
+ "c4e6": 406,
409
+ "f6e6": 407,
410
+ "g7e5": 408,
411
+ "c7b7": 409,
412
+ "g5e3": 410,
413
+ "e3f2": 411,
414
+ "e6f7": 412,
415
+ "d4f5": 413,
416
+ "g6g7": 414,
417
+ "d8f8": 415,
418
+ "f4d6": 416,
419
+ "g5e6": 417,
420
+ "e4g5": 418,
421
+ "g3f3": 419,
422
+ "f8f6": 420,
423
+ "h3h2": 421,
424
+ "h2h1": 422,
425
+ "e1e4": 423,
426
+ "e8e1": 424,
427
+ "d5f4": 425,
428
+ "e8e6": 426,
429
+ "g7g8": 427,
430
+ "e7c6": 428,
431
+ "b8a6": 429,
432
+ "d8d2": 430,
433
+ "e1e5": 431,
434
+ "d1f1": 432,
435
+ "e5g4": 433,
436
+ "e3d3": 434,
437
+ "d3e3": 435,
438
+ "e3g5": 436,
439
+ "e1e8": 437,
440
+ "e5g6": 438,
441
+ "b7d5": 439,
442
+ "d6f4": 440,
443
+ "f5d3": 441,
444
+ "b3a4": 442,
445
+ "e7e8": 443,
446
+ "h1f1": 444,
447
+ "g7f7": 445,
448
+ "b3b2": 446,
449
+ "g6f6": 447,
450
+ "g8h6": 448,
451
+ "d1d6": 449,
452
+ "e4g3": 450,
453
+ "f2g2": 451,
454
+ "e2d1": 452,
455
+ "c2d2": 453,
456
+ "g4h3": 454,
457
+ "d7d8": 455,
458
+ "a2a1": 456,
459
+ "f7f8": 457,
460
+ "g3g2": 458,
461
+ "h3g2": 459,
462
+ "c2b2": 460,
463
+ "g2f1": 461,
464
+ "e1e7": 462,
465
+ "d7e8": 463,
466
+ "b5d7": 464,
467
+ "e6f6": 465,
468
+ "e6d6": 466,
469
+ "g6f7": 467,
470
+ "b6a5": 468,
471
+ "b1c1": 469,
472
+ "d6c6": 470,
473
+ "d3b5": 471,
474
+ "g5f3": 472,
475
+ "d2f4": 473,
476
+ "c5e3": 474,
477
+ "f3g2": 475,
478
+ "b8c8": 476,
479
+ "d3c3": 477,
480
+ "g3f2": 478,
481
+ "a8a7": 479,
482
+ "e8e5": 480,
483
+ "b8b7": 481,
484
+ "c4f7": 482,
485
+ "d5e7": 483,
486
+ "b1a3": 484,
487
+ "f2f1": 485,
488
+ "g4e2": 486,
489
+ "d6e6": 487,
490
+ "c7c8": 488,
491
+ "a7a8": 489,
492
+ "h1d1": 490,
493
+ "e2f1": 491,
494
+ "h8d8": 492,
495
+ "e4d2": 493,
496
+ "e7h4": 494,
497
+ "g4e6": 495,
498
+ "g2g1": 496,
499
+ "d8d3": 497,
500
+ "g2f2": 498,
501
+ "d5e3": 499,
502
+ "d2d1": 500,
503
+ "g4e3": 501,
504
+ "e2e1": 502,
505
+ "b7e4": 503,
506
+ "d7b5": 504,
507
+ "a1a2": 505,
508
+ "d4e6": 506,
509
+ "e7b4": 507,
510
+ "b1b2": 508,
511
+ "h8g7": 509,
512
+ "h7g8": 510,
513
+ "d3g6": 511,
514
+ "g4f6": 512,
515
+ "e2c3": 513,
516
+ "h5f4": 514,
517
+ "g7h7": 515,
518
+ "e8e2": 516,
519
+ "c6d7": 517,
520
+ "d7f5": 518,
521
+ "f3h2": 519,
522
+ "c4e5": 520,
523
+ "d4e2": 521,
524
+ "g5e4": 522,
525
+ "h7g7": 523,
526
+ "h1g2": 524,
527
+ "e1e6": 525,
528
+ "b5d6": 526,
529
+ "g5f7": 527,
530
+ "h2g2": 528,
531
+ "c2c1": 529,
532
+ "h2g1": 530,
533
+ "g4e5": 531,
534
+ "e6c4": 532,
535
+ "e2b5": 533,
536
+ "d2g5": 534,
537
+ "c5e4": 535,
538
+ "f4g4": 536,
539
+ "b7c8": 537,
540
+ "b8a8": 538,
541
+ "e2h5": 539,
542
+ "f7e8": 540,
543
+ "h5f3": 541,
544
+ "f4e4": 542,
545
+ "c1a3": 543,
546
+ "d5e5": 544,
547
+ "b2a2": 545,
548
+ "c1h6": 546,
549
+ "d5d8": 547,
550
+ "b7b8": 548,
551
+ "e4f4": 549,
552
+ "f7g8": 550,
553
+ "d2e1": 551,
554
+ "b4d2": 552,
555
+ "a5c4": 553,
556
+ "e3h6": 554,
557
+ "h4f5": 555,
558
+ "g3f5": 556,
559
+ "g4f4": 557,
560
+ "e8e4": 558,
561
+ "g4h4": 559,
562
+ "g3h3": 560,
563
+ "d7c8": 561,
564
+ "b1a1": 562,
565
+ "e5d5": 563,
566
+ "c2e4": 564,
567
+ "e5f5": 565,
568
+ "d4e4": 566,
569
+ "g7d4": 567,
570
+ "b2b1": 568,
571
+ "f5g5": 569,
572
+ "c8c2": 570,
573
+ "f5e5": 571,
574
+ "b5d3": 572,
575
+ "b2d4": 573,
576
+ "f6d4": 574,
577
+ "g5f5": 575,
578
+ "f6e8": 576,
579
+ "c4e2": 577,
580
+ "g2h2": 578,
581
+ "e6g4": 579,
582
+ "b6c4": 580,
583
+ "d5c5": 581,
584
+ "e4d4": 582,
585
+ "d4c4": 583,
586
+ "d2b4": 584,
587
+ "b7a7": 585,
588
+ "b6c6": 586,
589
+ "f5d4": 587,
590
+ "f8f5": 588,
591
+ "c7e5": 589,
592
+ "c3d2": 590,
593
+ "g6h6": 591,
594
+ "d7f8": 592,
595
+ "d4b5": 593,
596
+ "d2f1": 594,
597
+ "g6f4": 595,
598
+ "d7g4": 596,
599
+ "g7h8": 597,
600
+ "d5b6": 598,
601
+ "c1c7": 599,
602
+ "c5d3": 600,
603
+ "c6b7": 601,
604
+ "f8b8": 602,
605
+ "h5g5": 603,
606
+ "c6b6": 604,
607
+ "b2c2": 605,
608
+ "h4g4": 606,
609
+ "b3d5": 607,
610
+ "b7c7": 608,
611
+ "f6h7": 609,
612
+ "g2e4": 610,
613
+ "c7d8": 611,
614
+ "h3g3": 612,
615
+ "f3d5": 613,
616
+ "b6d5": 614,
617
+ "c5e7": 615,
618
+ "c4e3": 616,
619
+ "d2c1": 617,
620
+ "b6d4": 618,
621
+ "b7f3": 619,
622
+ "b5c3": 620,
623
+ "d6g3": 621,
624
+ "c6d6": 622,
625
+ "e5f7": 623,
626
+ "d6b4": 624,
627
+ "h6g6": 625,
628
+ "g3e4": 626,
629
+ "c3b2": 627,
630
+ "d8b8": 628,
631
+ "f5e3": 629,
632
+ "c5e6": 630,
633
+ "c4d6": 631,
634
+ "c3b3": 632,
635
+ "g5h5": 633,
636
+ "b4d3": 634,
637
+ "g6e5": 635,
638
+ "h5f6": 636,
639
+ "g1h3": 637,
640
+ "b4c6": 638,
641
+ "a4c5": 639,
642
+ "g6h7": 640,
643
+ "c3d3": 641,
644
+ "f1f4": 642,
645
+ "g3e5": 643,
646
+ "d5c7": 644,
647
+ "e8e3": 645,
648
+ "b4d6": 646,
649
+ "d4b3": 647,
650
+ "d4c2": 648,
651
+ "c5f2": 649,
652
+ "h4f6": 650,
653
+ "b3c5": 651,
654
+ "b8b2": 652,
655
+ "b2e5": 653,
656
+ "a6b7": 654,
657
+ "f2e1": 655,
658
+ "f1b1": 656,
659
+ "d5b4": 657,
660
+ "b3c3": 658,
661
+ "d1b1": 659,
662
+ "b2c1": 660,
663
+ "c8c1": 661,
664
+ "d1g1": 662,
665
+ "g3h2": 663,
666
+ "b4a3": 664,
667
+ "f3e1": 665,
668
+ "b8d8": 666,
669
+ "c1c3": 667,
670
+ "c8h3": 668,
671
+ "b5c7": 669,
672
+ "c7e7": 670,
673
+ "b5a6": 671,
674
+ "c8c6": 672,
675
+ "c4d4": 673,
676
+ "d2h6": 674,
677
+ "c8c3": 675,
678
+ "c8e8": 676,
679
+ "f5e7": 677,
680
+ "e4f2": 678,
681
+ "f3h5": 679,
682
+ "a5c7": 680,
683
+ "b1b7": 681,
684
+ "d8a8": 682,
685
+ "c8c4": 683,
686
+ "c2e2": 684,
687
+ "c1e1": 685,
688
+ "f4d5": 686,
689
+ "b6b2": 687,
690
+ "d1a1": 688,
691
+ "c4b4": 689,
692
+ "g4d7": 690,
693
+ "d3h7": 691,
694
+ "f5d6": 692,
695
+ "g6e4": 693,
696
+ "h6f5": 694,
697
+ "b3d4": 695,
698
+ "c2d1": 696,
699
+ "a2b2": 697,
700
+ "b2f6": 698,
701
+ "b1d1": 699,
702
+ "b4e7": 700,
703
+ "c3d1": 701,
704
+ "f1f8": 702,
705
+ "d8g8": 703,
706
+ "f1f7": 704,
707
+ "b6a6": 705,
708
+ "c5b5": 706,
709
+ "d4f6": 707,
710
+ "c5d5": 708,
711
+ "d4d1": 709,
712
+ "d5a5": 710,
713
+ "c2b1": 711,
714
+ "c4a2": 712,
715
+ "f4e6": 713,
716
+ "a3b2": 714,
717
+ "h4f3": 715,
718
+ "f8f4": 716,
719
+ "f2g1": 717,
720
+ "f4d2": 718,
721
+ "f3h3": 719,
722
+ "b7a8": 720,
723
+ "e3b6": 721,
724
+ "f1f5": 722,
725
+ "g5d2": 723,
726
+ "c1c8": 724,
727
+ "c6d8": 725,
728
+ "b4c2": 726,
729
+ "f4d3": 727,
730
+ "g2d5": 728,
731
+ "a7b7": 729,
732
+ "c7b8": 730,
733
+ "h5g3": 731,
734
+ "f3d1": 732,
735
+ "f1f6": 733,
736
+ "e7c7": 734,
737
+ "d5f3": 735,
738
+ "b3a3": 736,
739
+ "b1a2": 737,
740
+ "c6e4": 738,
741
+ "h4g6": 739,
742
+ "d7f7": 740,
743
+ "d2f2": 741,
744
+ "g2h1": 742,
745
+ "g4f2": 743,
746
+ "e2c2": 744,
747
+ "d3f3": 745,
748
+ "c5d7": 746,
749
+ "b2a1": 747,
750
+ "a5c6": 748,
751
+ "a4c2": 749,
752
+ "h4e7": 750,
753
+ "f8a8": 751,
754
+ "e3g3": 752,
755
+ "c1c6": 753,
756
+ "a5b5": 754,
757
+ "f4c7": 755,
758
+ "f6h4": 756,
759
+ "f8h6": 757,
760
+ "d4d2": 758,
761
+ "d7b7": 759,
762
+ "e5g3": 760,
763
+ "b5d4": 761,
764
+ "b5e2": 762,
765
+ "a8g8": 763,
766
+ "f3f6": 764,
767
+ "f8f2": 765,
768
+ "d2b2": 766,
769
+ "b1c2": 767,
770
+ "h2g4": 768,
771
+ "f5c2": 769,
772
+ "e5g7": 770,
773
+ "f8f1": 771,
774
+ "a1g1": 772,
775
+ "a8a6": 773,
776
+ "f8f3": 774,
777
+ "f1a1": 775,
778
+ "b5c5": 776,
779
+ "f8h8": 777,
780
+ "b3b7": 778,
781
+ "g7c3": 779,
782
+ "c8c5": 780,
783
+ "a4b4": 781,
784
+ "a6c5": 782,
785
+ "b8c7": 783,
786
+ "e4e2": 784,
787
+ "f4e2": 785,
788
+ "b4c4": 786,
789
+ "e4c6": 787,
790
+ "f4h6": 788,
791
+ "b8a7": 789,
792
+ "d6e4": 790,
793
+ "b3a2": 791,
794
+ "b5a5": 792,
795
+ "e4g6": 793,
796
+ "d7h3": 794,
797
+ "f3c6": 795,
798
+ "f3d3": 796,
799
+ "a3b3": 797,
800
+ "f6b2": 798,
801
+ "e2e5": 799,
802
+ "d7a4": 800,
803
+ "d6f5": 801,
804
+ "b4d5": 802,
805
+ "f3b7": 803,
806
+ "b6d7": 804,
807
+ "d5d7": 805,
808
+ "c3e5": 806,
809
+ "f6f3": 807,
810
+ "b3e6": 808,
811
+ "c1c5": 809,
812
+ "c2f5": 810,
813
+ "d5b7": 811,
814
+ "c6b8": 812,
815
+ "d5b3": 813,
816
+ "e6g6": 814,
817
+ "h5e2": 815,
818
+ "e7g7": 816,
819
+ "e5c3": 817,
820
+ "a4c3": 818,
821
+ "a6b6": 819,
822
+ "b1e1": 820,
823
+ "a3c4": 821,
824
+ "d1h1": 822,
825
+ "e3f5": 823,
826
+ "e6h3": 824,
827
+ "c8f8": 825,
828
+ "g3h5": 826,
829
+ "c1c4": 827,
830
+ "g5d8": 828,
831
+ "b4a4": 829,
832
+ "g6e7": 830,
833
+ "f5h4": 831,
834
+ "f6d8": 832,
835
+ "f5d7": 833,
836
+ "d4b2": 834,
837
+ "g3e2": 835,
838
+ "c4d2": 836,
839
+ "a6c4": 837,
840
+ "a1a3": 838,
841
+ "b8e8": 839,
842
+ "f3f7": 840,
843
+ "f5g3": 841,
844
+ "e5e7": 842,
845
+ "a1a7": 843,
846
+ "f1h1": 844,
847
+ "b1b3": 845,
848
+ "f1h3": 846,
849
+ "d3f4": 847,
850
+ "c7f4": 848,
851
+ "d8h8": 849,
852
+ "a4c6": 850,
853
+ "b8b6": 851,
854
+ "g4h6": 852,
855
+ "d5f7": 853,
856
+ "e4g4": 854,
857
+ "e6f4": 855,
858
+ "f5h6": 856,
859
+ "a5c3": 857,
860
+ "c6f3": 858,
861
+ "e3d5": 859,
862
+ "d4b6": 860,
863
+ "d6f6": 861,
864
+ "e4c2": 862,
865
+ "a2b1": 863,
866
+ "b6a7": 864,
867
+ "c8a8": 865,
868
+ "c2a2": 866,
869
+ "f6h6": 867,
870
+ "f6c3": 868,
871
+ "e6b3": 869,
872
+ "g4d1": 870,
873
+ "b6e3": 871,
874
+ "c7f7": 872,
875
+ "a8a2": 873,
876
+ "c7a7": 874,
877
+ "d3a6": 875,
878
+ "e5g5": 876,
879
+ "h6g4": 877,
880
+ "e4b7": 878,
881
+ "f6f4": 879,
882
+ "d6d8": 880,
883
+ "a5b3": 881,
884
+ "d3e5": 882,
885
+ "f3f5": 883,
886
+ "d2a5": 884,
887
+ "e2e6": 885,
888
+ "b6d8": 886,
889
+ "d6h2": 887,
890
+ "h4f2": 888,
891
+ "h8c8": 889,
892
+ "f6g8": 890,
893
+ "e3a7": 891,
894
+ "c1a1": 892,
895
+ "f4h5": 893,
896
+ "h6e3": 894,
897
+ "d3b1": 895,
898
+ "e1b1": 896,
899
+ "c1f1": 897,
900
+ "d3g3": 898,
901
+ "c2a4": 899,
902
+ "c7d5": 900,
903
+ "g3d6": 901,
904
+ "d6c4": 902,
905
+ "e6d4": 903,
906
+ "e5c7": 904,
907
+ "d4f2": 905,
908
+ "d6b6": 906,
909
+ "h6f4": 907,
910
+ "c5a7": 908,
911
+ "h3g5": 909,
912
+ "b4b2": 910,
913
+ "h3f4": 911,
914
+ "h7g5": 912,
915
+ "f4h3": 913,
916
+ "c5b3": 914,
917
+ "d4g7": 915,
918
+ "d3b3": 916,
919
+ "c4b6": 917,
920
+ "g7b2": 918,
921
+ "g6h4": 919,
922
+ "f4g6": 920,
923
+ "e7e4": 921,
924
+ "e2g2": 922,
925
+ "h5f7": 923,
926
+ "e5b2": 924,
927
+ "a8a1": 925,
928
+ "g6d3": 926,
929
+ "g5h3": 927,
930
+ "a5c5": 928,
931
+ "d3f1": 929,
932
+ "c2f2": 930,
933
+ "f1g3": 931,
934
+ "b3d2": 932,
935
+ "d3c5": 933,
936
+ "f4h2": 934,
937
+ "c7a5": 935,
938
+ "b6b4": 936,
939
+ "d4f4": 937,
940
+ "a6b4": 938,
941
+ "b7g2": 939,
942
+ "a1a8": 940,
943
+ "a1a4": 941,
944
+ "h8h6": 942,
945
+ "d5f5": 943,
946
+ "d3d1": 944,
947
+ "h1h3": 945,
948
+ "e3g4": 946,
949
+ "a3c5": 947,
950
+ "b5b7": 948,
951
+ "b2g7": 949,
952
+ "c2e3": 950,
953
+ "e8b8": 951,
954
+ "c2a1": 952,
955
+ "a6c7": 953,
956
+ "d2d5": 954,
957
+ "f5h5": 955,
958
+ "h4f4": 956,
959
+ "a6d3": 957,
960
+ "e4g2": 958,
961
+ "g8g6": 959,
962
+ "c6a7": 960,
963
+ "c7a8": 961,
964
+ "e7b7": 962,
965
+ "a8a5": 963,
966
+ "c7e6": 964,
967
+ "e2b2": 965,
968
+ "f6d6": 966,
969
+ "g2c6": 967,
970
+ "c2g6": 968,
971
+ "e6g5": 969,
972
+ "f5h3": 970,
973
+ "h5e5": 971,
974
+ "f4f6": 972,
975
+ "a4c4": 973,
976
+ "e1a1": 974,
977
+ "e3c3": 975,
978
+ "a8h8": 976,
979
+ "c2d4": 977,
980
+ "a7c7": 978,
981
+ "g5g3": 979,
982
+ "f4h4": 980,
983
+ "h1c1": 981,
984
+ "b3d1": 982,
985
+ "c3f6": 983,
986
+ "d3d5": 984,
987
+ "d7d4": 985,
988
+ "a4b6": 986,
989
+ "b6d6": 987,
990
+ "e3c4": 988,
991
+ "f6f2": 989,
992
+ "b8b5": 990,
993
+ "a1h1": 991,
994
+ "a7b8": 992,
995
+ "e6c5": 993,
996
+ "e3c1": 994,
997
+ "e6a2": 995,
998
+ "e7a3": 996,
999
+ "c3b1": 997,
1000
+ "e5e3": 998,
1001
+ "d6f8": 999,
1002
+ "e3e5": 1000,
1003
+ "d7a7": 1001,
1004
+ "c3e3": 1002,
1005
+ "e5c5": 1003,
1006
+ "a1a6": 1004,
1007
+ "e5e2": 1005,
1008
+ "c5c7": 1006,
1009
+ "g3e3": 1007,
1010
+ "d4d8": 1008,
1011
+ "e4c4": 1009,
1012
+ "c3a3": 1010,
1013
+ "e6c6": 1011,
1014
+ "c4b2": 1012,
1015
+ "d5d3": 1013,
1016
+ "h6f7": 1014,
1017
+ "f4f2": 1015,
1018
+ "d2a2": 1016,
1019
+ "d4b4": 1017,
1020
+ "g1g3": 1018,
1021
+ "h5f5": 1019,
1022
+ "c4c2": 1020,
1023
+ "d5b5": 1021,
1024
+ "h3f5": 1022,
1025
+ "a8a4": 1023,
1026
+ "f7d7": 1024,
1027
+ "c7c4": 1025,
1028
+ "d6b7": 1026,
1029
+ "d6d4": 1027,
1030
+ "c4a6": 1028,
1031
+ "a3b5": 1029,
1032
+ "e7c8": 1030,
1033
+ "e2a6": 1031,
1034
+ "g4e4": 1032,
1035
+ "b3b5": 1033,
1036
+ "e3e1": 1034,
1037
+ "f5f3": 1035,
1038
+ "e6e8": 1036,
1039
+ "g5e5": 1037,
1040
+ "g4g6": 1038,
1041
+ "f2d2": 1039,
1042
+ "h5h7": 1040,
1043
+ "e4h4": 1041,
1044
+ "e6f8": 1042,
1045
+ "h8h5": 1043,
1046
+ "e4e6": 1044,
1047
+ "b8b4": 1045,
1048
+ "b7d7": 1046,
1049
+ "c3a2": 1047,
1050
+ "d5g2": 1048,
1051
+ "d4d6": 1049,
1052
+ "h2f3": 1050,
1053
+ "b1b4": 1051,
1054
+ "b3d3": 1052,
1055
+ "f2d4": 1053,
1056
+ "f5f7": 1054,
1057
+ "a2c2": 1055,
1058
+ "g6e6": 1056,
1059
+ "e1g3": 1057,
1060
+ "c7b5": 1058,
1061
+ "c5a4": 1059,
1062
+ "h3e6": 1060,
1063
+ "e5e8": 1061,
1064
+ "b8f8": 1062,
1065
+ "a3c2": 1063,
1066
+ "e7e2": 1064,
1067
+ "h6f8": 1065,
1068
+ "h1h5": 1066,
1069
+ "a8a3": 1067,
1070
+ "g3g5": 1068,
1071
+ "a8b7": 1069,
1072
+ "b1b5": 1070,
1073
+ "a3d6": 1071,
1074
+ "c4a5": 1072,
1075
+ "e8a8": 1073,
1076
+ "c7c3": 1074,
1077
+ "g2b7": 1075,
1078
+ "c6e6": 1076,
1079
+ "c6a6": 1077,
1080
+ "b8b3": 1078,
1081
+ "a5d8": 1079,
1082
+ "d2d8": 1080,
1083
+ "d5d2": 1081,
1084
+ "a1a5": 1082,
1085
+ "b2d2": 1083,
1086
+ "d6f7": 1084,
1087
+ "g1g7": 1085,
1088
+ "c7g3": 1086,
1089
+ "b3f7": 1087,
1090
+ "a5a2": 1088,
1091
+ "c5e5": 1089,
1092
+ "a1b2": 1090,
1093
+ "a5d2": 1091,
1094
+ "f3c3": 1092,
1095
+ "e6e4": 1093,
1096
+ "d5d1": 1094,
1097
+ "c5b7": 1095,
1098
+ "e8f6": 1096,
1099
+ "f4d4": 1097,
1100
+ "g4g7": 1098,
1101
+ "h3f3": 1099,
1102
+ "d4d7": 1100,
1103
+ "e2e7": 1101,
1104
+ "f7d5": 1102,
1105
+ "e8g6": 1103,
1106
+ "f7e5": 1104,
1107
+ "e5h5": 1105,
1108
+ "e5e1": 1106,
1109
+ "a3c3": 1107,
1110
+ "f8g6": 1108,
1111
+ "e7e3": 1109,
1112
+ "c4c7": 1110,
1113
+ "d2d6": 1111,
1114
+ "h4e4": 1112,
1115
+ "e8h8": 1113,
1116
+ "a6c6": 1114,
1117
+ "c5a5": 1115,
1118
+ "d7g7": 1116,
1119
+ "e3f1": 1117,
1120
+ "f7h7": 1118,
1121
+ "c6a4": 1119,
1122
+ "h1h4": 1120,
1123
+ "g6g4": 1121,
1124
+ "d4a4": 1122,
1125
+ "d6a3": 1123,
1126
+ "b8b1": 1124,
1127
+ "f3g1": 1125,
1128
+ "d2d7": 1126,
1129
+ "d6g6": 1127,
1130
+ "f2h4": 1128,
1131
+ "f5d5": 1129,
1132
+ "c6a8": 1130,
1133
+ "c3a5": 1131,
1134
+ "f8e6": 1132,
1135
+ "c4e4": 1133,
1136
+ "c7c2": 1134,
1137
+ "a4d7": 1135,
1138
+ "h5h3": 1136,
1139
+ "b7c5": 1137,
1140
+ "g5h7": 1138,
1141
+ "b7e7": 1139,
1142
+ "e1h1": 1140,
1143
+ "e2c1": 1141,
1144
+ "e6c7": 1142,
1145
+ "a6e2": 1143,
1146
+ "b1f1": 1144,
1147
+ "h1h7": 1145,
1148
+ "f2c2": 1146,
1149
+ "h8h4": 1147,
1150
+ "f1e3": 1148,
1151
+ "e4e1": 1149,
1152
+ "h4h6": 1150,
1153
+ "h7f6": 1151,
1154
+ "a2d5": 1152,
1155
+ "f2h2": 1153,
1156
+ "g6f8": 1154,
1157
+ "g5c1": 1155,
1158
+ "f5g7": 1156,
1159
+ "d2g2": 1157,
1160
+ "f5h7": 1158,
1161
+ "c6c4": 1159,
1162
+ "g8g2": 1160,
1163
+ "b4a6": 1161,
1164
+ "d6b5": 1162,
1165
+ "e7e1": 1163,
1166
+ "h8h3": 1164,
1167
+ "e6c8": 1165,
1168
+ "b4d4": 1166,
1169
+ "b5a7": 1167,
1170
+ "c5c3": 1168,
1171
+ "d4g4": 1169,
1172
+ "c4a4": 1170,
1173
+ "b6f2": 1171,
1174
+ "g8g5": 1172,
1175
+ "g5g2": 1173,
1176
+ "d7d1": 1174,
1177
+ "c4c6": 1175,
1178
+ "c3c1": 1176,
1179
+ "b1b8": 1177,
1180
+ "d6b8": 1178,
1181
+ "g1g4": 1179,
1182
+ "d3b2": 1180,
1183
+ "c5f8": 1181,
1184
+ "c5a6": 1182,
1185
+ "e4e7": 1183,
1186
+ "h1h6": 1184,
1187
+ "d3f2": 1185,
1188
+ "g8e8": 1186,
1189
+ "e3c2": 1187,
1190
+ "b6b3": 1188,
1191
+ "g4h2": 1189,
1192
+ "f7d6": 1190,
1193
+ "a4a2": 1191,
1194
+ "e2e8": 1192,
1195
+ "c2c7": 1193,
1196
+ "a2c4": 1194,
1197
+ "c4f1": 1195,
1198
+ "f7c7": 1196,
1199
+ "e3e6": 1197,
1200
+ "g3g6": 1198,
1201
+ "b4b6": 1199,
1202
+ "e8d6": 1200,
1203
+ "h4h2": 1201,
1204
+ "f2e4": 1202,
1205
+ "f7h8": 1203,
1206
+ "f8a3": 1204,
1207
+ "d5h5": 1205,
1208
+ "d1e3": 1206,
1209
+ "b5a3": 1207,
1210
+ "b2e2": 1208,
1211
+ "h5g7": 1209,
1212
+ "d3b4": 1210,
1213
+ "c5a3": 1211,
1214
+ "g1e1": 1212,
1215
+ "h6f6": 1213,
1216
+ "a3e7": 1214,
1217
+ "b1b6": 1215,
1218
+ "e3h3": 1216,
1219
+ "h3f2": 1217,
1220
+ "f4g2": 1218,
1221
+ "b2f2": 1219,
1222
+ "c3c5": 1220,
1223
+ "d4h4": 1221,
1224
+ "a5a3": 1222,
1225
+ "b6a4": 1223,
1226
+ "f6c6": 1224,
1227
+ "g8g4": 1225,
1228
+ "f4f7": 1226,
1229
+ "f3f1": 1227,
1230
+ "g7f5": 1228,
1231
+ "h8h2": 1229,
1232
+ "c3a1": 1230,
1233
+ "c3c7": 1231,
1234
+ "c2b4": 1232,
1235
+ "d6d2": 1233,
1236
+ "b4a2": 1234,
1237
+ "h8a8": 1235,
1238
+ "e5h2": 1236,
1239
+ "d7d3": 1237,
1240
+ "g3f1": 1238,
1241
+ "c6c8": 1239,
1242
+ "a4a7": 1240,
1243
+ "b3b6": 1241,
1244
+ "b2c4": 1242,
1245
+ "c6g2": 1243,
1246
+ "h1h8": 1244,
1247
+ "h1a1": 1245,
1248
+ "a5a7": 1246,
1249
+ "d5a2": 1247,
1250
+ "e6g7": 1248,
1251
+ "c2c5": 1249,
1252
+ "a7d7": 1250,
1253
+ "f4c1": 1251,
1254
+ "d3d6": 1252,
1255
+ "d7b8": 1253,
1256
+ "f6f8": 1254,
1257
+ "c3g7": 1255,
1258
+ "f7h5": 1256,
1259
+ "a5d5": 1257,
1260
+ "g3g7": 1258,
1261
+ "g1d1": 1259,
1262
+ "e6e2": 1260,
1263
+ "h8b8": 1261,
1264
+ "c4a3": 1262,
1265
+ "g6c2": 1263,
1266
+ "d7d2": 1264,
1267
+ "d3d7": 1265,
1268
+ "c3f3": 1266,
1269
+ "e1f3": 1267,
1270
+ "d6d1": 1268,
1271
+ "e4h7": 1269,
1272
+ "g5g7": 1270,
1273
+ "g4g2": 1271,
1274
+ "a7b5": 1272,
1275
+ "a3a1": 1273,
1276
+ "a4d1": 1274,
1277
+ "b6e6": 1275,
1278
+ "g3c7": 1276,
1279
+ "g1g5": 1277,
1280
+ "d4a7": 1278,
1281
+ "a5e5": 1279,
1282
+ "f2g4": 1280,
1283
+ "d6c8": 1281,
1284
+ "a6a8": 1282,
1285
+ "c3c6": 1283,
1286
+ "c5c2": 1284,
1287
+ "d5g5": 1285,
1288
+ "f1a6": 1286,
1289
+ "c6e8": 1287,
1290
+ "c6c3": 1288,
1291
+ "b5d5": 1289,
1292
+ "c2c6": 1290,
1293
+ "a5b7": 1291,
1294
+ "h6h4": 1292,
1295
+ "b3a5": 1293,
1296
+ "f2b2": 1294,
1297
+ "e3e7": 1295,
1298
+ "e6e1": 1296,
1299
+ "a7d4": 1297,
1300
+ "a4a6": 1298,
1301
+ "c2g2": 1299,
1302
+ "c6c2": 1300,
1303
+ "e7a7": 1301,
1304
+ "f7g5": 1302,
1305
+ "f2d3": 1303,
1306
+ "f3b3": 1304,
1307
+ "f7b7": 1305,
1308
+ "h6d2": 1306,
1309
+ "g6g3": 1307,
1310
+ "f5c8": 1308,
1311
+ "a8c6": 1309,
1312
+ "a2d2": 1310,
1313
+ "f4b8": 1311,
1314
+ "d6a6": 1312,
1315
+ "f2f5": 1313,
1316
+ "d2b1": 1314,
1317
+ "a7c5": 1315,
1318
+ "g3d3": 1316,
1319
+ "d8e6": 1317,
1320
+ "d3d8": 1318,
1321
+ "h8h1": 1319,
1322
+ "b5b2": 1320,
1323
+ "f7f4": 1321,
1324
+ "h3h5": 1322,
1325
+ "h2e5": 1323,
1326
+ "f5f2": 1324,
1327
+ "a6c8": 1325,
1328
+ "g8d8": 1326,
1329
+ "h1b1": 1327,
1330
+ "h7f7": 1328,
1331
+ "e2a2": 1329,
1332
+ "b7f7": 1330,
1333
+ "e1h4": 1331,
1334
+ "b5e8": 1332,
1335
+ "b6b8": 1333,
1336
+ "e4e8": 1334,
1337
+ "c3e1": 1335,
1338
+ "b4b7": 1336,
1339
+ "a7e3": 1337,
1340
+ "h3f1": 1338,
1341
+ "e6e3": 1339,
1342
+ "h5d1": 1340,
1343
+ "e3g2": 1341,
1344
+ "h3h6": 1342,
1345
+ "c7g7": 1343,
1346
+ "b3b1": 1344,
1347
+ "b7d6": 1345,
1348
+ "b2d3": 1346,
1349
+ "h2f4": 1347,
1350
+ "g1g6": 1348,
1351
+ "g4c8": 1349,
1352
+ "e1d3": 1350,
1353
+ "d8c6": 1351,
1354
+ "d5a8": 1352,
1355
+ "d6d3": 1353,
1356
+ "h4d8": 1354,
1357
+ "b5b3": 1355,
1358
+ "b1e4": 1356,
1359
+ "a2e6": 1357,
1360
+ "b7b4": 1358,
1361
+ "f7f3": 1359,
1362
+ "e8c6": 1360,
1363
+ "e6d8": 1361,
1364
+ "b6c8": 1362,
1365
+ "a7c6": 1363,
1366
+ "a2b4": 1364,
1367
+ "b5f1": 1365,
1368
+ "a6f1": 1366,
1369
+ "g2f4": 1367,
1370
+ "a2a5": 1368,
1371
+ "e1c3": 1369,
1372
+ "f2c5": 1370,
1373
+ "e8h5": 1371,
1374
+ "f7f2": 1372,
1375
+ "e7h7": 1373,
1376
+ "a3c1": 1374,
1377
+ "c8g8": 1375,
1378
+ "f5b1": 1376,
1379
+ "a4d4": 1377,
1380
+ "f2f7": 1378,
1381
+ "b3e3": 1379,
1382
+ "a3a5": 1380,
1383
+ "d3c1": 1381,
1384
+ "f3a8": 1382,
1385
+ "a7e7": 1383,
1386
+ "g3e1": 1384,
1387
+ "g8g3": 1385,
1388
+ "a2e2": 1386,
1389
+ "c4f4": 1387,
1390
+ "b1d3": 1388,
1391
+ "e3b3": 1389,
1392
+ "a7f7": 1390,
1393
+ "h8f6": 1391,
1394
+ "f4c4": 1392,
1395
+ "e5a5": 1393,
1396
+ "d6e8": 1394,
1397
+ "a1c3": 1395,
1398
+ "a2f2": 1396,
1399
+ "d3h3": 1397,
1400
+ "f8d7": 1398,
1401
+ "f2f6": 1399,
1402
+ "d3a3": 1400,
1403
+ "h4g2": 1401,
1404
+ "d6h6": 1402,
1405
+ "e8c7": 1403,
1406
+ "g6e8": 1404,
1407
+ "d1c3": 1405,
1408
+ "h3d7": 1406,
1409
+ "e5b5": 1407,
1410
+ "b4e1": 1408,
1411
+ "b7b2": 1409,
1412
+ "f4f1": 1410,
1413
+ "g7e7": 1411,
1414
+ "b4e4": 1412,
1415
+ "d4a1": 1413,
1416
+ "f7d8": 1414,
1417
+ "b8e5": 1415,
1418
+ "h5d5": 1416,
1419
+ "g6g2": 1417,
1420
+ "h7e4": 1418,
1421
+ "g4d4": 1419,
1422
+ "b2b6": 1420,
1423
+ "f5f8": 1421,
1424
+ "e7g8": 1422,
1425
+ "h3e3": 1423,
1426
+ "h6h3": 1424,
1427
+ "h2f2": 1425,
1428
+ "a4b2": 1426,
1429
+ "c5c8": 1427,
1430
+ "e3e8": 1428,
1431
+ "h4d4": 1429,
1432
+ "e6b6": 1430,
1433
+ "a7a4": 1431,
1434
+ "c3g3": 1432,
1435
+ "a1e5": 1433,
1436
+ "e6h6": 1434,
1437
+ "b2b5": 1435,
1438
+ "f7h6": 1436,
1439
+ "c6f6": 1437,
1440
+ "c7c1": 1438,
1441
+ "c8h8": 1439,
1442
+ "h7f5": 1440,
1443
+ "e3d1": 1441,
1444
+ "a3f8": 1442,
1445
+ "a6d6": 1443,
1446
+ "b7b3": 1444,
1447
+ "a2c3": 1445,
1448
+ "b3f3": 1446,
1449
+ "a4e4": 1447,
1450
+ "c4c1": 1448,
1451
+ "f6a1": 1449,
1452
+ "c2c8": 1450,
1453
+ "b4f8": 1451,
1454
+ "h6e6": 1452,
1455
+ "h5h8": 1453,
1456
+ "e5h8": 1454,
1457
+ "e2h2": 1455,
1458
+ "f7c4": 1456,
1459
+ "h7d3": 1457,
1460
+ "a4a1": 1458,
1461
+ "e4b1": 1459,
1462
+ "f6b6": 1460,
1463
+ "c8d6": 1461,
1464
+ "b2b7": 1462,
1465
+ "g2e2": 1463,
1466
+ "a1d4": 1464,
1467
+ "b2g2": 1465,
1468
+ "a8d5": 1466,
1469
+ "f6h8": 1467,
1470
+ "c5f5": 1468,
1471
+ "f2d1": 1469,
1472
+ "c7e8": 1470,
1473
+ "h6h8": 1471,
1474
+ "g7g4": 1472,
1475
+ "d3e1": 1473,
1476
+ "g5d5": 1474,
1477
+ "b8d6": 1475,
1478
+ "a8e4": 1476,
1479
+ "h4h7": 1477,
1480
+ "d2h2": 1478,
1481
+ "a5a8": 1479,
1482
+ "g7e6": 1480,
1483
+ "a6a4": 1481,
1484
+ "g7a1": 1482,
1485
+ "h3h1": 1483,
1486
+ "c1g1": 1484,
1487
+ "b3c1": 1485,
1488
+ "g6d6": 1486,
1489
+ "e4b4": 1487,
1490
+ "h2d6": 1488,
1491
+ "e2g1": 1489,
1492
+ "g8c8": 1490,
1493
+ "f5f1": 1491,
1494
+ "f3h1": 1492,
1495
+ "b5b8": 1493,
1496
+ "b5e5": 1494,
1497
+ "b8g8": 1495,
1498
+ "b6f6": 1496,
1499
+ "e4a8": 1497,
1500
+ "c3c8": 1498,
1501
+ "f5c5": 1499,
1502
+ "c1h1": 1500,
1503
+ "f1d2": 1501,
1504
+ "c1d3": 1502,
1505
+ "h4e1": 1503,
1506
+ "a3e3": 1504,
1507
+ "a3d3": 1505,
1508
+ "h7e7": 1506,
1509
+ "f3f8": 1507,
1510
+ "g8g1": 1508,
1511
+ "h5e8": 1509,
1512
+ "b4b1": 1510,
1513
+ "h3h7": 1511,
1514
+ "e4a4": 1512,
1515
+ "c7a6": 1513,
1516
+ "c6g6": 1514,
1517
+ "b7g7": 1515,
1518
+ "f7b3": 1516,
1519
+ "d7h7": 1517,
1520
+ "a5f5": 1518,
1521
+ "f6f1": 1519,
1522
+ "b1g1": 1520,
1523
+ "a7g7": 1521,
1524
+ "g2g5": 1522,
1525
+ "d8f7": 1523,
1526
+ "e5a1": 1524,
1527
+ "c4c8": 1525,
1528
+ "e5b8": 1526,
1529
+ "c4g4": 1527,
1530
+ "e3a3": 1528,
1531
+ "h4h1": 1529,
1532
+ "f2a2": 1530,
1533
+ "h5h2": 1531,
1534
+ "c8e7": 1532,
1535
+ "f4f8": 1533,
1536
+ "a3a7": 1534,
1537
+ "e8g7": 1535,
1538
+ "g1g8": 1536,
1539
+ "f2h1": 1537,
1540
+ "c8b6": 1538,
1541
+ "h1f3": 1539,
1542
+ "e1c2": 1540,
1543
+ "d1f2": 1541,
1544
+ "a1c2": 1542,
1545
+ "g7g3": 1543,
1546
+ "h7h4": 1544,
1547
+ "a5a1": 1545,
1548
+ "g2g6": 1546,
1549
+ "f7a7": 1547,
1550
+ "f2b6": 1548,
1551
+ "g6h8": 1549,
1552
+ "c5c1": 1550,
1553
+ "a3a6": 1551,
1554
+ "g1c1": 1552,
1555
+ "e6a6": 1553,
1556
+ "a8c7": 1554,
1557
+ "e6g8": 1555,
1558
+ "f7f1": 1556,
1559
+ "f2h3": 1557,
1560
+ "e8b5": 1558,
1561
+ "e4h1": 1559,
1562
+ "g2e3": 1560,
1563
+ "a7a3": 1561,
1564
+ "a2g2": 1562,
1565
+ "h8e5": 1563,
1566
+ "g6g8": 1564,
1567
+ "g2d2": 1565,
1568
+ "g5c5": 1566,
1569
+ "c6c1": 1567,
1570
+ "b1h1": 1568,
1571
+ "c2h7": 1569,
1572
+ "a6e6": 1570,
1573
+ "h6c1": 1571,
1574
+ "a5g5": 1572,
1575
+ "e1b4": 1573,
1576
+ "a8f3": 1574,
1577
+ "c5g5": 1575,
1578
+ "a6a3": 1576,
1579
+ "h2f1": 1577,
1580
+ "h2h5": 1578,
1581
+ "g4c4": 1579,
1582
+ "a6a2": 1580,
1583
+ "g7d7": 1581,
1584
+ "b1f5": 1582,
1585
+ "h7f8": 1583,
1586
+ "h7d7": 1584,
1587
+ "b8h8": 1585,
1588
+ "e3g1": 1586,
1589
+ "g1b1": 1587,
1590
+ "a4e8": 1588,
1591
+ "c2e1": 1589,
1592
+ "f2f8": 1590,
1593
+ "b6a8": 1591,
1594
+ "g3c3": 1592,
1595
+ "b4b8": 1593,
1596
+ "b3g3": 1594,
1597
+ "h2e2": 1595,
1598
+ "g7c7": 1596,
1599
+ "f8h7": 1597,
1600
+ "c4g8": 1598,
1601
+ "c7h7": 1599,
1602
+ "b5b1": 1600,
1603
+ "g2a8": 1601,
1604
+ "c2h2": 1602,
1605
+ "h8f7": 1603,
1606
+ "a4g4": 1604,
1607
+ "c5h5": 1605,
1608
+ "b2b8": 1606,
1609
+ "b5f5": 1607,
1610
+ "h5c5": 1608,
1611
+ "c1b3": 1609,
1612
+ "c7h2": 1610,
1613
+ "f3a3": 1611,
1614
+ "g1a1": 1612,
1615
+ "a4a8": 1613,
1616
+ "a4f4": 1614,
1617
+ "h6h2": 1615,
1618
+ "a1f6": 1616,
1619
+ "g7h5": 1617,
1620
+ "c1e2": 1618,
1621
+ "b3a1": 1619,
1622
+ "b4f4": 1620,
1623
+ "a2a6": 1621,
1624
+ "g3g1": 1622,
1625
+ "b7b1": 1623,
1626
+ "h6d6": 1624,
1627
+ "g2b2": 1625,
1628
+ "g7b7": 1626,
1629
+ "c2a3": 1627,
1630
+ "h1e4": 1628,
1631
+ "h7c7": 1629,
1632
+ "a5h5": 1630,
1633
+ "g2c2": 1631,
1634
+ "b3b8": 1632,
1635
+ "a2h2": 1633,
1636
+ "b4g4": 1634,
1637
+ "g3h1": 1635,
1638
+ "a7h7": 1636,
1639
+ "g7g2": 1637,
1640
+ "g5g8": 1638,
1641
+ "h3d3": 1639,
1642
+ "h4c4": 1640,
1643
+ "h2b2": 1641,
1644
+ "d5g8": 1642,
1645
+ "b6g6": 1643,
1646
+ "g2g7": 1644,
1647
+ "g6c6": 1645,
1648
+ "a7a2": 1646,
1649
+ "g8b8": 1647,
1650
+ "a2a7": 1648,
1651
+ "f1h2": 1649,
1652
+ "b8f4": 1650,
1653
+ "a6f6": 1651,
1654
+ "f4b4": 1652,
1655
+ "a3f3": 1653,
1656
+ "h3c8": 1654,
1657
+ "h7b7": 1655,
1658
+ "a6b8": 1656,
1659
+ "a5e1": 1657,
1660
+ "c5g1": 1658,
1661
+ "h2c2": 1659,
1662
+ "f4a4": 1660,
1663
+ "d4h8": 1661,
1664
+ "h4h8": 1662,
1665
+ "g4g1": 1663,
1666
+ "e8a4": 1664,
1667
+ "b2a4": 1665,
1668
+ "b7h7": 1666,
1669
+ "g4g8": 1667,
1670
+ "b5g5": 1668,
1671
+ "g5g1": 1669,
1672
+ "g2h4": 1670,
1673
+ "a6a1": 1671,
1674
+ "b6b1": 1672,
1675
+ "g5a5": 1673,
1676
+ "a8b6": 1674,
1677
+ "g3b8": 1675,
1678
+ "h2d2": 1676,
1679
+ "g3b3": 1677,
1680
+ "c4h4": 1678,
1681
+ "a2a8": 1679,
1682
+ "f6a6": 1680,
1683
+ "b7a5": 1681,
1684
+ "f5a5": 1682,
1685
+ "h7h3": 1683,
1686
+ "h7a7": 1684,
1687
+ "b7d8": 1685,
1688
+ "h5h1": 1686,
1689
+ "h3c3": 1687,
1690
+ "h8d4": 1688,
1691
+ "a2f7": 1689,
1692
+ "h2h6": 1690,
1693
+ "c3h3": 1691,
1694
+ "h2h7": 1692,
1695
+ "b4h4": 1693,
1696
+ "a4h4": 1694,
1697
+ "g8a8": 1695,
1698
+ "f5b5": 1696,
1699
+ "a7a1": 1697,
1700
+ "e1g2": 1698,
1701
+ "h2a2": 1699,
1702
+ "a3g3": 1700,
1703
+ "g7a7": 1701,
1704
+ "h5a5": 1702,
1705
+ "d8b7": 1703,
1706
+ "b2h2": 1704,
1707
+ "a1b3": 1705,
1708
+ "b5h5": 1706,
1709
+ "b1g6": 1707,
1710
+ "h4b4": 1708,
1711
+ "e1a5": 1709,
1712
+ "a3a8": 1710,
1713
+ "g4a4": 1711,
1714
+ "g6b1": 1712,
1715
+ "h8g6": 1713,
1716
+ "d4g1": 1714,
1717
+ "g8d5": 1715,
1718
+ "f2a7": 1716,
1719
+ "g1e3": 1717,
1720
+ "b2d1": 1718,
1721
+ "a7f2": 1719,
1722
+ "c3h8": 1720,
1723
+ "h3h8": 1721,
1724
+ "h6g8": 1722,
1725
+ "h5b5": 1723,
1726
+ "g8e6": 1724,
1727
+ "a7c8": 1725,
1728
+ "g2a2": 1726,
1729
+ "a3b1": 1727,
1730
+ "d5h1": 1728,
1731
+ "f7a2": 1729,
1732
+ "g4b4": 1730,
1733
+ "b8g3": 1731,
1734
+ "d1b2": 1732,
1735
+ "h7h1": 1733,
1736
+ "a6g6": 1734,
1737
+ "h2c7": 1735,
1738
+ "h6h1": 1736,
1739
+ "h3g1": 1737,
1740
+ "a2c1": 1738,
1741
+ "b7h1": 1739,
1742
+ "g7e8": 1740,
1743
+ "g3g8": 1741,
1744
+ "a8g2": 1742,
1745
+ "b3h3": 1743,
1746
+ "g6g1": 1744,
1747
+ "h1f2": 1745,
1748
+ "a1g7": 1746,
1749
+ "h4a4": 1747,
1750
+ "h1d5": 1748,
1751
+ "a3h3": 1749,
1752
+ "b6h6": 1750,
1753
+ "h7c2": 1751,
1754
+ "g6b6": 1752,
1755
+ "c6h6": 1753,
1756
+ "g5b5": 1754,
1757
+ "h6c6": 1755,
1758
+ "h7h2": 1756,
1759
+ "h2h8": 1757,
1760
+ "h3b3": 1758,
1761
+ "g1d4": 1759,
1762
+ "c6h1": 1760,
1763
+ "c1a2": 1761,
1764
+ "c8a7": 1762,
1765
+ "g3a3": 1763,
1766
+ "g6a6": 1764,
1767
+ "g7g1": 1765,
1768
+ "h6b6": 1766,
1769
+ "g1c5": 1767,
1770
+ "b3g8": 1768,
1771
+ "a6h6": 1769,
1772
+ "h6a6": 1770,
1773
+ "h1g3": 1771,
1774
+ "h8c3": 1772,
1775
+ "b2h8": 1773,
1776
+ "h3a3": 1774,
1777
+ "g2e1": 1775,
1778
+ "g8c4": 1776,
1779
+ "b6g1": 1777,
1780
+ "h1c6": 1778,
1781
+ "g2g8": 1779,
1782
+ "g8b3": 1780,
1783
+ "h8b2": 1781,
1784
+ "b1h7": 1782,
1785
+ "g1b6": 1783,
1786
+ "b8h2": 1784,
1787
+ "h1b7": 1785,
1788
+ "h8a1": 1786,
1789
+ "g1a7": 1787,
1790
+ "a1h8": 1788,
1791
+ "a7g1": 1789,
1792
+ "a2g8": 1790,
1793
+ "h1a8": 1791,
1794
+ "h7b1": 1792,
1795
+ "a8h1": 1793,
1796
+ "h2b8": 1794,
1797
+ "g8a2": 1795
1798
  }